Ābele
Obsidian plugin that gives superpowers
Obsidian.md is an amazing tool. It gives you everything you need and, most importantly, nothing extra - so you can focus on the content of your notes while creating something greater than just separate entries. The secret is in the linking system, wiki-links, which works better than tags and nested folders, and in using the simplest way to store data - markdown files.
However, while being a perfect foundation, Obsidian in its pure form doesn't feel like a complete product. The plugin ecosystem is what makes it one.
Why another plugin
At the time of writing, Obsidian has almost 3000 plugins in its store. Some are hard to live without, like Excalidraw, which lets you build diagrams, charts, draw and visually express your thoughts.
But the obsidian community has also written plugins over the years that add basic things like tasks, calendars, "databases", templates and so on. Some of them are serious, well-developed products. But they all share one problem - it's a puzzle that everyone assembles differently, with pieces from different sets.
It's not that different plugins work poorly together. They complement each other well enough, and everyone can find something for their workflow. But installing dozens of different plugins for my needs, I only became more convinced of how much better they could work, how much more consistent and efficient the solution would be if they were a single product.
I think it is. That's why I made Ābele.
Features
I wrote Ābele based on another plugin of mine that I gradually developed over several years, adapting it to my needs. It became clear over time that my workflow is far from unique, and if the plugin were generalized a bit, it could be useful to many users who use Obsidian for the same purposes as I do - as a system for journaling, planning, task management and maintaining a knowledge base.
At its core is a slightly enhanced linking system. It's also based on wiki-links and fully compatible with Obsidian's standard linking system, with one exception - it's transitive.
Regular links connect two notes to each other. In Ābele, links let you easily build an entire hierarchy of connections. When I write in a daily note, for example, that I had a new idea for a project, that entry (not the entire daily note) appears in the project note, in the "ideas" note, and in the "all projects" note. Since the daily note inherently defines the date when the entry was made, related notes end up with a kind of log, a chronology of all events connected to them.
These connections are formed through a special groups property, which specifies the groups (or categories) a note belongs to. Ābele finds all these connections and displays them in each note. Like backlinks, but with nesting and context.
Here's another example to make it clearer. If I write in a journal entry that I went to the gym, where "gym" is a link, I don't need to explicitly create a connection to the "sports" note - that connection is already embedded in the "gym" note. Or if I write that I read a book, that information will also appear in the author's note, because the book has a link to that author in its groups property.
Journals
Obsidian supports daily notes out of the box. But my experience shows that dumping everything into a single note per day isn't always a good idea. While I keep most of my entries in daily notes, which automatically creates a chronology, some entries are better kept in other, but also daily, notes.
That's how the concept of journals came about. In Ābele you can create as many journals as you want - not just daily, but also weekly, monthly, and yearly. This system works perfectly when you need to browse through adjacent notes of the same type and when you constantly need to create standard periodic notes without thinking about which template to use. Journals already have templates built in, quick navigation between notes of the same type, switching between notes for the same date, and, most obviously, a connection to the calendar, which is also part of the plugin.
Tasks
I used to rely on tasks plugin and dataview for task management. These two powerful plugins gave me everything I needed for effective daily planning and project work. However, at their core is what turned out to be a flawed approach that contradicts Obsidian's philosophy. Simply put, they work with lines as the unit of information, while Obsidian is atomic at the file level. This creates a conflict - you have to build indexes on top of indexes, create custom views instead of using built-in bases, and tolerate slow updates.
So in Ābele I chose a different path and took the unit of information native to Obsidian as the basis for tasks - the note. Thus, one task = one note. But to avoid creating files manually and to manage tasks in the usual way, a convenient interface was built with a timeline, shortcuts for common actions, overdue task indicators and other familiar controls.
What's also important - unlike other plugins that work with note-based tasks, in Ābele the filename is not the task title. Instead, the first paragraph in the task body is used, and the file title updates automatically. This is intentional, because when writing task text, it makes sense to add links to related notes right there. This way tasks integrate perfectly into the rest of the linking system and also appear "transitively" in all related notes.
Templates
The most popular template plugin for Obsidian is Templater. It lets you write JavaScript directly in templates and execute it when creating a note. But for real-world tasks it's hard to get by without JS, and that poses a security risk. Also, I personally really miss having hierarchy in templates.
In Ābele, templates are more declarative - they describe what should be in a note, not how to do it. There's a set of built-in variables for dates, names, paths and other common things, plus the ability to add your own variables. This covers the vast majority of cases without sacrificing security for flexibility.
There's also a built-in type system and the ability to create template hierarchies, which is very convenient when you have a lot of them. And the Templater problem of requiring text insertions in non-text fields (for example, inserting a date template into a date-type field), which breaks frontmatter, has been fixed.
Useful tools
In addition to the core functionality, I'm adding QoL tools to Ābele that help with migrating from one vault structure to another. For example, Find and Replace, which lets you bulk-restructure frontmatter, change note content, links, lists and so on.
Development
This is far from everything I wanted to implement in Ābele. The plugin continues to evolve, and in the near future will get a sufficiently private and fully controllable AI agent, a full-fledged backend, and image processing tools. But that's a story for another time.