Repository navigation
Data Tables and Forms
A data table is a small database inside the wiki: typed columns, saved views, filters, edited live by several people and stored as one readable Markdown file. A form turns a table into a questionnaire where every answer becomes a row.
A table is a *.table.md file: the column types and saved views sit in the front matter, the rows are a Markdown table you can read in Git.
Column types: text, long text, number, date, checkbox, select, status, user, link.
Views are tabs. Each has its own columns, order and widths, sorting by several columns, pinned columns and a filter tree with and / or. Filters understand "me", "today", "this week" and "last N days".
-
+in the tree, Data table. Add columns and set their types. - Type, or paste from a spreadsheet: copy the cells and paste. The paste dialog lets you mark the first row as a header, pick each column's type and either append or replace rows.
- Add views for the people who use the table: "My open items", "Due this week".
- Export the current view or the whole dataset as CSV, TSV, Markdown, YAML or JSON.
Link a table from any page. Tables have a separate mobile mode and show live and read-only on public sites. Tags and properties work on tables too (Properties, Tags, Search and Bases).
A form and its table are linked one to one: a field is a column.
- Create a form from a table (or let an agent create both at once).
- Add fields: label, help text, required, type (any column type), options for select and status.
- Open sharing for the form. Making it public needs both the public flag and a valid share link; then people answer without an account. Anonymous answers are rate limited.
- Read the answers in the table. The submission time and submitter columns are filled by Folio.
Removing a field from a form removes it from the form only; its column and the collected answers stay.
While you edit a form's definition, a draft is kept in your browser; after a reload you get Restore or Discard. People filling in a form get their answers back after a reload too, until the response is sent. Drafts stay in the browser only; file contents and sensitive field types are never stored.
Folio AI in Agent mode, or any MCP client with a write token, can create tables, insert and update rows, add, change and delete columns, save and delete views, and create or update forms with their paired table. Ask the agent to read the table schema first.
- Up to 20,000 rows, 80 columns, 50,000 characters in a cell, 500 options in a list and 50 views per table. A table above the row limit opens read-only instead of breaking.
- Tables, forms and uploads need a connection; they do not work offline.
- A form on a public site is view-only; submitting needs a Folio account or a form share link.
- A page's access rules are not inherited by child pages, so lock a table that holds answers you must keep private.
- Changing a column's type converts the values and can clear some of them.
README: data tables · Set Up Onboarding · Sharing and Permissions · Folio vs. Notion · Templates
Website · Live demo · Install · Docs · Repository · Discussions · Changelog · MIT license
Start
Move to Folio
- Migrate from Confluence
- Migrate from Notion
- Migrate from Obsidian
- Make Obsidian Multiplayer
- Docs as Code
Use
- Boards
- Data Tables and Forms
- Artifacts
- Properties, Tags, Search and Bases
- Graph
- Publish a Public Website
AI and agents
Admin