Go to file
Dmitry S f9f4245466 (core) Fix adding multiple fields when editing card layout
Summary:
Bug reported by user (https://gristlabs.getgrist.com/k1f3bMzUvitZ/User-Feedback#a1.s3.r408.c8)
Also make the test of editing RecordLayout work better (it was failing on Mac even on master)

Test Plan: Added a test case for adding multiple fields

Reviewers: alexmojaki

Reviewed By: alexmojaki

Differential Revision: https://phab.getgrist.com/D3219
2022-01-18 10:37:46 -05:00
.github/workflows (core) run test:docker target prior to pushing grist-core image 2021-12-14 14:22:02 -05:00
app (core) Fix adding multiple fields when editing card layout 2022-01-18 10:37:46 -05:00
bower_components (core) add Dockerfile for grist-core 2020-10-12 15:45:22 -04:00
buildtools (core) Move user profile to new page and begin MFA work 2022-01-13 21:21:49 -08:00
plugins/core (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
sandbox (core) Improving experience when editing group-by column. 2022-01-18 14:31:31 +01:00
static (core) Replace questionnaire for new users with a popup asking for just their primary use-case. 2022-01-14 10:16:11 -05:00
stubs/app (core) move more tests to grist-core 2021-12-10 18:33:07 -05:00
test (core) Improving experience when editing group-by column. 2022-01-18 14:31:31 +01:00
.dockerignore (core) fix some rusting of the grist-core build 2021-11-30 12:01:41 -05:00
.gitignore (core) fix browser check and favicon in grist-core 2022-01-05 18:15:05 -05:00
bin Initial config with a few files that build on client and server side. 2020-05-20 00:50:46 -04:00
Dockerfile (core) persist logins across docker restarts by default 2022-01-18 10:13:23 -05:00
LICENSE.txt (core) freshen core README; support python3 in grist-core docker image 2022-01-08 18:27:20 -05:00
NOTICE.txt (core) freshen core README; support python3 in grist-core docker image 2022-01-08 18:27:20 -05:00
ormconfig.js (core) move home server into core 2020-07-21 20:39:10 -04:00
package.json (core) Move user profile to new page and begin MFA work 2022-01-13 21:21:49 -08:00
README.md (core) freshen core README; support python3 in grist-core docker image 2022-01-08 18:27:20 -05:00
tsconfig.json (core) freshen grist-core build 2021-04-03 09:41:06 -04:00
yarn.lock (core) Move user profile to new page and begin MFA work 2022-01-13 21:21:49 -08:00

Grist

Grist is a modern relational spreadsheet. It combines the flexibility of a spreadsheet with the robustness of a database to organize your data and make you more productive.

Features

(By popular request: we have a specific write-up of Grist vs Airtable that may be helpful). Grist is a hybrid database/spreadsheet, meaning that:

  • Columns work like they do in databases. They are named, and hold one kind of data.
  • Columns can be filled by formula, spreadsheet-style, with automatic updates when referenced cells change.

Here are some specific feature highlights of Grist:

  • Python formulas.
  • A portable, self-contained format.
    • Based on SQLite, the most widely deployed database engine.
    • Any tool that can read SQLite can read numeric and text data from a Grist file.
    • Great format for backups that you can be confident you can restore in full.
    • Great format for moving between different hosts.
  • Convenient editing and formatting features.
    • Choices and choice lists, for adding colorful tags to records without fuss.
    • References and reference lists, for cross-referencing records in other tables.
    • Attachments, to include media or document files in records.
    • Dates and times, toggles, and special numerics such as currency all have specialized editors and formatting options.
  • Great for dashboards, visualizations, and data entry.
    • Charts for visualization.
    • Summary tables for summing and counting across groups.
    • Widget linking streamlines filtering and editing data. Grist has a unique approach to visualization, where you can lay out and link distinct widgets to show together, without cramming mixed material into a table.
    • The Filter bar is great for quick slicing and dicing.
  • Incremental imports.
    • So you can import a CSV of the last three months activity from your bank...
    • ... and import new activity a month later without fuss or duplicates.
  • Integrations.
  • Many templates to get you started, from investment research to organizing treasure hunts.
  • Access control options.
  • Can be self-maintained.
    • Useful for intranet operation and specific compliance requirements.

If you are curious about where Grist is going heading, see our roadmap, drop a question in our forum, or browse our extensive documentation.

Using Grist

There are docker images set up for individual use, or (with some configuration) for self-hosting. Grist Labs offers a hosted service at https://docs.getgrist.com.

To run Grist running on your computer with Docker, do:

docker pull gristlabs/grist
docker run -p 8484:8484 -it gristlabs/grist

Then visit http://localhost:8484 in your browser. You'll be able to create, edit, import, and export documents. To preserve your work across docker runs, share a directory as /persist:

docker run -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist

Get templates at https://templates.getgrist.com/ for payroll, inventory management, invoicing, D&D encounter tracking, and a lot more, or use any document you've created on https://docs.getgrist.com.

If you need to change the port Grist runs on, set a PORT variable, don't just change the port mapping:

docker run --env PORT=9999 -p 9999:9999 -v $PWD/persist:/persist -it gristlabs/grist

Building from source

To build Grist from source, follow these steps:

yarn install
yarn run build:prod
yarn run install:python
yarn start
# Grist will be available at http://localhost:8484/

Logins

Like git, Grist has features to track document revision history. So for full operation, Grist expects to know who the user modifying a document is. Until it does, it operates in a limited anonymous mode. To get you going, the docker image is configured so that when you click on the "sign in" button Grist will attribute your work to you@example.com. Change this by setting GRIST_DEFAULT_EMAIL:

docker run --env GRIST_DEFAULT_EMAIL=my@email -p 8484:8484 -v $PWD/persist:/persist -it gristlabs/grist

You can change your name in Profile Settings in the User Menu. For multi-user operation, and/or if you wish to access Grist across the public internet, you'll want to connect it to your own single sign-in service SAML. Grist has been tested with Authentik and Auth0.

Why free and open source software

This repository, grist-core, is maintained by Grist Labs. Our flagship product available at getgrist.com is built from the code you see here, combined with business-specific software designed to scale it to many users, handle billing, etc.

Grist Labs is an open-core company. We offer Grist hosting as a service, with free and paid plans. We intend to also develop and sell features related to Grist using a proprietary license, targeted at the needs of enterprises with large self-managed installations. We see data portability and autonomy as a key value Grist can bring to our users, and grist-core as an essential means to deliver that. We are committed to maintaining and improving the grist-core codebase, and to be thoughtful about how proprietary offerings impact data portability and autonomy.

By opening its source code and offering an OSI-approved free license, Grist benefits its users:

  • Developer community. The freedom to examine source code, make bug fixes, and develop new features is a big deal for a general-purpose spreadsheet-like product, where there is a very long tail of features vital to someone somewhere.
  • Increased trust. Because anyone can examine the source code, “security by obscurity” is not an option. Vulnerabilities in the code can be found by others and reported before they cause damage.
  • Independence. Grist is available to you regardless of the fortunes of the Grist Labs business, since it is open source and can be self-hosted. Using our hosted solution is convenient, but you are not locked in.
  • Price flexibility. If you are low on funds but have time to invest, self-hosting is a great option to have. And DIY users may have the technical savvy and motivation to delve in and make improvements, which can benefit all users of Grist.
  • Extensibility. For developers, having the source open makes it easier to build extensions (such as the experimental Custom Widget). You can more easily include Grist in your pipeline. And if a feature is missing, you can just take the source code and build on top of it.

Reviews

License

This repository, grist-core, is released under the Apache License, Version 2.0, which is an OSI-approved free software license. See LICENSE.txt and NOTICE.txt for more information.