ObsiKO ObsiKO Docs

12 Bases (Data Tables) ๐Ÿ“Š

Reading logs, habit trackers, project boardsโ€ฆ collect your notes into a table, edit them right in the table, and even chart them. It works like a Notion database โ€” but all the data stays as plain text in your notes' frontmatter!

โ† Home: ObsiKO 101


What is a Base? ๐Ÿค”

Creating one โž•

What you can do in the table ๐Ÿ› ๏ธ

Edit right in the cell โœ๏ธ

The ๏ผ‹ new item row ๐ŸŒฑ

Type a note name in the dashed input at the bottom of the table and press Enter โ€” a new note is created pre-filled with frontmatter matching the current filter (tags, folder, properties). Great for entering many items in a row!

โœจ Fill with AI (column menu)

Pick Fill with AI in a column's โŒ„ menu and AI reads each note's content to decide the value. Try columns like "genre", "difficulty", or "one-line summary". You can fill empty cells only, or refill everything. โ†’ AI Agent

Chart view ๐Ÿ“ˆ

Switch a view to chart and the table becomes a graph โ€” just pick Group by (which property), Aggregate (count/sum/average), and Chart (bar/horizontal bar/line/area/pie/donut/lollipop). Date values and created/modified times are grouped by month automatically, so "books read per month" is one click away.

Reuse it everywhere โ™ป๏ธ

Kanban board ๐Ÿงฎ

Use As kanban in the view menu (tab โŒ„) to see notes as columns by property value (e.g. a status board). Drag a card to another column and that property value is written to the note (press-hold on phone/iPad; edges auto-scroll). For example, move a card from the "In progress" column to the "Done" column and that note's status changes to Done. The ๏ผ‹ in a column header creates a note with that status pre-filled. Columns in the toolbar reorders columns and pre-creates empty ones (like "in progress") that have no cards yet. - Group by a property that doesn't exist yet: in the group select (or the section โ‹ฎ), use '๏ผ‹ Group by new property' and type a name like status into the autocomplete dropdown to start a board from a property no note has yet. Build the columns, drag a card, and that property gets filled in. - A heads-up when a card drops out of the filter: if the view is filtered by the group property (e.g. a view where status == "todo"), moving a card to another column takes it out of the filter and it vanishes from the list โ€” but instead of disappearing silently, a toast lets you know ("Changed to Done โ€” hidden because it no longer matches this list's filter"). The note is safe, so if you keep several per-status sections, the moved card shows up in the matching status section.

Cards show 1โ€“2 leading properties of the view, past dates turn red, and right-clicking a card edits properties in place without opening the note.

Ready-made preset boards ๐ŸŽ

You don't have to build these from scratch โ€” pick them from the sidebar ๏ผ‹ menu or the command palette and they're made instantly. - PARA board ๐Ÿ—„๏ธ: gathers notes that have a para value into a kanban with four columns โ€” project ยท area ยท resource ยท archive. Drag a card to another column and its para changes โ€” off to Archive when a project wraps up! โ†’ Structuring Knowledge - Library ๐Ÿ“š: a vertical bookshelf (front-facing gallery) view that collects your type: book notes. Drag a cover onto the Done shelf to mark it read, with a reading-progress bar under each cover. โ†’ Library & Reading Log - Ledger ๐Ÿ’ฐ: gathers your expense and income entry notes into a table plus a summary panel โ€” income, expenses, and balance by period, budgets, and category shares all on one screen. โ†’ Ledger

Project view ๐Ÿ—‚๏ธ

Manage a whole project with one base โ€” a home with cover, status, D-day and progress, with the other views stacked as sections below. Eight templates (web novel, reading, research, tasks, trip, blog, studyโ€ฆ), info-note embed, โœจ AI briefing, dashboard and calendar integration โ€” see 12-1 Project View for the full guide!

Curious about the source? </> ๐Ÿง‘โ€๐Ÿ’ป

The </> Source button (top right) lets you edit the raw YAML (switch back to View to apply). Complex filters the UI doesn't build (nested or/not, date arithmetic) and formula columns (formulas:) can be written in source and are computed in the table.

Formula Columns โ€” ObsiKO Does the Math โœจ๐Ÿงฎ

Add expressions under formulas: and each note gets a computed read-only column (formula.<name>). Use property names directly, and reference other formulas as formula.<name>.

