StoryOS

Product

A real database that runs your business.

Not a notes app with tables bolted on. Structured records, true relations, computed fields, and automations — with an API and MCP over all of it.

A StoryOS tasks database in table view — typed fields, select states, labels, assignees and due dates

Everything a workspace needs

The primitives of a serious relational tool — on every plan.

Real relations

Link databases with true one-to-many and many-to-many relations — not lookups bolted on.

Rollups & lookups

Pull a related field through a relation, or aggregate a whole collection (sum, count, min, max, avg).

Formulas

Computed fields with a safe expression language and ~20 functions.

Automations & buttons

Rules that run on record events or a schedule; one-click buttons for manual actions.

Views, filters, colors

Saved views per database with filter ASTs, multi-sort, grouping, and color-by.

Docs, comments, files

Rich-text descriptions, @mentions, dedicated attachment fields — a cover, a video, a gallery, each addressable on its own instead of one undifferentiated pile — and standalone space documents.

Approval gates

Automations and agents stage anything risky — an outward email, a webhook, a Slack message, delegating to an agent — for you to approve or reject before it ever runs. The human stays the one who pulls the trigger on what matters.

Duplicate a database

Clone a database’s full schema — fields, colours, views, self-relations — into a new one in one click, or bring up to 50 records along. A relation to a different database can’t come along and is reported, never silently dropped.

A personal space, built in

Every member gets a private area for their own documents and views — only they can see it, and it can’t be shared, moved or deleted like a regular space. Nothing to set up.

Records open beside your work

Open a record from a table, board, search result or the command palette and it slides in beside what you were already looking at — never a full navigation away. Open a related record from inside it and it stacks.

Publish a view publicly

Turn a database view into a read-only link — no login required for whoever opens it. Pick exactly which fields show; rollups, lookups and formulas stay hidden unless you opt them in. Revoke it any time.

Copy records to another database

Select one or more records and copy them into a different database — fields auto-match by name and type, with a dry-run preview of what will be created before you confirm.

Dashboards across databases

Number tiles and charts on a grid — each block can name its own source database, so one dashboard can chart Tasks beside a tile counting Contacts. Lives on a database or, for a cross-database view, on the whole space.

Summary widgets on any view

A strip of stats, bars, lines or pies above a table, board, gallery or list — scoped to that view's own filter, drag-to-reorder. No new page to build or maintain: the numbers sit right above the records they describe.

A map of your relations

A dedicated page per database shows every database it connects to, in one glance — click through to any of them. Built for navigating and adding a relation, not editing one; cardinality changes still happen where they always did.

Undo a deletion

Deleted a database, view or space by mistake? Restore it from Trash — the same safety net records have always had, now covering the structure around them too.

A portal that looks like yours

Put your own logo and accent colour on every published view your clients open — on every plan, including Free. The StoryOS footer comes off on any paid plan.

Relations you can see and traverse

Open any record and its relations are right there — sub-tasks, blockers, the project it belongs to — as live sections, not lookup formulas. Link records from either side; rollups aggregate across the collection (sum, count, min, max, avg) and update as the data changes.

Automations watch for record events or run on a schedule, and buttons put one-click actions on the record itself — assign to me, advance the state, fire a webhook, wake an agent.

A StoryOS record with relation sections, typed properties and a project link
A StoryOS database's Relations page, showing every connected database at a glance

A map of your relations

Every database has its own Relations page — every database it connects to, in one glance, with the relation named on the line between them. Click through to any of them.

Built for navigating and adding a relation, not editing one — cardinality changes are the kind of structural change that still happens where it always did, on the field itself.

Share it, looking like yours.

Publish any database view as a read-only link — pick which fields show, no login required for whoever opens it. Put your own logo and accent colour on it first, on every plan including Free.

The StoryOS footer comes off on any paid plan. Your logo and colour show regardless — an agency's client portal should look like the agency's, not ours.

A published StoryOS view with a custom logo and accent colour, no default StoryOS branding

No limits — and we mean records

Most tools cap the thing you can least control: how much data your business produces.

Records

Unlimited on every plan, including Free. Your CRM, order history, or content library never hits a cliff that forces an upgrade.

Features

Capability is never paywalled. Relations, rollups, formulas, automations, API, MCP — all of it on every plan. Paid plans buy scale, not features.

Your data

Full CSV import and export, a complete REST API, and an AGPL self-host option. There is no lock-in lever for us to pull — by design.

One dataset. Eight ways to see it.

Switch how you look at the same records — nothing is ever duplicated.

Table

The spreadsheet you know — typed fields, inline edit, filters, sorts.

Board

Kanban by any single-select. Drag cards between columns.

Calendar

Records on a month grid by a date field.

Gallery

A responsive grid of rich cards — great for anything visual.

List

Compact, groupable rows. Denser than a table, lighter than a board.

Feed

A scrollable stream of large cards — review notes and updates.

Timeline

Bars across a zoomable time axis — plan and schedule.

Form

Collect records through a form — intake, requests, applications.

The number, right above the records.

A stat, a bar, a line or a pie above a table, board, gallery or list — no dashboard to build for a number you check daily.

A StoryOS table view with a strip of summary widgets above it: an open-tasks stat, a by-priority bar chart, and a by-state pie chart

Scoped to the view's own filter — drag to reorder, remove any time.

Moving in is a day, not a quarter

CSV import

Import any spreadsheet or an export from your old tool — the wizard maps columns to any typed field your schema supports, including rich text, multi-select and workflow status, and creates records in bulk.

Linear import

Bring issues, projects, sprints and labels across with the built-in Linear importer.

API import

Script anything else over REST: create databases, fields and records programmatically — or let your AI assistant do it over MCP.

Sharing is workspace-first: invite members to build, and share spaces or databases with clients and stakeholders on tighter grants. Viewers & commenters are always free, on every plan.

API-first, all the way down

The UI is a client of the same public API you get. Every workspace, database, field, record and view is reachable over REST with a personal access token — and over MCP, so your AI assistant works the exact same surface you do.

# every urgent task, as JSON
curl "https://app.storyos.dev/api/v1/\
workspaces/$WS/databases/$DB/records" \
  -H "Authorization: Bearer mn_pat_…" \
  -G --data-urlencode 'filter={
    "and": [
      { "field": "priority", "op": "eq",
        "value": "Urgent" }
    ]
  }'

Model your business in an afternoon.

Start free — 30 days of Pro, no card. Unlimited records from day one.