Tablestack

H by Hatchable

The Airtable alternative you own.

Tablestack

A full database-as-a-spreadsheet, hosted on your own subdomain, source open, no per-seat fees. Bases, tables, fields, records, four view types (Grid, Kanban, Gallery, public Form), eleven field types, filter / sort / group / hide / search, attachments, public form sharing — the 90% of Airtable that gets used every day.

Not a starter template. A finished product. The seed ships a working Product CRM (Companies, Contacts, Deals — linked records, color-coded stage tags, sorted deals pipeline, Kanban-by-stage, Won-this-year filtered view, public submission form) so the first paint is a real app, not a tutorial.

The whole thing runs on five Postgres tables. User-defined columns are rows in a `fields` table; row data lives in a JSONB column on `records`. Adding a column is `INSERT INTO fields`, not `ALTER TABLE` — that's why the app stays small and fast. GIN-indexed JSONB keeps filter/sort queries sub-second at 10K rows. The frontend is React + htm via CDN — no build step, dark-mode-first, ~3K lines total. Source-available; AGENTS.md ships with ten extension recipes (new field types, calendar view, comments, audit trail, AI auto-fill, Slack webhooks, multi-tenant auth shim) so you or your AI tool can grow it into whatever shape your team needs.

Free to fork and self-host on Hatchable.

Talk to it from your AI

Once Tablestack is on your account, the same AI you used to install it can read its data, send its emails, and change its code — for the life of the project. Try things like:

“For every company missing a Notes value, write a one-line research summary from their website.”
“Tag every contact as decision-maker, champion, technical, or economic based on their role title.”
“Which 3 deals are most at risk this month — and why? Add a "risk note" to each one.”
“Find every fintech prospect with 100+ employees and move them into a new "Q3 enterprise" view.”
“Email me a Monday digest of any deal that hasn't changed stage in 14 days.”
“Draft a kickoff email for every deal that hit "Won" this week and put them in my drafts.”
“For every Beacon Health contact, find their LinkedIn URL and add it to a new Linkedin field.”

Every Hatchable project ships with an MCP server scoped to it — how it works.

Features

Four view types: Grid, Kanban, Gallery, Form

Same data, different lenses. Grid for the spreadsheet feel, Kanban for pipelines, Gallery for asset libraries, Form for collecting submissions from outside the app.

Eleven field types out of the box

Text, long text, number (currency / percent / plain), single + multi-select with color tags, date, checkbox, URL, email, attachments via platform storage, and links between records.

Inline editing with full keyboard nav

Arrows to navigate, Enter to edit, Tab to commit + move right, Esc to cancel. Per-type editors: date picker, choice dropdown, attachment uploader, linked-record search.

Filter, sort, group, hide, search — per view

Multi-condition filters and multi-field sorts persisted per view. Search runs server-side against a JSONB GIN index. Stays fast at 10K rows.

Public form sharing with a private back office

Every form view auto-mints a share token. Drop the link in an email; the submitter never sees your data, you get a row in the table.

Self-extending playbook (AGENTS.md)

Hand the project to your AI tool — ten extension recipes ship with the code: rating field, calendar view, formulas, comments, audit trail, CSV import / export, AI auto-fill, Slack webhooks, multi-tenant auth, public read-only embeds.

Source-available, no per-seat pricing

Fork it, run it on your own subdomain, modify any file. ~3K lines of plain JS — no framework, no build step.

What you get

  • Source code, deployed to your account on Hatchable
  • Your own subdomain (or BYO custom domain on the Pro plan)
  • A real Postgres database, scoped to this app
  • The ability to make a copy, edit it, and redeploy via your AI tool
  • CSV export of your data, any time