MCPSERV.CLUB
Grist

Grist

Self-Hosted

Hybrid database‑powered spreadsheet for modern data work

Active(100)
9.9kstars
0views
Updated 1 day ago

Overview

Discover what makes Grist powerful

Grist is a hybrid relational spreadsheet that fuses the tabular familiarity of Excel with the schema‑driven rigor of a database. At its core, it exposes data as tables where each column is a typed field (e.g., integer, date, JSON) and rows are records. The engine automatically propagates changes through formula columns that can reference other tables, enabling reactive data pipelines without writing SQL. For developers, this model translates into a lightweight yet powerful API surface: CRUD operations on tables, transactional imports/exports, and programmable formula evaluation via a sandboxed Python interpreter.

Backend

Database

Formula Engine

Frontend

Overview

Grist is a hybrid relational spreadsheet that fuses the tabular familiarity of Excel with the schema‑driven rigor of a database. At its core, it exposes data as tables where each column is a typed field (e.g., integer, date, JSON) and rows are records. The engine automatically propagates changes through formula columns that can reference other tables, enabling reactive data pipelines without writing SQL. For developers, this model translates into a lightweight yet powerful API surface: CRUD operations on tables, transactional imports/exports, and programmable formula evaluation via a sandboxed Python interpreter.

Technical Stack & Architecture

  • Backend: Node.js (v18+) running an Express‑style API server. The core logic is written in TypeScript, leveraging a custom ORM that maps Grist tables to SQLite. The server orchestrates data access, conflict resolution, and user authentication (JWT or LDAP).
  • Database: SQLite is the primary persistence layer, chosen for its zero‑config file format and wide tooling support. For larger deployments, a PostgreSQL backend can be enabled via a pluggable storage adapter, offering multi‑user concurrency and horizontal scaling.
  • Formula Engine: Python 3 is embedded using pyodide‑style sandboxing, allowing users to write arbitrary Python expressions that run server‑side. The engine precompiles formulas into bytecode, caching results and invalidating on data changes.
  • Frontend: A React/Redux UI built with TypeScript, employing a virtualized grid for performance. The client communicates over WebSockets for real‑time collaboration and uses GraphQL‑like query shapes to fetch table slices.
  • Containerization: The grist-core repository ships a Docker image (ghcr.io/gristlabs/grist:latest) that bundles the Node server, SQLite, and all dependencies. This image can be run behind a reverse proxy (NGINX/Traefik) and scaled with Kubernetes StatefulSets for persistent volumes.

Core Capabilities & APIs

  • RESTful CRUD: /api/tables/:id/rows exposes standard create, read, update, delete operations with support for bulk uploads and delta patches.
  • Formula API: /api/formulas/compile accepts a string, returns compiled bytecode, and /api/formulas/eval runs it against the current dataset.
  • Export/Import: Grist files are .grist SQLite archives; the API supports GET /api/files/:id/export and POST /api/files/import.
  • Webhooks: Events such as row creation, update, or deletion trigger configurable HTTP callbacks.
  • Plugin System: Developers can ship custom Python modules or JavaScript widgets that extend the UI. The plugin registry is exposed via /api/plugins, and each plugin can register new column types or dashboards.

Deployment & Infrastructure

Running Grist self‑hosted requires a machine with at least 4 GB RAM and SSD storage for optimal performance. The Docker image is lightweight (~200 MB) and can be deployed on any Linux distribution, macOS, or Windows via Docker Desktop. For high availability, the SQLite backend can be replaced with PostgreSQL, and multiple instances can share a shared filesystem (e.g., NFS) or use an external object store for file exports. Kubernetes operators are available to automate scaling, backups, and certificate management.

Integration & Extensibility

  • OAuth/OIDC: Integrate with corporate identity providers for SSO.
  • LDAP/Active Directory: Native support for enterprise directory services.
  • API Clients: Official TypeScript SDKs simplify consumption from backend services or CI pipelines.
  • Webhooks & Events: Expose data changes to external systems like Slack, Zapier, or custom microservices.
  • Custom Dashboards: Build React components that consume the Grist API to create bespoke reporting interfaces.

Developer Experience

The documentation is hosted at docs.getgrist.com and includes a comprehensive API reference, developer tutorials, and example projects. The community is active on Discord and the forum, providing rapid feedback for bug reports and feature requests. Licensing under Apache 2.0 allows unrestricted commercial use, and the open‑source nature means you can audit or modify any component to fit security or compliance requirements.

Use Cases

  • Internal Data Platforms: Replace disparate spreadsheets with a single source of truth that can be queried via API or embedded in web apps.
  • No‑Code App Builders: Use Grist as the backend for low‑code tools, leveraging its formula engine to implement business logic.
  • Data Migration: Import legacy Excel files into Grist, clean and normalize data using Python formulas, then export to a relational database.
  • Real‑Time Collaboration: Embed Grist tables in internal dashboards where multiple users edit concurrently, with automatic conflict resolution.

Advantages

  • Performance: SQLite offers fast read/write for moderate workloads; PostgreSQL scales to millions of rows.
  • Flexibility: Python formulas provide a full programming language for data transformation, surpassing typical spreadsheet functions.
  • Licensing & Control: Apache 2.0 ensures no vendor lock‑in; self‑hosting gives full data ownership and compliance control.
  • Extensibility: Plugin architecture allows custom UI widgets and backend modules without core changes.

Open SourceReady to get started?

Join the community and start self-hosting Grist today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
other
License
APACHE-2.0
Stars
9.9k
Technical Specs
Pricing
Open Source
Database
SQLite
Docker
Community
Supported OS
LinuxmacOSWindowsDocker
Author
gristlabs
gristlabs
Last Updated
1 day ago