Notion-style tables
for Obsidian Bases
GoodBases is a free, open-source plugin that renders your Obsidian Bases as Notion-style databases — clean chrome, colored pills, hover actions, and inline editing. Your notes stay yours; only the look changes.
Features
Notion-fidelity chrome
System font stack, hairline borders, row hover wash, and a horizontal scroll container so columns never crush — even in embeds and reading mode.
Resizable columns
Drag the border in any column header to set its width, or
double-click that border to size the column back to its content.
Widths are saved per view, right in the .base file.
Header sorting and a Calculate row
Click a column header for Notion's sort menu — ascending, descending, or remove. Under the table, a Calculate row offers counts, percentages, sum, average, median, min, max, range, and date range per column, saved with the view.
Colored value pills
Tags and list properties render with Notion's 9-color palette. A deterministic hash keeps each value's color stable forever — or recolor any value yourself with the built-in color picker: Notion's palette, or any custom color you pick. Tag pills stay clickable: they open Obsidian's search for that tag.
Inline cell editing
Click a cell to edit text and numbers in a floating input; checkboxes toggle in place. Pill cells — tags included — open a select menu with every known value, search, and create-on-Enter. Date cells open a Notion-style calendar, with a time selector for date & time properties.
Notion-style page panel
+ New opens the note centered in a panel, like Notion's page peek: editable title, editable properties, and a Live Preview body that stays formatted while you type.
Hover-reveal OPEN button
Hover a row to reveal an OPEN button that jumps to the note — in a new tab or straight into the page panel, your choice.
Grouping support
Respects the Bases group by configuration, with Notion-style group headers and counts.
View options
Wrap cell content, toggle vertical lines, choose how OPEN opens notes, pick the Name column icon (Notion's page emoji, Obsidian's theme-colored file icon, your own emoji, or none), force properties to render as pills, and pin pill colors — all from the view's settings menu.
Demo
Inline editing and the select menu in action.
The page panel — + New opens the note in a centered panel with an editable title, editable properties, and a Live Preview body.
The pill select editor up close — current values as removable pills, search or create on Enter, and every value already used for the property, each with its own stable color.
Roadmap
-
First public release 0.3 · shipped
Notion-style table view — colored pills, inline cell editing, the pill select editor, pinned colors, hover-reveal OPEN button, grouping, and view options.
-
Per-value color picker 0.4 · shipped
Recolor any value from Notion's palette; your choice persists everywhere it appears. Cells wrap by default.
-
Page panel 0.5 · shipped
Create and open notes in a centered Notion-style panel — editable title and properties, body rendered as formatted Markdown — plus an “Open notes in” option for the OPEN button.
-
Custom pill colors 0.6 · shipped
Pick any color for a value, not just Notion's nine — the system color dialog or a typed hex, saved per value and used everywhere it appears.
-
Column resizing & tidier columns 0.7 · shipped
Drag handles on column borders, with widths persisted per view and double-click to reset. Plus a choosable Name column icon and tag pills that open the search pane.
-
Sorting & calculations 0.8 · shipped
Notion's column-header sort menu, and a per-column “Calculate” row — counts, percentages, sum, average, median, min, max, range, date range, and more.
-
Editable tags & date editor 0.9 · shipped
tagsedit through the select editor like any other pill property, and date cells open a Notion-style calendar — with a time selector for date & time properties. -
Live Preview in the page panel 1.0 · shipped
The panel's body is Obsidian's own Live Preview editor, so notes stay formatted while you edit them.
-
Per-group calculations Next up
A Calculate row under each group when the base is grouped, the way Notion does it.
-
Board & gallery views Exploring
Kanban boards and card galleries — deprioritized for now while table fidelity comes first.
Roadmap items aren't promises or dates — they're the directions GoodBases is heading. Want to nudge one up the list? Open an issue or buy me a coffee.
Changelog
1.0.0 Latest Major
GoodBases 1.0. The table, the page panel, pills, sorting, calculations and the date editor are all in place — this release marks the plugin as stable.
New — Live Preview in the page panel. The body of a note opened in the page panel is now Obsidian's own Live Preview editor. Headings, lists, links and formatting stay rendered while you type, instead of switching to raw Markdown the moment you start editing.
- Editor hotkeys (bold, italic, toggle checklist…) work in the panel's body.
- Enter on the title moves the caret straight into the body, and clicking below the text places it at the end.
- Following a link from the body opens the note in the workspace and closes the panel so you can see it.
- The body always uses Live Preview, even if your vault's default editing mode is Source.
0.9.0 Major
New — editable tags.
tags now edits like any other pill property:
click the empty part of a tags cell, or of the tags row in
the page panel, to open the select editor and add, remove or
create tags. Clicking a tag pill itself still searches for
that tag.
New — date editor. Click a date cell, in the table or the page panel, for a Notion-style calendar: pick a day, or type any ISO date in the field on top and press Enter. Today and Clear sit at the bottom. Date & time properties add a time selector next to the date field — picking a day keeps the calendar open so you can set the clock too.
- Tags are written the way Obsidian's own property editor
stores them — a plain list without
#— so nothing changes in how they render or search. - An empty cell of a property typed Date or Date & time in the vault opens the calendar too, so the first date can be picked rather than typed.
- Dates are written as
YYYY-MM-DD, and dates with a time asYYYY-MM-DDTHH:mm, matching Obsidian's date properties. A value that already has a time keeps it when you pick a new day. - Clicking a date cell in the table reliably opens the editor — the native date widget Bases renders there used to swallow the click.
0.8.0 Major
New — sort from the column header. Click any column header and pick Sort ascending or Sort descending, the way Notion's column menu works. A sorted column shows a direction arrow after its name, and Remove sort appears while it's sorted.
New — Calculate row. A Notion-style footer under the table: hover it and click Calculate in a column to pick a calculation — counts and percentages for every column, sum / average / median / min / max / range / standard deviation for numbers, earliest / latest / date range for dates, checked / unchecked (and their percentages) for checkboxes. The result shows as a small label and value; None clears it.
- Header sorting writes the view's regular Bases sort, so it
shows up in the toolbar's Sort menu (and vice versa) and is
saved in the
.basefile. Sorting a second column makes it the primary sort and keeps the earlier one as a tie-breaker. - Calculations Bases has a built-in summary for are stored as the view's regular summaries, so they also appear in the built-in table's summary row. Notion's Count all and the percentages, which Bases has no function for, are computed by GoodBases and saved with the view.
- Custom summary formulas defined in the base are offered at the end of the Calculate menu.
0.7.2
New — tag pills are clickable. Click a tag anywhere GoodBases draws it — a table cell, a group header, or a page panel property — and Obsidian's search pane opens on that tag, just like clicking a tag in the built-in Bases table or in a note.
- Only real tags react, so ordinary select and multitext pills still open the value menu as before — as does clicking the empty part of the cell.
- Tags in the page panel's body search too, and the panel steps aside so you can see the results.
- Group headers now drop the leading
#when you group by tags, matching how tags render in cells.
Thanks to the community for the suggestion.
0.7.1
New — choose the Name column icon. The page icon is no longer fixed. The new Name column icon view option keeps it as the default, switches to Obsidian's own file icon so it takes your theme's color, takes any emoji or Lucide icon name you type, or hides it entirely.
- Choosing Hidden also removes the
Aaglyph from the column header, leaving the Name column completely clean. - An emoji you pick keeps its own colors; Notion's default page icon stays desaturated as before.
Thanks to the community for reporting that the fixed icon could clash with custom themes.
0.7.0 Major
New — resizable columns.
Drag the border in a column header to set its width, and
double-click that border to size the column back to its
content. Widths are saved per view in the
.base file, so they survive reloads and travel
with the base.
Also in this release:
- A narrowed column wraps taller when “Wrap all content” is on, and truncates when it is off — resizing and wrapping work together, like Notion.
- Widening a column past the pane pushes the table into its horizontal scroll instead of squeezing the rest.
- Fixed: editing a cell no longer widens its column for as long as the editor is open.
- Fixed: the cell editor now closes the moment you press Enter, instead of lingering until the property finished saving.
0.6.0 Major
New — custom pill colors. The color picker is no longer limited to Notion's nine colors: the new Custom row at the top of the picker opens your system's color dialog, or takes a typed hex. Your pick is saved to that value and applies everywhere it appears.
Also in this release:
- The “Pinned pill colors” view option now takes hex values
too, so you can set them in bulk —
Done=#0088ffalongsideDone=green. - A custom color is used exactly as you picked it in both light and dark mode; the pill's text color is derived automatically (contrast-checked) so the label always stays readable. Notion's nine palette colors keep their separate light and dark values.
0.5.4
- In the page panel, editing a pill property was impossible — opening the select menu bounced the cursor back to the page title, so you couldn't search for or type a new value. The menu now opens inside the panel, where Obsidian's modal focus handling leaves it alone.
- Clicking the same property row again now reliably closes its select menu, even after a change re-renders the table behind the panel.
0.5.3
- Addressed the community plugin review feedback — inline
styles now go through Obsidian's official styling APIs, modal
lifecycle methods match Obsidian's types, and the stylesheet
no longer uses
!important(overrides win by selector specificity instead). No functional changes.
0.5.2
- In the page panel, editing the body of a note with many properties could squeeze the editor to nothing, hiding the content — the editor now grows with its content and the panel scrolls.
0.5.1
- The base's native toolbar New button now opens the page panel too, while a GoodBases view is active (other Bases views keep the core popover).
- Added an open-in-new-tab button next to the page panel's close button — it saves pending edits, closes the panel, and opens the note in a new tab.
0.5.0 Major
New Notion-style page panel. + New now opens the freshly created note centered in a panel, like Notion's page peek: an editable title, the note's properties, and the body rendered as formatted Markdown
Also in this release:
- Added an “Open notes in” view option — point the hover OPEN button at a new tab (default) or at the page panel.
0.4.5
- In dark mode the table header no longer shows a light background — it now follows the page background like the rest of the table.
- Column headers now align consistently between editing and reading mode (header text is vertically centered in both).
0.4.4
- Long, multi-line text cells now edit in a textarea, so the full wrapped text stays visible while you type — previously a single-line input scrolled the text sideways. Press Shift+Enter for a newline, Enter to save.
0.4.3
- Clicking a pill cell again now closes its tag selector (previously only an outside click or Esc would).
- The inline text/number edit box now matches the size of the cell you click, instead of a fixed size.
0.4.2
- The optional Notion-style toolbar snippet no longer uses the
:has()selector, avoiding the performance cost of broad selector invalidation. Once enabled, the snippet now restyles every Bases toolbar (not just GoodBases views).
0.4.1
- The Notion-style toolbar restyle (the blue “New” button and icon-only Sort / Filter / Properties / Search) is now an optional CSS snippet instead of shipping in the plugin, so GoodBases no longer restyles Obsidian's core UI. See the README for how to enable it.
0.4.0 Major
New — per-value color picker. Click the colored square next to any value in the pill select menu and pick a color from Notion's palette. Your choice is saved and applies everywhere that value appears.
Also in this release:
- Cell content now wraps by default.
- Colored pills use Notion's exact light- and dark-mode palette values.
- Restyled the Bases toolbar for the Notion-style view — a Notion-like blue “New” button and icon-only Sort / Filter / Properties / Search, scoped so it only affects this plugin's views.
- Fixed: the inline edit box no longer lingers after you click away from a cell without changing it.
0.3.2
- Added the project landing page, demo GIF, and a Buy Me a Coffee funding link.
0.3.1
- Initial release: Notion-style table view — colored pills, inline cell editing, the pill select editor, pinned pill colors, hover-reveal OPEN button, grouping support, and view options.
Install
Requires Obsidian 1.10.2+ with the Bases core plugin enabled.
From Obsidian's Community plugins
- Open Settings → Community plugins → Browse.
- Search for GoodBases, then click Install and Enable.
- Open the view selector and pick Notion-style table.
Manual install from the repository
- Download
main.js,manifest.json, andstyles.cssfrom the latest release. - Put them in
VaultRoot/.obsidian/plugins/good-bases/. - Reload Obsidian and enable GoodBases in Settings → Community plugins.
- In any Base, open the view selector and pick Notion-style table.
Support
GoodBases is built and maintained in my spare time, and it will always be free. If it makes your vault a little nicer to work in, a coffee goes toward new features — per-group calculations, more of Notion's column menu, board and gallery views — and keeping up with Obsidian's API changes.
Buy me a coffee