Introducing Bases Layouts in Bookshelf
When Obsidian dropped the Bases core plugin, Bookshelf's built-in views became somewhat obsolete. Not entirely, because there are still things you can't do with Bases, such as showing the reading status and progress derived from your notes, or opening the book modal directly. However, if you don't use Bookshelf to track your reading progress, you probably don't need it at all.
I like to think the built-in views are still valuable for people who want something they can install and that just works. But Obsidian has always attracted a nerdier crowd that's into customization and ricing, so I wasn't surprised to see feature requests coming in, like:
- Add ways to be more specific about which notes count as books (i.e. filtering/excluding notes)
- Make columns in the table view customizable (e.g. remove columns, add non-Bookshelf properties)
- Save presets to quickly recall views with specific settings
Great suggestions, but things you can do out of the box with Bases. So the question I asked myself was: "Does it make sense to reinvent the wheel and implement them in Bookshelf?"
Like most questions in software development, the answer is: "It depends." It depends on the number of users who prefer Bookshelf's built-in views over Bases and who'd want to customize them. The problem is that I don't know how many people use Bookshelf, how they use it, or what their exact needs are.
It's the age of AI, and I'm sure some people wouldn't even think twice about it and would just let some coding agent crank it out. But I think it makes sense to be deliberate about these decisions and not just build something because it's possible.
Bases is Obsidian's go-to way to query and display data, and it allows people to do more with less. Like I said in the beginning, I still think the built-in views have a reason to exist, but if you want customization, Bases is probably the better solution.
Because of this, the latest version of Bookshelf comes with two Bases layouts called Bookshelf gallery and Bookshelf table. They allow you to take advantage of the flexibility of Bases while keeping the look and Bookshelf-specific functionality.
If you're a Bookshelf user, I'd love to hear what you think. Please head over to the GitHub discussion and share your thoughts.