Overview:
Grist is an open-source relational spreadsheet that combines the flexibility of a spreadsheet with the robustness of a database. It uses named columns that hold one type of data, similar to databases, and supports spreadsheet-style formulas that automatically update when referenced cells change. Grist is suitable for users who need more structure than a traditional spreadsheet but more flexibility than a database application. It is available as a self-hosted server (grist-core), a desktop application for local use (grist-desktop), and a static build for embedding on websites (grist-static).
Core Features:
Python-based formulas: Full Python syntax including the standard library, plus many Excel functions and an AI Formula Assistant that works with OpenAI, Llama, and other models via OpenRouter.
Relational data model: Columns are named and typed; supports references and reference lists for cross-referencing records between tables, with two-way automatic synchronization.
Drag-and-drop dashboards: Includes charts, card views, a calendar widget, summary tables, widget linking, and a filter bar for data visualization.
Incremental imports: Allows importing CSV data in stages without duplicating previously imported records.
Access control: Share documents, workspaces, or team sites; control access to individual rows, columns, and tables based on cell values and user attributes. OIDC and SAML support for single sign-on.
Collaboration features: Cell comments with threaded replies and @-mentions, real-time awareness of other viewers, and a "suggest changes" workflow inspired by source control.
Use Cases:
Self-hosting a database-driven spreadsheet server: Organizations that want full control over their data can run Grist on their own infrastructure using Docker, with support for SQLite-based portable files.
Building internal data applications: Teams can create structured spreadsheets with relational tables, formulas, and dashboards for tasks like project tracking, inventory management, or reporting.
Embedding interactive data views on static websites: Using
grist-static, developers can display and share spreadsheets on a static site without requiring a back-end server.Managing data with fine-grained permissions: Users can share documents or team sites and restrict access at the row, column, or table level, suitable for environments where data sensitivity varies per user.
Why It Matters:
Grist is a practical open-source option for users who need a hybrid spreadsheet-database tool with self-hosting as a first-class option. The codebase supports Python-based formulas, relational data structures, and granular access controls, all of which are documented in the README. Its portable SQLite-based file format and support for sandboxing untrusted documents add practical value for self-hosters. The project is developed under an open-core model, with grist-core under the Apache 2.0 license, making the core functionality freely available for deployment, customization, and integration into developer workflows.




