Skip to content

Follow the data. Build the workspace.

Open any SQLite, PostgreSQL or MySQL database and follow its foreign keys like links. Then describe the App your team works in, in typed TypeScript, over the same data.

Node 24+. No config, no build step.

Terminal window
npx tablewalk --demo # a throwaway sample database
npx tablewalk mydata.sqlite # or your own

Open http://127.0.0.1:4111. Browsing is read-only; writes are a per-connection opt-in ("writable": true), enforced at the adapter.

A customer record in the database browser: its fields, the invoices that point at it, and a rail of every table that refers to it.

Tick is a whole App in one file. From a source checkout:

Terminal window
git clone https://github.com/rbaljinder/tablewalk.git && cd tablewalk && npm install
node examples/databases/tick/seed.mjs /tmp/tick.db
npm run start -- --config /tmp/tick.db.json --app examples/apps/tick --open
  1. The seed writes a SQLite database and a writable connection file beside it.
  2. The server opens Tick at /tick: a checklist you can add to, tick off and reorder.
  3. Edit examples/apps/tick/app.ts — a label, a tab, a column — and the page reloads.
  4. Run npm run start -- check --app examples/apps/tick --config /tmp/tick.db.json to typecheck and validate it against the database.

An App is data: resources, views, pages, actions and a look, typed against your own schema.

app.ts
import { defineApp, type TypedAppConfig } from 'tablewalk/app';
type Tables = { task: 'id' | 'name' | 'completed' | 'due_on' };
export default defineApp({
id: 'tick',
name: 'Tick',
resources: { task: { access: 'write' } },
views: { tasks: { kind: 'list', table: 'task', label: 'Tasks', show: ['name', 'completed', 'due_on'] } },
home: 'tasks',
} satisfies TypedAppConfig<Tables>);

Next: the DSL in one App, step by step.

Database browser Walk relationships both ways, ask grouped questions, share the URL. Query language & MCP
Coding agents MCP offers up to twenty-five tools: nineteen that only read, and six writes listed only for a writable connection. MCP · Build with an agent
Lists, pages, dashboards Grids, cards, queues, boards, calendars, record pages, history, charts. Lists, pages & forms
Commands Guarded business operations with declared inputs and a typed db. Actions & commands
Sign-in and roles Roles, field and row access, tenants, public pages. Sign-in, roles & data
Seven looks Mono (the default), Canvas, Iris, Ink, Sage, Signal and Tray, or your own. Looks · Components
Custom components Your own React module where no built-in fits. Custom components
Ship tablewalk build, containers, PostgreSQL pools. Build and deploy

What is stable and what is preview: Status & roadmap. Source on GitHub · MIT license