Spreadsheets attract people with a hacker mindset, since they reward a little technical curiosity with a big jump in capability. Despite that, while there are some open source spreadsheet projects, most of the action is closed source (Excel, Airtable, Honeycode, etc). Grist is a solid, modern, powerful spreadsheet that fits well into the open-source ecology, and is as friendly to hacker-developers as it is to hacker-users. Here are some reasons why.
Grist borrows visually from classic spreadsheets and modern dashboards, with every view backed by relational data, filtered and linked with other views as needed. Grist takes care of the data, and keeping it live, so custom views are easy to add if you need something new, using standard HTML/JS/CSS. For example, live-updating invoices, mailing labels, goat pedigrees, exoplanet birthday card, or morse code quizzer that look just how you want them.
Grist is a self-contained format, based on SQLite. Grist tables are literally SQLite tables, which opens up all sorts of possibilities. For example, I can take a Grist example investment spreadsheet and publish it using Simon Willison’s datasette as a Glitch remix without any conversion steps needed. This is a step up from exporting CSV.
Grist uses python as its formula language. Python has a good standard library, nice syntax for working with lists, and is a favorite of data scientists. Grist itself is written in TypeScript, with formula evaluation isolated in a sandbox
The Grist format makes it easy to find the most recent common ancestor of two versions of a document, facilitating three-way comparisons and git-style revision control. When working on a Grist spreadsheet with someone, you can use real-time collaborative editing – or you may sometimes prefer to “fork” your spreadsheet, make a set of changes, compare them with the original and then land them back. We’re excited to flesh this workflow out, and I think any programmer can see where we’re going with it.
Grist code is available at github.com/gristlabs/grist-core under a standard free and open source licence (Apache 2.0). Grist software is developed by Grist Labs, which offers free and paid hosting plans. Whether you choose us to host your spreadsheets, or to run Grist yourself, you have the comfort of knowing the developers have revenue (so they won’t one day vanish in the morning sun like an elusive gleam of dew on a flower), and you have the code and your data (ditto).
Grist supports attachments, and those attachments can be downloaded as part of a single Grist file format. Grist has solid undo/redo support. Hosted Grist makes automatic backups at hourly, daily, monthly, and yearly intervals. Grist has an API and a Zapier integration. Grist supports real time collaboration. Grist supports many Excel functions. We publish a Grist docker image (see the README), and have an unreleased standalone app for Windows/Mac/Linux that we’ll be bringing up to date.
Spreadsheets have evolved a lot since Babylonian times. In open-source, Gnumeric and Calc are venerable standalone Excel replacements. LuckySheet is a shot at a clone of that standalone experience in the browser. Ethercalc is a real-time collaborative spreadsheet, developed by Audrey Tang, now Taiwan’s Digital Minister, extending work they did with Dan Bricklin on SocialCalc. Evolving further, hybrid spreadsheet-database models are growing in usefulness and popularity. That’s what Grist is, and we are pleased to bring it now to the open-source community.
Spreadsheets have a long tail of features that are “must haves” for someone out there. We think a quality, open code base is a big help for realizing those features, and having peace of mind in relying on them. Just as Babylonian clay tablets were, we hope that Grist will prove a sturdy data storage and presentation infrastructure that can survive for years (if not centuries!) to come.
Come play with hosted Grist, or explore and build Grist source code. In either case, we’d be grateful for your feedback at @getgrist or firstname.lastname@example.org!
Paul Fitzpatrick, CTO
Dmitry Sagalovskiy, CEO