Run it yourself. Nothing held back

The hosted plan is a convenience, not a lock. The same code that runs the hosted one is the code you can run, and there is no edition with the good parts missing.

What it needs

A Postgres database

Supabase, or a plain Postgres with the same extensions. The schema is a folder of migrations you can read before you run them.

An S3 bucket

Any S3-compatible bucket. Images and attachments are signed URLs, never public ones.

Any static file host

The app builds to a folder of files. Anything that can serve them will do.

Four commands

Point it at a Postgres and a bucket, apply the migrations, build the folder of files. There is no installer to trust and nothing that phones home.

Nothing is held back

No separate edition and no feature flags. Seats, storage and the API are limited on the hosted plan because those are what cost money to serve; on an install you run yourself they are not limited at all.

Access is decided by the database

Every rule about who may read or write what is a row-level security policy, proven by a suite of access checks that runs against the real schema before any change ships. An interface that hides a button is not security; this is.

And you can leave

One file holds every page, board, issue, database, tag and link, and restores into any workspace.