11,917 stars · Apache-2.0 (the repository) plus a proprietary licence on the optional ext/ extensions · v1.7.20 (2026-09-28) · Track this in Scout
A self-hosted spreadsheet with real column types, references between tables and Python formulas, stored as portable per-document files.
▶Repo detailsthe review · specs · pros & cons · install
What it is
Grist is a document-based spreadsheet and database hybrid. Each document is a portable file with its own schema, formulas and access rules, and the server is a Node.js application with a Python formula engine beside it.
What it is good for. Anyone whose important spreadsheet has grown to the point where a wrong type in one cell breaks a report. Typed columns, references between tables and real formulas fix that without moving to a database nobody on the team can read. If you want that and you also want the file to live on a machine you control, this is the main open-source answer.
- The repository's own licence is plain Apache-2.0, read from
LICENSE.txt, with a real copyright line: "Copyright 2014-2022 Grist Labs Inc." — no network clause, no field-of-use restriction, nothing added. - It publishes real hardware figures, which almost nothing else today does: 8 GB of memory, 2 processors and 20 GB of disk for "a variety of moderate workloads", and a measured 100 MB of memory on one sample document without sandboxing, 200 MB with it, and 1 processor.
- The default listening address is localhost only.
GRIST_HOSThas to be set to0.0.0.0deliberately before it answers on other interfaces, which is the opposite of several other entries today.
- ⚠
yarn installdownloads code that is not open source, by default. The README's own words: "By default, the build is the full edition:yarn installdownloads optional extensions (into anextdirectory)", and "Note that this will add non-OSS code to your build", and "This extra code is not under a free or open-source license, though by default is completely inert". The mechanism is apostinstallhook that clonesgristlabs/grist-ee. Grist's own documentation describes that code as available "under a proprietary license that does not grant any automatic rights to use or redistribute the software", starting a thirty-day trial, after which "Activation keys are required to run the full edition". To avoid it entirely:yarn run set-community-edition, or setGRIST_EDITION=community, or setGRIST_SKIP_EXT_AUTOSETUP=1. - ⚠ Sign-in is effectively absent until you configure it. Grist runs in a limited anonymous mode until it knows who is editing, and a single default identity can be set with
GRIST_DEFAULT_EMAIL, which skips sign-in altogether. Locking it down needsGRIST_ANON_PLAYGROUND=falseorGRIST_FORCE_LOGIN. - 637 open issues against 101 open pull requests, formulas are Python so there is a language to learn, and the Node.js version is pinned in a dotfile (
.nvmrc, v22.12.0) rather than stated in the README.
nocodb/nocodbThe same spreadsheet-database idea, but an interface over an existing SQL database, where Grist carries its own document engine.
Track this in Scout- baserow/baserow
The same no-code database in a grid, built on PostgreSQL and positioned as an application builder, with GitHub acting as a mirror of a GitLab-primary project.
Track this in Scout - teableio/teable
Also a self-hostable spreadsheet-database, backed by PostgreSQL with database-scale as its pitch, against Grist's portable per-document files.
Track this in Scout
mkdir -p ~/grist docker run -d --name grist \ -p 127.0.0.1:8484:8484 \ -v ~/grist:/persist \ -e GRIST_SESSION_SECRET=replace-this-with-a-long-random-string \ -e GRIST_DEFAULT_EMAIL=your-email@example.com \ gristlabs/grist

