pangy7k downloadsLocal-first database views for Obsidian notes: table, board, gallery, list, chart, calendar, timeline, formulas, filters, and inline editing.
Turn Markdown notes into editable, visual databases inside Obsidian.
Same notes. Eight views. Still plain Markdown.
Edit frontmatter in place, save several views of the same notes, and keep every record in the vault you already use.

db_view: true; records, properties, and relations also stay inside your vault.file.* metadata and the core Page preview plugin for record titles, Relations, and internal links inside text..base files.A database never duplicates your notes — the eight views are just different lenses over the same Markdown, and each view keeps its own filters, sorting, grouping, visible properties, title property, and layout.
| Table | Board |
|---|---|
![]() |
![]() |
| Edit dense records, paste ranges, fill cells, group, sort, and navigate by keyboard. | Move cards through stages, use subgroups, covers, colored options, and drag-and-drop. |
| Gallery | List |
|---|---|
![]() |
![]() |
| Browse visual libraries with covers, properties, groups, and summaries. | Scan compact inventories, tasks, directories, and research notes. |
| Chart | Timeline |
|---|---|
![]() |
![]() |
| Turn the current filtered result into charts, summaries, drilldowns, and PNG exports. | Plan across day, week, month, or quarter scales; drag and resize date ranges. |
| Form |
|---|
![]() |
| Capture a new note with field-aware controls, source-rule defaults, required fields, and a banner, half-page, or wallpaper cover. |
| Calendar month | Calendar week |
|---|---|
![]() |
![]() |
| Arrange all-day and multi-day records in a monthly overview. | Work with all-day and timed records on a detailed weekly grid. |
Add a Button property, then choose Configure button from its column menu to combine actions that edit records, create or duplicate notes, update another database, show confirmation, and open a page. For example: create a follow-up task → link it to a project → set its due date → update the project → open the task. All changes made by a single button execution can be undone together.
Type { or use the variable button to insert dynamic-value chips for titles, body text, links, properties, or dates. Combine chips with ordinary text without writing code.
Try the project, task, reading, and CRM starters with built-in buttons: Complete project, Complete task, Schedule for tomorrow, Mark as read, and Follow up in 7 days.

| Browse and reorder actions | Compose titles and body text | Set button icons and styles |
|---|---|---|
![]() |
![]() |
![]() |
| Collapse actions to review their order; click a heading to edit. | Combine dynamic values with ordinary text, without code. | Choose an icon and button style from the column menu. |
Six built-in starters preset the properties, views, icons, and covers, with optional sample notes; save any configured database as your own template. For quick capture, open the dialog from any view or the command palette and submit without leaving where you are.
| Quick-capture dialog | Database starters |
|---|---|
![]() |
![]() |
| Open a form without leaving the current view. A failed submission keeps the entered values. | Start with a workflow, its properties and views, and optional sample notes; then customize everything in your vault. |
Internal links reuse the core Page preview plugin and honor your modifier-key settings.
| Page preview opened from a record link |
|---|
![]() |
Enable Obsidian's core Page preview plugin first. Preview works on record titles, Relation properties, clickable file.* metadata, text properties in Link display mode, and internal links or [[wikilinks]] in inline-Markdown text/computed-text properties. Table, Board, Gallery, List, Calendar, Timeline, the record detail panel, database-file views, and embedded views share the same behavior.
Field-aware editors cover text, numbers, currency, dates, checkboxes, selects, multi-selects, statuses, and file names. Table workflows include range selection, copy/paste, fill, overflow row creation, safe file renaming, and single-step undo.
| Typed bulk editing | Inline Markdown and number displays |
|---|---|
![]() |
![]() |
| Preview the affected records, confirm risky writes, and roll back a failed transaction. | Render text as links or inline Markdown; show numbers as ratings, bars, or rings without changing stored values. |
| One new-property dialog |
|---|
![]() |
| Confirm the display name, frontmatter key, and property type from every creation entry point. |
| Conditional formatting | Group summaries |
|---|---|
![]() |
![]() |
| Highlight a matching property or the whole record with view-specific rules. | Add and reorder count, sum, average, min/max, and other summaries in grouped views. |
| Quick filter and sort chips |
|---|
![]() |
| See active rules as compact chips. Edit one rule in place or remove it directly. |
Active filter and sort chips use the same rules as the full toolbar panels, and records can also be dragged into a manual order. Source rules can combine folders, tags, properties, links, and expressions with AND, OR, and NOT.
| Freeze up to this column | Still visible after scrolling |
|---|---|
![]() |
![]() |
| Pick "Freeze up to this column" from a header's context menu; up to five left-most properties. | Frozen columns, the checkbox column, the summary bar, and group headers stay visible while scrolling. |
Even at the far-right property, the names and totals you need stay on the left. Works in the main view and editable embeds; the checkbox column is always pinned, and freezing can be undone at any time.
| Formulas | Relations and Rollups |
|---|---|
![]() |
![]() |
| Build computed properties with field references, date/text/number functions, live previews, and optional frontmatter sync. | Keep relationships as ordinary Obsidian wikilinks and calculate count, sum, average, or list values from linked notes. |
The formula editor distinguishes display names from frontmatter keys, previews substituted values, and recovers with IFERROR; relations are stored as plain wikilinks, target changes are one undoable step, and a table cell configures its Rollup on double-click. No eval, hidden relation database, or cloud copy is used.
| Database and record icons | Covers and visual cards |
|---|---|
![]() |
|
| Use Unicode Emoji or Lucide icons, with database defaults and per-view record-icon fields. | Add a draggable database cover and choose independent cover settings for board and gallery views. |
| Record covers on boards |
|---|
![]() |
| Choose a cover property, crop mode, and ratio independently for every board view. |
Option-based group titles keep their colors across table, board, gallery, and list views. Search highlights file names and visible values, including localized dates.
| Search across Calendar and Timeline | Chart drilldown and summaries |
|---|---|
![]() |
![]() |
| Search the fields visible on event cards, then drag or resize date and datetime records. | Click a chart value to inspect its records before applying a filter. |
Calendar supports month, week, and day. Timeline supports day, week, month, and quarter.
| Embedded view | Headerless embed |
|---|---|
![]() |
![]() |
Paste a generated note-database block into any note. |
Hide the database header when the surrounding note already provides context. |
| Editable embed | Adjustable embed height |
|---|---|
![]() |
![]() |
| Embeds stay read-only by default. Enable editing in plugin settings to change records directly inside a note. | Drag the lower edge of an embedded database to give the view more or less room. |
Embedded databases are read-only by default. Disable Read-only embedded databases in plugin settings to allow editing in notes; form embeds can submit records only in this mode. Drag the lower edge to resize an embed. View switching, filters, sorting, grouping, computed values, and copy/export tools remain available in read-only mode. If a database explicitly enables automatic formula-result storage, that database-level background task still runs while the database is shown in an embedded view.
| What | Stored as |
|---|---|
| Database | A normal Markdown file with db_view: true |
| Records and property values | Markdown notes and their frontmatter |
| Relations | Obsidian wikilinks in frontmatter |
| Record templates | Markdown, Obsidian Templates, or Templater files |
| Views | Saved configuration in the database file |
Create records from source rules, groups, subgroups, row insertion, or a form. Apply record templates at creation. Export CSV + Markdown ZIP, copy CSV/Markdown tables, or convert an Obsidian .base file.

To reuse a database setup in the same vault, open its title menu and choose Save as starter template…. Give it a name, description, and icon; optionally include up to 20 records from the current view. Saved templates appear under My templates when creating a database and are stored in Note Database Templates/ as .starter.json files. Delete a template from its preview to move it to Trash without affecting existing databases.
Templates keep properties, formulas, views, and display settings. New databases receive fresh IDs and record folders; source rules, manual record order, and relation targets are reset. Images and new-record templates keep their vault references, and missing files are shown in the preview. Sample notes are copied; relation and computed values are excluded.
For manual installation, download main.js, styles.css, and manifest.json from the latest release and copy them to .obsidian/plugins/note-database/.
Note Database runs locally in Obsidian. It does not send vault content, metadata, formulas, or settings to an external service. Read the full privacy policy.
If Note Database is useful to you, star the repository or support continued development:
Release notes and the full change history are available on GitHub Releases.