[{"data":1,"prerenderedAt":113},["ShallowReactive",2],{"seo-verification":3,"marketplace-app-en-grist":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"slug":7,"slugs":8,"categorySlugs":9,"name":13,"description":14,"phase":15,"unavailableReason":16,"docsUrl":17,"logo":18,"github":19,"tagline":20,"longDescription":21,"features":22,"useCases":29,"steps":42,"faq":58,"specs":74,"compatibleOs":84,"relatedApps":85,"relatedPosts":106,"category":110},"grist",{"fr":7,"en":7,"ar":7},{"fr":10,"en":11,"ar":12},"developpement","development","التطوير","Grist","Self-hosted spreadsheet meets relational database: model data with table relations and Python formulas, manipulate it in a familiar spreadsheet UI — 11 k GitHub stars, Apache-2.0, built-in SQLite, under 512 MB RAM.",1,null,"https:\u002F\u002Fservorbit.com\u002Fblog\u002Fself-hosting-grist-on-a-vps-open-source-airtable-alternative","https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fselfhst\u002Ficons\u002Fsvg\u002Fgrist.svg","https:\u002F\u002Fgithub.com\u002Fgristlabs\u002Fgrist-core","Self-hosted Airtable alternative — relational database with a spreadsheet interface, Python formulas, REST API and real-time collaboration. One container, SQLite.","Grist (Apache-2.0, ~11.4 k GitHub stars, TypeScript) is the self-hosted evolution of spreadsheets: a relational database that looks and feels like a familiar grid. Unlike Google Sheets or Excel, Grist structures your data as proper tables with typed columns, relations between tables, reference columns and Python formulas that run server-side with full library access.\n\nDeployed on a ServOrbit VPS, Grist gives you a private Airtable alternative with zero subscription cost: create documents with linked tables, build custom views (grid, card, chart, calendar, custom widget), define access rules per row and column, and expose your data via a REST API without writing backend code. Documents are SQLite files stored in a named volume — backup is a file copy.\n\nGrist shines for structured data that outgrows a flat spreadsheet but doesn't justify a full SQL application: project tracking, inventory, budgets, CRM contacts, survey results, ETL pipelines. The document editor is collaborative in real time; users can be invited per document with granular view\u002Fedit roles.",[23,24,25,26,27,28],"Relational data model — define typed columns (text, numeric, date, reference, attachment), link tables with reference columns, and write multi-table formulas exactly like a spreadsheet.","Python formulas with full library access — write computed columns in Python with access to datetime, math, re, uuid and any pure-Python library; the sandbox runs server-side, not in the browser.","Custom views — build grid, card, chart, calendar and custom widget views from the same data; each view is independently configurable and filterable without touching the underlying table.","Per-row, per-column access rules — restrict who can read or write each row or column by user attribute; granular enough for multi-tenant documents on a single database.","REST API out of the box — every document exposes GET\u002FPOST\u002FPUT\u002FPATCH\u002FDELETE endpoints for every table automatically; integrate with n8n, Make or any HTTP client without backend code.","Real-time collaboration — multiple users edit the same document simultaneously; changes propagate in under a second with a full audit log of who changed what and when.",[30,33,36,39],{"title":31,"body":32},"CRM contacts with relational links","Model contacts, companies, deals and activities as linked tables. Reference columns let you filter contacts by account manager or pipeline stage without writing SQL. Build a card view for sales reps and a chart view for management — same data, different lenses.",{"title":34,"body":35},"Budget and expense tracker","Track expenses per project and category with formula columns for running totals, forecasts and variance against budget. Pull data into a dashboard via the REST API or export to CSV for your accountant — all from a single Grist document.",{"title":37,"body":38},"Inventory and order management","Model products, variants, stock levels and orders across linked tables. Add a formula column that flags items below reorder threshold and triggers an n8n workflow via webhook. The card view gives warehouse staff a mobile-friendly interface without a dedicated app.",{"title":40,"body":41},"Survey data processing pipeline","Import a CSV exported from Typeform or Google Forms, add computed label columns, filter respondents by segment, and export a cleaned dataset — all in a single Grist document with no code and no Python environment to set up.",[43,46,49,52,55],{"title":44,"body":45},"Order a ServOrbit VPS","1 GB RAM is sufficient for a personal or small-team Grist instance. Grist stores documents as SQLite files in the \u002Fpersist volume — no external database service required.",{"title":47,"body":48},"One-click deploy from the marketplace","Open your ServOrbit dashboard → Marketplace → Development → Grist → Deploy. The Node.js container starts within seconds.",{"title":50,"body":51},"Open Grist at https:\u002F\u002Fyour-domain.com, or through an SSH tunnel","The default admin email (admin@localhost.local) is pre-configured; Grist logs you in automatically on first access. No SMTP or email verification required for the initial single-user setup.",{"title":53,"body":54},"Create your first document","Click '+ Add document', choose a template or start from scratch, then define your table columns (text, numeric, date, reference…). You can also import an existing CSV, Excel or .grist file from the File menu.",{"title":56,"body":57},"Optional: invite collaborators and configure OAuth","Share a document via the Share menu to invite colleagues with viewer, editor or owner roles. For multi-user access with real email authentication, set the GRIST_OIDC_* environment variables to point to your Google Workspace, Authentik or Keycloak instance.",[59,62,65,68,71],{"q":60,"a":61},"Is Grist a spreadsheet or a database?","Both. Grist stores data in typed, relational tables (like a database) and exposes them in a spreadsheet-style grid (like Excel). You write Python formulas in cells, link tables with reference columns, and build multiple views on the same data — without writing SQL.",{"q":63,"a":64},"Does Grist require PostgreSQL or MySQL?","No. Documents are stored as SQLite files in the \u002Fpersist volume — one file per document. SQLite handles thousands of rows comfortably. For very large multi-user deployments, Grist also supports PostgreSQL for its home database, but the default single-container setup uses SQLite for everything.",{"q":66,"a":67},"Can multiple people edit the same Grist document at the same time?","Yes. Grist supports real-time collaborative editing: changes appear for all connected users in under a second, with a full audit log of who changed what and when. Access is controlled per document with viewer, editor and owner roles.",{"q":69,"a":70},"How do I expose my Grist data to another application?","Every Grist document exposes a REST API automatically at https:\u002F\u002Fyour-domain.com\u002Fapi\u002Fdocs\u002F\u003CdocId>\u002Ftables\u002F\u003CtableId>\u002Frecords. Calling it from another machine requires a domain attached to the VPS: Grist only listens on the loopback, so there is no public address without one. From the VPS itself the same API answers on http:\u002F\u002F127.0.0.1:8484\u002Fapi\u002Fdocs\u002F\u003CdocId>\u002Ftables\u002F\u003CtableId>\u002Frecords, using the port shown on your app's card in the ServOrbit client area (8484 is the catalogue default). You can list, create, update and delete rows with standard HTTP verbs — no backend code needed. Use it with n8n, Make, or any HTTP client.",{"q":72,"a":73},"How do I back up my Grist documents?","Grist documents are SQLite files in the \u002Fpersist\u002Fdocs\u002F directory. Copy them like any file or mount the volume to a Backrest job (also in the ServOrbit marketplace) for automated versioned backups to S3, Backblaze B2 or SFTP. Grist also keeps a built-in snapshot history per document accessible from the document menu.",{"ram":75,"cpu":76,"disk":77,"stack":78,"port":83},"512 MB","1 vCPU","5 GB",[79,80,81,82],"Docker","Node.js","Python","SQLite","8484",[],[86,94,100],{"name":87,"slug":88,"categorySlug":11,"categoryName":89,"categoryColor":90,"logo":91,"tagline":92,"description":93},"Laravel Stack","laravel-stack","Development","text-warning bg-warning\u002F10","https:\u002F\u002Fcdn.simpleicons.org\u002Flaravel","PHP-FPM, Nginx, PostgreSQL, Redis and Supervisor — a production-ready Laravel stack from the moment you order.","PHP-FPM, Nginx, PostgreSQL, Redis and Supervisor preconfigured. Deploy Laravel to production with no initial configuration.",{"name":95,"slug":96,"categorySlug":11,"categoryName":89,"categoryColor":90,"logo":97,"tagline":98,"description":99},"Node.js Stack","nodejs-stack","https:\u002F\u002Fcdn.simpleicons.org\u002Fnodedotjs","Node.js, PM2, Nginx and a database — a production environment for your JavaScript APIs and apps.","Node.js with PM2, an Nginx reverse proxy and a database. Your JavaScript APIs and applications ready to take traffic.",{"name":101,"slug":102,"categorySlug":11,"categoryName":89,"categoryColor":90,"logo":103,"tagline":104,"description":105},"Nuxt Stack","nuxt-stack","https:\u002F\u002Fcdn.simpleicons.org\u002Fnuxt","Nuxt 3 with SSR, PostgreSQL and a reverse proxy — a production environment for your Vue.js apps.","Nuxt 3 with SSR, PostgreSQL and a reverse proxy. A production environment for your Vue.js applications.",[107,108,109],"self-host-grist-vps","deployer-laravel-vps","deployer-nodejs-app-vps",{"key":10,"slug":11,"name":89,"objective":111,"icon":112,"color":90},"Kick off a software project quickly.","dev",1787581039201]