(By popular request: we have a specific write-up of [Grist vs Airtable](https://www.getgrist.com/blog/grist-v-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.
This difference can confuse people coming directly from Excel or Google Sheets. Give it a chance!
If you are coming from Airtable, you'll find the model familiar though (and there's a
[Grist vs Airtable](https://www.getgrist.com/blog/grist-v-airtable/) article that might interest you).
Here are some specific feature highlights of Grist:
* Python formulas.
@ -23,6 +43,8 @@ Here are some specific feature highlights of Grist:
- Any tool that can read SQLite can read numeric and text data from a Grist file.
- Great format for [backups](https://support.getgrist.com/exports/#backing-up-an-entire-document) that you can be confident you can restore in full.
- Great format for moving between different hosts.
- Can be displayed on a static website with [grist-static](https://github.com/gristlabs/grist-static).
- There's a self-contained desktop app available for viewing and editing: [grist-electron](https://github.com/gristlabs/grist-electron).
* Convenient editing and formatting features.
- Choices and [choice lists](https://support.getgrist.com/col-types/#choice-list-columns), for adding colorful tags to records without fuss.
- [References](https://support.getgrist.com/col-refs/#creating-a-new-reference-list-column) and reference lists, for cross-referencing records in other tables.
@ -45,7 +67,7 @@ Here are some specific feature highlights of Grist:
- Can link data with custom widgets hosted externally.
* [Many templates](https://templates.getgrist.com/) to get you started, from investment research to organizing treasure hunts.
* Access control options.
- (You'll need SSO logins set up to make use of these options)
- (You'll need SSO logins set up to make use of these options; [grist-omnibus](https://github.com/gristlabs/grist-omnibus) has a prepackaged solution if configuring this feels daunting)
- Share [individual documents](https://support.getgrist.com/sharing/), or workspaces, or [team sites](https://support.getgrist.com/team-sharing/).
- Control access to [individual rows, columns, and tables](https://support.getgrist.com/access-rules/).
- Control access based on cell values and user attributes.
@ -56,6 +78,8 @@ Here are some specific feature highlights of Grist:
[gVisor](https://github.com/google/gvisor) sandboxing at the individual
document level.
- On OSX, you can use native sandboxing.
- On any OS, including Windows, you can use a wasm-based sandbox.
* Translated to many languages.
If you are curious about where Grist is going heading,
see [our roadmap](https://github.com/gristlabs/grist-core/projects/1), drop a
@ -64,11 +88,16 @@ or browse [our extensive documentation](https://support.getgrist.com).
## 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 [docs.getgrist.com](https://docs.getgrist.com).
If you just want a quick demo of Grist:
* You can try Grist out at the hosted service run
by Grist Labs at [docs.getgrist.com](https://docs.getgrist.com)
(no registration needed).
* Or you can see an experimental fully in-browser build of Grist
at [gristlabs.github.io/grist-static](https://gristlabs.github.io/grist-static/).
* Or you can download Grist as a desktop app from [github.com/gristlabs/grist-electron](https://github.com/gristlabs/grist-electron).
To get Grist running on your computer with [Docker](https://www.docker.com/get-started), do:
To get `grist-core` running on your computer with [Docker](https://www.docker.com/get-started), do:
```sh
docker pull gristlabs/grist
@ -120,6 +149,7 @@ environment variable.
uses the native `sandbox-exec` command for sandboxing.
* On Linux with [gVisor's runsc](https://github.com/google/gvisor)
installed, `export GRIST_SANDBOX_FLAVOR=gvisor` is an option.
* On any OS including Windows, `export GRIST_SANDBOX_FLAVOR=pyodide` is available.
These sandboxing methods have been written for our own use at Grist Labs and
may need tweaking to work in your own environment - pull requests
@ -348,5 +378,3 @@ This repository, `grist-core`, is released under the [Apache License, Version
2.0](http://www.apache.org/licenses/LICENSE-2.0), which is an
"Document will be permanently deleted.":"Das Dokument wird endgültig gelöscht.",
"Documents stay in Trash for 30 days, after which they get deleted permanently.":"Dokumente bleiben 30 Tage lang im Papierkorb, danach werden sie endgültig gelöscht.",
"Edited {{at}}":"Bearbeitet {{at}}",
"Examples & Templates":"Beispiele und Vorlagen",
"Examples & Templates":"Beispiele & Vorlagen",
"Examples and Templates":"Beispiele und Vorlagen",
"Document will be permanently deleted.":"El documento será eliminado permanentemente.",
"Documents stay in Trash for 30 days, after which they get deleted permanently.":"Los documentos permanecen en la papelera durante 30 días, tras los cuales se eliminan definitivamente.",
"Create separate series for each value of the selected column.":"Creare serie separate per ciascun valore delle colonne selezionate.",
"Pick a column":"Scegli una colonna",
"Toggle chart aggregation":"Grafici aggregati",
"selected new group data columns":"Selezionato un nuovo gruppo di colonne dati",
"selected new group data columns":"Selezionato un nuovo gruppo-colonne dati",
"Each Y series is followed by a series for the length of error bars.":"Ciascuna serie Y è seguita da una serie per la lunghezza della barra di errore.",
"Each Y series is followed by two series, for top and bottom error bars.":"Ciascuna serie Y è seguita da due serie, per le barre di errore alta e bassa."
"Remove {{- tableId }} rules":"Usuń reguły {{- tableId }}",
"Remove {{- name }} user attribute":"Usuń atrybut użytkownika {{- name }}",
"Reset":"Reset",
"Rules for table ":"Zasady dotyczące tabeli ",
"Rules for table ":"Reguły dotyczące tabeli ",
"Save":"Zapisz",
"Saved":"Zapisano",
"Special Rules":"Reguły specjalne",
"Type a message...":"Wpisz wiadomość…",
"User Attributes":"Atrybuty użytkownika",
"View As":"Wyświetl jako",
"Seed rules":"Zasady bazowe",
"Seed rules":"Reguły początkowe",
"When adding table rules, automatically add a rule to grant OWNER full access.":"Automatycznie dodawaj regułę przyznającą właścicielowi pełen dostęp.",
"Permission to edit document structure":"Uprawnienie do edycji struktury dokumentu"
},
@ -99,11 +99,12 @@
"App":{
"Key":"Klucz",
"Memory Error":"Błąd pamięci",
"Description":"Opis"
"Description":"Opis",
"Translators: please translate this only when your language is ready to be offered to users":"[TRANSLATED]"
"Filter by this value":"Filtruj według tej wartości",
"Insert column to the left":"Wstaw kolumnę z lewej strony",
"Insert column to the right":"Wstaw kolumnę z prawej strony",
@ -135,12 +136,12 @@
"Create separate series for each value of the selected column.":"Utwórz osobne serie dla każdej wartości z wybranej kolumny.",
"Each Y series is followed by two series, for top and bottom error bars.":"Po każdej serii Y następują dwie serie, dla górnych i dolnych słupków błędów.",
"selected new group data columns":"wybrane nowe kolumny danych grupowych",
"Each Y series is followed by a series for the length of error bars.":"Po każdej serii Y następuje seria dla długości słupków błędów."
},
"CodeEditorPanel":{
"Access denied":"Odmowa dostępu",
"Access denied":"Brak dostępu",
"Code View is available only when you have full document access.":"Widok kodu jest dostępny tylko wtedy, gdy masz pełny dostęp do dokumentu."
},
"ColumnFilterMenu":{
@ -183,7 +184,7 @@
"DataTables":{
"Click to copy":"Kliknij, aby skopiować",
"Delete {{formattedTableName}} data, and remove it from all pages?":"Usunąć dane {{formattedTableName}}, i usunąć je ze wszystkich stron?",
"Duplicate Table":"Duplikat tabeli",
"Duplicate Table":"Zduplikuj całą tabele",
"Raw Data Tables":"Tabele danych surowych",
"Table ID copied to clipboard":"ID tabeli skopiowane do schowka",
"You do not have edit access to this document":"Nie masz dostępu do edycji tego dokumentu"
@ -263,7 +264,7 @@
"Get started by inviting your team and creating your first Grist document.":"Zacznij od zaproszenia swojego zespołu i stworzenia pierwszego dokumentu Grist.",
"Help Center":"Centrum pomocy",
"Import Document":"Importuj dokument",
"Get started by exploring templates, or creating your first Grist document.":"Zacznij od zapoznania się z szablonami lub stworzenia swojego pierwszego dokumentu Grist.",
"Get started by exploring templates, or creating your first Grist document.":"Zacznij od zapoznania się z gotowymi szablonami lub stwórz swój pierwszego dokument Grist.",
"{{signUp}} to save your work. ":"{{signUp}}, aby zapisać swoją pracę. ",
"Welcome to {{orgName}}":"Witamy w {{orgName}}",
"Interested in using Grist outside of your team? Visit your free ":"Chcesz używać Grist poza swoim zespołem? Odwiedź swój darmowy ",
@ -285,14 +286,14 @@
"Currency:":"Waluta:",
"Document Settings":"Ustawienia dokumentu",
"Engine (experimental {{span}} change at own risk):":"Silnik (eksperymentalny {{span}} zmiana na własne ryzyko):",
"Locale:":"Ustawienia regionalne",
"Locale:":"Ustawienia regionalne:",
"Save":"Zapisz",
"Save and Reload":"Zapisz i ponownie załaduj",
"This document's ID (for API use):":"Identyfikator tego dokumentu (na potrzeby API):",
"Time Zone:":"Strefa czasowa:",
"API":"API",
"Document ID copied to clipboard":"Identyfikator dokumentu skopiowany do schowka",
"Copy all data in addition to the table structure.":"Skopiuj wszystkie dane oprócz struktury tabeli.",
"Instead of duplicating tables, it's usually better to segment data using linked views. {{link}}":"Zamiast duplikować tabele, zwykle lepiej jest segmentować dane za pomocą połączonych widoków. {{link}}",
"Name for new table":"Nazwa dla nowej tabeli",
"Only the document default access rules will apply to the copy.":"Do kopii będą miały zastosowanie tylko domyślne zasady dostępu do dokumentu."
"Instead of duplicating tables, it's usually better to segment data using linked views. {{link}}":"Zamiast duplikować tabele, zwykle lepiej jest utworzyć klika połączonych ze sobą widoków. {{link}}",
"Name for new table":"Nowa nazwa tabeli",
"Only the document default access rules will apply to the copy.":"Kopia dokumentu będzie używać tylko domyślnych reguł dostępu."
"Edit without affecting the original":"Edycja bez wpływu na oryginał",
"Duplicate Document":"Duplikat dokumentu",
"Duplicate Document":"Zduplikuj dokument",
"Show in folder":"Pokaż w folderze",
"Unsaved":"Niezapisane",
"Access Details":"Szczegóły dostępu",
@ -561,7 +562,7 @@
"Manage Users":"Zarządzanie użytkownikami"
},
"SiteSwitcher":{
"Switch Sites":"Przełączanie witryn",
"Switch Sites":"Przełącz witrynę",
"Create new team site":"Utwórz nową witrynę zespołu"
},
"SortConfig":{
@ -575,7 +576,7 @@
"Tools":{
"Document History":"Historia dokumentu",
"Return to viewing as yourself":"Powrót do oglądania jako Ty",
"Access Rules":"Zasady dostępu",
"Access Rules":"Reguły dostępu",
"Code View":"Widok kodu",
"Delete":"Usuń",
"Delete document tour?":"Usunąć wycieczkę po dokumencie?",
@ -630,11 +631,11 @@
"Big tables may be marked as \"on-demand\" to avoid loading them into the data engine.":"Duże tabele mogą być oznaczone jako \"na żądanie\", aby uniknąć ładowania ich do silnika danych."
"Advanced Sort & Filter":"Zaawansowane sortowanie i filtrowanie"
},
"ViewSectionMenu":{
@ -699,10 +700,10 @@
},
"duplicatePage":{
"Note that this does not copy data, but creates another view of the same data.":"Zauważ, że to nie kopiuje danych, ale tworzy inny widok tych samych danych.",
"Duplicate page {{pageName}}":"Duplikat strony {{pageName}}"
"Duplicate page {{pageName}}":"Utwórz kopię stronę {{pageName}}"
"Page not found{{suffix}}":"Nie znaleziono strony{{suffix}}",
"Sign in again":"Zaloguj się ponownie",
@ -717,7 +718,7 @@
"Add account":"Dodaj konto",
"Contact support":"Skontaktuj się z pomocą techniczną",
"Sign in to access this organization's documents.":"Zaloguj się, aby uzyskać dostęp do dokumentów tej organizacji.",
"The requested page could not be found.{{separator}}Please check the URL and try again.":"Nie można odnaleźć żądanej strony. {{separator}} Sprawdź adres URL i spróbuj ponownie.",
"The requested page could not be found.{{separator}}Please check the URL and try again.":"Nie można odnaleźć strony. {{separator}} Sprawdź adres URL i spróbuj ponownie.",
"You are signed in as {{email}}. You can sign in with a different account, or ask an administrator for access.":"Jesteś zalogowany jako {{email}}. Możesz zalogować się na inne konto lub poprosić administratora o dostęp."
},
"menus":{
@ -744,7 +745,7 @@
},
"pages":{
"You do not have edit access to this document":"Nie masz dostępu do edycji tego dokumentu",
"Duplicate Page":"Duplikat strony",
"Duplicate Page":"Utwórz kopię strony",
"Remove":"Usuń",
"Rename":"Zmień nazwę"
},
@ -836,13 +837,13 @@
"It should be impossible to save a plain data value into a formula column":"Zapisanie zwykłej wartości danych w kolumnie formuły powinno być niemożliwe"
"Use the 𝚺 icon to create summary (or pivot) tables, for totals or subtotals.":"Użyj ikony Σ, aby utworzyć tabele podsumowujące (lub przestawne) dla sum lub sum częściowych.",
"Use the \\u{1D6BA} icon to create summary (or pivot) tables, for totals or subtotals.":"Użyj ikony \\u{1D6BA}, aby utworzyć tabele podsumowujące (przestawne) dla sum lub sum częściowych.",
"relational":"relacyjny",
"Access Rules":"Zasady dostępu",
"Access Rules":"Reguły dostępu",
"Access rules give you the power to create nuanced rules to determine who can see or edit which parts of your document.":"Reguły dostępu umożliwiają tworzenie reguł szczegółowych w celu określenia, kto może wyświetlać lub edytować poszczególne części dokumentu.",
"Document will be permanently deleted.":"O documento será permanentemente excluído.",
"Documents stay in Trash for 30 days, after which they get deleted permanently.":"Os documentos ficam na Lixeira por 30 dias, após os quais são excluídos permanentemente.",
"Cannot drop items into Hidden Fields":"Неможливо перенести елементи у приховані поля",
"Hidden Fields cannot be reordered":"Приховані поля не можна перевпорядкувати",
"Select All":"Виділити всі"
"Select All":"Виділити всі",
"Show {{label}}":"Показати {{label}}",
"Visible {{label}}":"Видимі {{label}}",
"Hide {{label}}":"Приховати {{label}}",
"Hidden {{label}}":"Приховані {{label}}"
},
"TriggerFormulas":{
"Apply to new records":"Застосувати до нових записів",
@ -223,7 +227,7 @@
},
"ChartView":{
"Pick a column":"Виберіть стовпець",
"selected new group data columns":"вибрані стовпці даних нової групи",
"selected new group data columns":"вибрана нова група стовпців даних",
"Create separate series for each value of the selected column.":"Створіть окремі серії для кожного значення вибраного стовпця.",
"Toggle chart aggregation":"Перемикання створення діаграм",
"Each Y series is followed by a series for the length of error bars.":"За кожною серією Y слідує серія для довжини стовпців помилок.",
@ -292,7 +296,7 @@
"Permission to view Access Rules":"Дозвіл на перегляд правил доступу",
"Rules for table ":"Правила для таблиці ",
"Save":"Зберегти",
"Lookup Table":"Таблиця пошуку",
"Lookup Table":"Пошукова таблиця",
"Lookup Column":"Стовпець пошуку",
"Saved":"Збережено",
"Special Rules":"Особливі правила",
@ -306,7 +310,7 @@
"Remove column {{- colId }} from {{- tableId }} rules":"Видалити стовпець {{- colId }} з правил {{- tableId }}",
"When adding table rules, automatically add a rule to grant OWNER full access.":"При додаванні правил таблиці, автоматично додавати правило для надання ВЛАСНИКУ повного доступу.",
"Seed rules":"Успадковані правила",
"Allow everyone to copy the entire document, or view it in full in fiddle mode.\nUseful for examples and templates, but not for sensitive data.":"Дозволити всім копіювати весь документ або переглянути його повністю в fiddle-режимі (режимі створення нових копій).\nКорисно для прикладів і шаблонів, але не для конфіденційних даних."
"Allow everyone to copy the entire document, or view it in full in fiddle mode.\nUseful for examples and templates, but not for sensitive data.":"Дозволити кожному скопіювати весь документ або переглянути його повністю в режимі створення нових копій.\nКорисно для прикладів і шаблонів, але не для конфіденційних даних."
},
"AccountPage":{
"API":"API",
@ -366,7 +370,8 @@
"App":{
"Description":"Опис",
"Key":"Ключ",
"Memory Error":"Помилка памʼяті"
"Memory Error":"Помилка памʼяті",
"Translators: please translate this only when your language is ready to be offered to users":"Перекладачі: будь ласка, перекладайте це тільки тоді, коли ваша мова буде готова для користувачів"
},
"AppHeader":{
"Home Page":"Домашня сторінка",
@ -481,7 +486,7 @@
"This document's ID (for API use):":"Ідентифікатор цього документа (для використання API):",
"API":"API",
"Document ID copied to clipboard":"Ідентифікатор документа скопійований у буфер",
"Ok":"Ок",
"Ok":"ОК",
"Engine (experimental {{span}} change at own risk):":"Обчислювальна система (експериментальна версія {{span}} змінюйте на власний ризик):"
},
"DocTour":{
@ -685,7 +690,9 @@
"Open configuration":"Відкрита конфігурація",
"Print widget":"Роздрукувати віджет",
"Show raw data":"Показати вихідні дані",
"Widget options":"Параметри віджету"
"Widget options":"Параметри віджету",
"Add to page":"Додати на сторінку",
"Collapse widget":"Згорнути віджет"
},
"AppModel":{
"This team site is suspended. Documents can be read, but not modified.":"Цей сайт команди обмежений. Документи можна читати, але редагування не доступне."
@ -741,17 +748,29 @@
"You are now signed out.":"Ви вийшли з облікового запису.",
"You do not have access to this organization's documents.":"У вас немає доступу до документів цієї організації.",
"Sign in to access this organization's documents.":"Увійдіть, щоб отримати доступ до документів цієї організації.",
"The requested page could not be found.{{separator}}Please check the URL and try again.":"Потрібну сторінку не знайдено.{{separator}}Перевірте URL-адресу та повторіть ще раз.",
"The requested page could not be found.{{separator}}Please check the URL and try again.":"Не вдалося знайти запитувану сторінку.{{separator}}Будь ласка, перевірте URL-адресу і спробуйте ще раз.",
"You are signed in as {{email}}. You can sign in with a different account, or ask an administrator for access.":"Ви увійшли як {{email}}. Ви можете увійти під іншим обліковим записом або попросити доступ у адміністратора."
},
"menus":{
"* Workspaces are available on team plans. ":"* Робочі простори доступні в командних тарифах. ",
"Select fields":"Виберіть поля",
"Upgrade now":"Оновити зараз"
"Upgrade now":"Оновити зараз",
"Any":"Будь-які",
"Numeric":"Числа",
"Text":"Текст",
"Integer":"Цілі числа",
"Toggle":"Перемикач",
"Date":"Дата",
"Choice":"Вибір",
"Choice List":"Список вибору",
"Reference":"Посилання",
"DateTime":"Дата і час",
"Reference List":"Список посилань",
"Attachment":"Вкладення"
},
"modals":{
"Cancel":"Відмінити",
"Ok":"Ок",
"Ok":"ОК",
"Save":"Зберегти"
},
"pages":{
@ -857,7 +876,7 @@
"Errors in {{numErrors}} of {{numCells}} cells":"Помилки в {{numErrors}} в {{numCells}} клітинках"
},
"HyperLinkEditor":{
"[link label] url":"[link label] url"
"[link label] url":"[мітка посилання] URL"
},
"NumericTextBox":{
"Currency":"Валюта",
@ -941,5 +960,8 @@
"You can filter by more than one column.":"Ви можете фільтрувати за кількома стовпцями.",
"Try out changes in a copy, then decide whether to replace the original with your edits.":"Спробуйте змінити копію, а потім вирішіть, чи слід замінювати оригінал своїми правками.",
"Access rules give you the power to create nuanced rules to determine who can see or edit which parts of your document.":"Правила доступу дають вам можливість створювати детальні правила, щоб визначити, хто може бачити або редагувати (та які) частини вашого документа."