Esta página se muestra en inglés. Una traducción al español está en curso.
ConfigsApr 22, 2026·3 min de lectura

Grist — Modern Relational Spreadsheet You Can Self-Host

A spreadsheet-database hybrid that combines the familiar grid interface with relational data modeling, Python formulas, and a full API, all self-hostable.

Introduction

Grist is a modern, open-source spreadsheet that stores data in proper relational tables instead of flat grids. It gives spreadsheet users the power of a database with familiar formulas, while giving developers a real API and Python-based computed columns. You self-host it and own all your data.

What Grist Does

  • Organizes data in relational tables with typed columns and foreign-key references
  • Evaluates formulas written in Python instead of traditional spreadsheet syntax
  • Provides multiple views (grid, card, chart, calendar) over the same underlying data
  • Exposes a REST API for programmatic reads, writes, and webhooks
  • Supports granular access rules to control who sees or edits which rows and columns

Architecture Overview

Grist is a Node.js server that manages SQLite-backed documents. Each document is an independent SQLite file, making backups and portability straightforward. The Python formula engine runs in a sandboxed subprocess (gvisor or pyodide) that evaluates column formulas on each change. The frontend is a TypeScript single-page app using GrainJS for reactive DOM updates.

Self-Hosting & Configuration

  • Run with Docker using the official gristlabs/grist image with a persistent volume
  • Set GRIST_SESSION_SECRET for session security and APP_HOME_URL for your domain
  • Configure authentication via SAML, OpenID Connect, or a header-based auth proxy
  • Enable sandboxing with GRIST_SANDBOX_FLAVOR=gvisor for untrusted formula execution
  • Optionally connect to an external PostgreSQL or S3 for document metadata and storage

Key Features

  • Python formulas with full standard library access inside a security sandbox
  • Access control rules that restrict data visibility at the row and column level
  • Incremental imports that update existing records by matching on key columns
  • Webhooks that fire on row changes for integrating with external services
  • Document snapshots for point-in-time restore and version history

Comparison with Similar Tools

  • Airtable — SaaS with vendor lock-in; Grist is self-hosted with portable SQLite files
  • NocoDB — wraps an existing SQL database; Grist manages its own data in SQLite docs
  • Baserow — similar concept but uses Django and PostgreSQL; Grist offers Python formulas in cells
  • Google Sheets — collaborative but cloud-only; Grist provides local ownership and relational modeling

FAQ

Q: Can I use Grist as a backend for my app? A: Yes. The REST API supports full CRUD and filtering, making it a lightweight backend for small applications.

Q: How do Python formulas work? A: Each computed column has a Python expression. When dependent data changes, Grist re-evaluates affected formulas in a sandboxed Python process.

Q: Is there a row or data limit? A: Limits depend on your hardware. Since each document is an SQLite file, practical limits are in the hundreds of thousands of rows per document.

Q: Can I import from Excel or CSV? A: Yes. Grist supports importing Excel, CSV, JSON, and Google Sheets with column type detection and incremental update matching.

Sources

Discusión

Inicia sesión para unirte a la discusión.
Aún no hay comentarios. Sé el primero en compartir tus ideas.

Activos relacionados