No need to open the source โ€” use ๏ผ‹ โ†’ 'ฦ’ Add formula column' at the right end of the table to enter a name and expression in a form (with a live preview against the first row!), and edit or delete any formula later via โŒ„ โ†’ 'ฦ’ Edit formula' on its column header.

formulas:
  total: price * qty
  grade: score >= 90 ? "A" : score >= 80 ? "B" : "C"
  dday: dateDiff(today(), due)
  dueweek: dateFormat(due, "MM.DD") + " (" + weekday(due) + ")"
  avgscore: round(scores.avg(), 1)
  authors: author.split(",").unique().sort().join(" ยท ")
  budget: coalesce(budget, 0) > 0 ? "set" : "TBD"

What you can use: - Operators: + - * / %, comparisons (== != > <โ€ฆ), && || !, ternary cond ? a : b, parentheses. Date ยฑ duration works too (due + duration("1 week")). - Numbers: abs round(x, digits) floor ceil sqrt pow clamp(v, min, max) min max sum average(avg) number - Dates: now() today() date("2026-07-17") duration("3 days") year month day hour minute weekday (day name) dateFormat(d, "YYYY.MM.DD HH:mm ddd") dateDiff(from, to, "days") - Conditions & defaults: if(cond, a, b) (= choice) ยท coalesce(v1, v2, โ€ฆ) (= default, first non-empty value โ€” great for missing frontmatter) - String methods: .lower() .upper() .trim() .slice(0,5) .replace("a","b") .split(",") .padStart(3,"0") .repeat(n) .contains() .startsWith() .endsWith() .isEmpty() .toFixed(1) .length - List methods (tags, multi-value props): .first() .last() .count() .sort()/.sort("desc") .reverse() .unique() .sum() .avg() .join(" ยท ")

Widget formulas you can click โ€” star rating โญ ยท done check โœ…

Formula columns aren't just read-only! Two of them become interactive widgets right in the table. - Star rating stars(rating): the cell shows 5 stars. Click (tap) a star and that count is written straight to the rating property; click the same star again to clear it to 0! - Done check checkbox(done): the cell shows a checkbox that toggles the done property true/false. - Pick 'Star rating' or 'Done check' from the presets in the add-formula form and it's set up in one go. Sorting and aggregation use the underlying values as usual.

Linking notes and calculating across them โ€” relations & rollups ๐Ÿ”—๐Ÿงฎ

Notion's Relation and Rollup, right here in ObsiKO. Except there's no separate database โ€” a [[wiki link]] in your frontmatter simply is the relation.

---
title: New product launch
para: project
parent_area: "[[Marketing]]"   # โ† this one line is the "relation"
done: false
---

That's all it takes to pull values from the note on the other end straight into your table.

Grab a value from the other note โ€” just one dot .

In a formula column, write relationProperty.propertyToFetch.

formulas:
  Area status: parent_area.status          # the status of the parent area note
  Area name: parent_area.file.name          # the other note's file name
  Author country: authors.country           # several links? several results!

Counting the notes that point at you โ€” rollups with backlinks()

It works in reverse too! Gather "every note that points at me via parent_area" and count or total them. Especially handy in a table of Area notes.

formulas:
  Projects: backlinks("parent_area").count()
  In progress: backlinks("parent_area").where("done", "!=", true).count()
  Total budget: backlinks("parent_area").sum("budget")
  List: backlinks("parent_area").join(" ยท ")

Want it more explicit? Use the function form

Functions do exactly the same thing as the dot notation โ€” handy when property names contain dots or spaces.

Written as Meaning
link(parent_area).status follow one link and read a value
links(authors).count() treat several links as a list
backlinks("parent_area") notes pointing at me via that property (= inbound(...))

๐Ÿ’ก Why build it this way: put relations in a separate database and they vanish the moment you move a note or open it in another app. In ObsiKO a relation is just one line of Markdown, so Obsidian sees an ordinary wiki link โ€” and it shows up naturally in the Connections panel and Graph View too. โ†’ Structuring Knowledge

Dress up the view title โ€” banner color & name ๐ŸŽจ

Good to know ๐Ÿ’ก


โ† Previous: Mind Map ยท Home ยท Next: Project View โ†’