[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"marketplace-app-en-grist":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"marketplace-app-en-grist",{"slug":9,"slugs":10,"categorySlugs":11,"name":16,"description":17,"phase":18,"unavailableReason":19,"docsUrl":20,"logo":21,"github":22,"tagline":23,"longDescription":24,"features":25,"useCases":32,"steps":45,"faq":61,"specs":77,"compatibleOs":87,"relatedApps":89,"relatedPosts":110,"category":114},"grist",{"fr":9,"en":9,"ar":9,"es":9},{"fr":12,"en":13,"ar":14,"es":15},"developpement","development","التطوير","desarrollo","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.",[26,27,28,29,30,31],"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.",[33,36,39,42],{"title":34,"body":35},"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":37,"body":38},"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":40,"body":41},"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":43,"body":44},"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.",[46,49,52,55,58],{"title":47,"body":48},"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":50,"body":51},"One-click deploy from the marketplace","Open your ServOrbit dashboard → Marketplace → Development → Grist → Deploy. The Node.js container starts within seconds.",{"title":53,"body":54},"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":56,"body":57},"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":59,"body":60},"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.",[62,65,68,71,74],{"q":63,"a":64},"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":66,"a":67},"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":69,"a":70},"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":72,"a":73},"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":75,"a":76},"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":78,"cpu":79,"disk":80,"stack":81,"port":86},"512 MB","1 vCPU","5 GB",[82,83,84,85],"Docker","Node.js","Python","SQLite","8484",[88],"ubuntu-24.04",[90,98,104],{"name":91,"slug":92,"categorySlug":13,"categoryName":93,"categoryColor":94,"logo":95,"tagline":96,"description":97},"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":99,"slug":100,"categorySlug":13,"categoryName":93,"categoryColor":94,"logo":101,"tagline":102,"description":103},"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":105,"slug":106,"categorySlug":13,"categoryName":93,"categoryColor":94,"logo":107,"tagline":108,"description":109},"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.",[111,112,113],"self-host-grist-vps","deployer-laravel-vps","deployer-nodejs-app-vps",{"key":12,"slug":13,"name":93,"objective":115,"icon":116,"color":94},"Kick off a software project quickly.","dev",1793820423887]