A spreadsheet that behaves like a database: typed columns, links between tables, and several views over the same rows. Teams use it as the back office for things that never justified real software — content calendars, inventories, applicant tracking — with forms, automations and permissions on top.
Build me the structured database I actually need instead of Airtable — and know what makes this ALMOST rather than YES. Two things are genuinely hard here: **real-time multiplayer editing**, which is a distributed-systems problem rather than a feature, and **permissions down to the field level**. If several people edit the same table at the same time all day, you will spend most of the project there. If they mostly do not, this is a fortnight and the result fits your data better than any generic grid. STACK - Node 20+ with Fastify, server-rendered HTML with vanilla JS for the grid - SQLite through better-sqlite3, WAL mode - No client-side framework - Caddy in front THE DATA MODEL - Real SQL tables per user table, created and altered by generated migrations. Not a generic key-value store: real columns mean real constraints, real indexes and queries that stay fast - tables, fields, views, and row_revisions (append-only) as the metadata - Field types: text, long text, number with precision, currency, checkbox, date with optional time and zone, single and multi select, email, url, phone, attachment, rating, duration, and the three that matter — link to another table as a real foreign key, lookup resolved at query time, and rollup as an aggregate over linked rows, never stored - Formula fields parsed into an AST with a dependency graph, so a cycle is rejected at save time rather than discovered at render - Each type has a parser, a validator, a formatter, a comparator, a filter set and a CSV form. Write that contract once COLLABORATION, HONESTLY - Optimistic writes with a version per row. A conflicting write is rejected and the newer value shown, never silently overwritten - Live updates by polling a changes-since endpoint every few seconds. That is enough for a handful of people and a fraction of the work of an operational-transform layer - Write in the README where that stops being enough, and do not pretend otherwise PERMISSIONS - Per table, per view, per field, per role, with an optional row predicate - Enforced inside the query. A hidden field must be absent from the response, not hidden in the browser - Default deny VIEWS AND THE GRID - Grid, gallery, kanban grouped by a select or a link, calendar, and a form - Filters composable, sorts on several fields, grouping with subtotals, frozen first column, row height - A view is a saved question, never a copy of the data - The grid is keyboard-first, virtualised to fifty thousand rows, with copy and paste of a rectangle to and from a real spreadsheet, and undo backed by the revision log AUTOMATIONS - Triggers: a row created, updated, or matching a condition; a schedule; a webhook - Actions: send an email, call an endpoint, write a row, run a small sandboxed script - Every run recorded with its input and output; retries with backoff; a per-recipient daily mail cap so a loop cannot send four hundred messages API AND ESCAPE - REST per table with filtering, pagination, relation expansion, and the same permission code path - Webhooks on change, signed and retried - CSV import with a mapping step and a dry run, and export of everything in one command OPERATIONS - .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET, HASH_SALT - Migrations on boot, each once; nightly backup off the machine, restore script - Health endpoint WHAT MATTERS MOST Real columns and the field-type contract. Every shortcut in the storage layer becomes impossible to undo once there is data in it, and the link, lookup and rollup trio is where the actual work lives.
What you lose
- Real-time multiplayer editing with conflict resolution, which is a hard distributed-systems problem, not a feature
- A permissions model down to the table, view and field level
- The interface designer that turns a base into something a colleague will actually use
- Automations and a large integration catalogue maintained by someone else
- Mobile apps, offline editing and attachment handling
If you would rather not build
- Baserow — open-source no-code database platform
What it costs
read from their page 15 Aug 2026
| Plan | Billed monthly | Billed yearly | Last read |
|---|---|---|---|
| — | $20/mo | — | 15 Aug 2026 |
Their pricing page is where these came from. Seeing a different price? Tell us.
The escape hatch
open source · no votes, no paid placement
NocoDB
$0Turns an existing SQL database into a spreadsheet-style interface, with views, forms and row-level permissions.
nocodb/nocodbfree · open source
Teable
$0Airtable-shaped tables backed by real Postgres, so the data stays queryable from outside the app.
teableio/teablefree · open source
Why this verdict
our own opinion · changed only by a person
45/100
Verdict kinda at 45: replacing one specific base with a typed schema, views and a form is achievable, but real-time collaboration, the permissions model and the interface designer are the actual product and none of them fall out of a weekend.
History
tracked since 6 Aug 2026 · nothing is ever overwritten
Questions about Airtable
answered from the record above
Is Airtable free?
No — the plan we track is $20 a month. Team plan, $20 per user per month billed annually. Business is $45 per user per month. The bill scales with collaborators, not with data.
Can you replace Airtable by building your own?
ALMOST. A weekend of work, and real gaps remain. Replacement score 45 out of 100, build time a weekend. Read what you lose before you decide.
How much does Airtable cost?
$20 a month on Team — $240 a year. Recorded 6 Aug 2026.
What do you lose by replacing Airtable?
Real-time multiplayer editing with conflict resolution, which is a hard distributed-systems problem, not a feature; A permissions model down to the table, view and field level; The interface designer that turns a base into something a colleague will actually use; Automations and a large integration catalogue maintained by someone else; Mobile apps, offline editing and attachment handling. If any of those carry weight for you, keep paying.
Is there an open-source alternative to Airtable?
Yes: NocoDB, Teable. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

