[Q&A] Are Obsidian Bases the Same as Notion Database?

Are Obsidian Bases the Same as Notion Database?

Basic Definition

Let me start with a definition — what I understand as “Bases/Database” is roughly:

  1. Extracting needed data from a specific scope and displaying it in a consolidated base view.
  2. This view is typically in table format, but can be switched to different views as needed (e.g., calendar, kanban, chart, etc.)
  3. Multiple views can share the same data source
  4. You can view and edit note properties, with customizable property types
  5. Supports “filter, sort, and group” functionality

The above is the basic definition — the “commonalities.”

Differences

When it comes to the differences between Bases and the Notion Database, it mainly boils down to the data source.

  • Obsidian Bases uses all vault notes as the default data source, which needs to be narrowed down through filter conditions.
  • Notion’s data source is a given database, which is empty by default and requires adding entries one by one.

It’s like one starts subtracting from 100, while the other starts adding from 0.

Limitations

The differences in design direction also bring about distinct limitations on both sides:

  • Obsidian cannot easily focus on a specific range, requiring manual configuration of filters and the location for new files each time; created notes also cannot directly maintain completely consistent property specifications.
    • However, on the flip side, Obsidian offers greater freedom. It can display any file from the entire vault together.
    • Bases’ Formulas allow you to more freely combine or conditionally judge different properties. It could even render HTML codes!
  • Notion, on the other hand, cannot add notes “outside the scope” into the database, lacking flexibility. However, it supports richer property types, such as “Select, People, Phone,” etc.
    • Thanks to the clear scope of its database, for “Select/Multi-select,” it can display only specific options within the current database, rather than showing all options from the entire vault like Obsidian properties.
    • Additionally, it supports more complex properties like Relations & rollups to connect multiple databases, as well as operational buttons like Database buttons for quickly executing automation actions.

Storage Format

The “storage format” of this data is not fundamentally different.

For example, Notion stores data in PostgreSQL, Obsidian obviously stores it in md files.
Many people feel that “one piece of data = one file is way too much hassle,” but if you think about it more openly, a bunch of “bases data files” that only contain metadata for storing properties really isn’t a problem.

:information_source: INFO
In fact, if you export a Notion database to your local machine, you’ll find it also generates a corresponding md file for each data entry, with properties written into the md file’s YAML metadata.

It’s simply that Obsidian directly exposes the source md files, while Notion hide them where users can’t see, making the difference feel significant.
But compared to “where the data is stored,” the differences in initial data and scope limitation are even more significant.

Conclusion

In summary — my view is that Obsidian Bases and Notion Database are essentially the same thing.
In most cases, they can accomplish similar tasks.

Of course, Bases is still in its early stages, and many features require the help of plugins to achieve—the good news is that Obsidian has a very healthy community ecosystem, and its openness gives Bases’ extended views limitless possibilities.

New bases plugins from Beta Obsidian Plugins (Open PRs)

2 Likes

I really hope Bases can use JSON to store data. Markdown tables are only suitable for a very small amount of data, and they lack advanced features such as formulas. Therefore, I need to use additional tools to process tables, which means I often have to edit two different sets of formulas. I really hope to have a unified experience within one tool.

I think Bases can add a feature that uses a formula to determine right or wrong to set rules for attributes, implementing a function similar to attribute types. For those that do not conform to the current rules, a small warning mark will be displayed.