Grida is a free, open source design & prototyping project written in TypeScript and released under Apache-2.0. It has 2,642 GitHub stars, 147 forks and 125 open issues, and was last pushed 13 hours ago. On this registry it ranks #5 of 5 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available. It gained 6 stars over the last 6 tracked days.

What is Grida?

Grida is an open-source canvas editor, SVG editor, and Supabase-backed Database/CMS and Forms toolkit written in TypeScript under the Apache-2.0 licence, aimed at designers and developers who want to design and build web apps on one open canvas instead of stitching together a design tool, an SVG editor, and a separate back end.

What it is

Grida is a canvas product built around the standalone gridaco/nothing 2D graphics engine, written in Rust on Skia and exposed to web and Node through the published @grida/canvas-wasm artifact. This repository consumes that engine and adds the editor surfaces around it: a canvas editor with an infinite canvas, a round-trip-faithful SVG editor, a Database/CMS, and Forms. Two renderer backends are supported — a DOM renderer bound to React for HTML/CSS website-builder workflows, and a Skia renderer compiled to WASM that runs on a WebGL2 surface in the browser and a raster surface in Node.js. Documents are stored as .grida files encoded with FlatBuffers against the format/grida.fbs schema, which is designed for large documents and schema evolution.

The concrete problem it solves is the split between proprietary design canvases and the code that has to build what they show. Grida imports Figma documents, either from offline .fig exports or from REST API JSON, through @grida/io-figma, and it replaces the manual re-export step those workflows usually require with @grida/refig, a headless renderer that turns a Figma document into PNG, JPEG, WebP, PDF, or SVG without a browser. The same engine backs the SVG editor, whose stated goal is a diff that shows exactly the one thing that changed, rather than a rewrite of surrounding markup. It lives in the TypeScript and npm ecosystem, and the Database/CMS and Forms surfaces are built to work against Supabase Tables, Views, Storage, and Auth.

Key capabilities

  • .grida document format on FlatBuffers, defined by format/grida.fbs for large documents and schema evolution.
  • Two renderer backends: a DOM renderer for HTML/CSS workflows and a Skia renderer via WASM using WebGL2 and raster.
  • Headless rendering in Node.js with no browser, for CI and export pipelines — pnpm dlx @grida/refig ./design.fig --export-all --out ./out.
  • Figma import from .fig exports or REST JSON, and export to PNG, JPEG, WebP, PDF, and SVG.
  • SVG editor published as @grida/svg-editor with a headless core and React bindings.
  • Canvas features including infinite canvas with pan and zoom, canvas-native rich text editing, time-bucketed undo/redo with preview, Markdown and HTML/CSS embeds, bitmap editor, vector network model for paths, holes, and compound shapes, and multi-page PDF export.
  • Database/CMS and Forms integration against Supabase Tables, Views, Storage, and Auth.

Who uses it and how

  • Teams running design export in CI, using the Node.js raster surface to render documents without launching a browser.
  • Website builders that need the React-bound DOM renderer so canvas output maps onto HTML and CSS.
  • Design teams that already hold Figma files and want offline .fig rendering, either through the @grida/refig CLI or the FigmaDocument and FigmaRenderer library API in Node.
  • Workflows where people and AI edit the same SVG files, which the SVG editor addresses with built-in AI chat and a round-trip-faithful save model.
  • Supabase-backed application teams adding a Database/CMS and Forms layer that speaks to their existing database, storage, and auth.

Getting started

The hosted canvas demo is at grida.co/canvas and the SVG editor at grida.co/svg. For local use, the headless path is the @grida/refig package run with pnpm dlx @grida/refig ./design.fig --export-all --out ./out, or imported as a library from @grida/refig; the SVG editor is installed from the npm package @grida/svg-editor.

How it compares

Grida is listed under the figma-alternative topic and imports Figma .fig exports and REST JSON, so it is positioned as an open canvas that works with Figma files rather than something that requires Figma to open them. Among the tools named in the project's own facts, its closest neighbours are Figma for the canvas itself and standalone SVG tooling for the SVG editor, with the Database/CMS, Forms, and Supabase integration being areas those tools do not cover.

When to use it — and when not to

A self-hoster adopting the Database/CMS and Forms parts must run Supabase for tables, views, storage, and auth, and anyone relying on headless export needs a Node.js environment plus the WASM Skia artifact. The component and instance model and the WebGPU backend are still unchecked on the project's own roadmap, and the Canvas SDK and @grida/svg-editor are documented as alpha, so teams needing a finished component system or WebGPU rendering should wait. The repository also carries a substantial open issue count, which is worth weighing before committing to it as a foundation.

project readme (upstream, from github) — read inline



Grida

Grida is an open-source canvas editor — powered by the nothing graphics engine (Rust + Skia + WASM) — plus an SVG editor, Database/CMS and Forms.

Canvas demoSVG editorRefigDownloadsWebsiteDocsContributingSlack Community




Why Grida

Grida is an open-source canvas editor built for performance and interoperability — with a stable on-disk document format. The 2D graphics engine that powers it lives in gridaco/nothing; this repo consumes it as the published @grida/canvas-wasm artifact.

  • Renderer backends: a DOM renderer for HTML/CSS workflows and a Skia renderer via WASM (WebGL2 + raster).
  • Headless rendering: render in Node.js (no browser) for CI/export pipelines.
  • Document format: .grida on FlatBuffers (format/grida.fbs) for large documents and schema evolution.
  • Interop: import from Figma (.fig / REST JSON) and work with SVG.
  • Supabase integration: Database/CMS and Forms are built to work seamlessly with Supabase (Tables, Views, Storage, Auth).

If Grida is useful, consider starring this repo — it helps a lot.



Demo




Canvas

Grida Canvas

Grida Canvas is a node/property-based 2D graphics engine and editor surface. The core engine (gridaco/nothing) is written in Rust (Skia) and is exposed to web/Node via @grida/canvas-wasm.

  • Infinite canvas + fast pan/zoom
  • .grida document format (FlatBuffers)
  • Render backends: DOM + Skia/WASM (WebGL2 + raster)
  • Import: Figma (@grida/io-figma), SVG
  • SVG tooling (@grida/svg)
  • Canvas-native rich text editing
  • History — time-bucketed undo/redo with preview
  • Markdown & HTML/CSS embeds (in-house Chromium-aligned renderer)
  • Multi-page PDF export
  • Bitmap editor (TP)
  • SVG editor — see SVG
  • Vector network model (paths, holes, compound shapes)
  • Headless rendering: @grida/refig (Node + browser)
  • Component / instance model
  • WebGPU backend (Skia Graphite)

Backends

  • DOM backend: React-bound renderer for website-builder workflows.
  • Skia backend (Rust + skia-safe@grida/canvas-wasm):
    • Browser: WebGL2 surface (interactive)
    • Node.js: raster surface (headless export)

Document format: .grida

Grida documents are stored as .grida files using FlatBuffers (format/grida.fbs). The schema is designed to be evolvable and efficient for large documents.

Docs: Canvas SDK (alpha)

Milestone tracker: Grida Canvas milestone

Headless Figma rendering (Refig)

@grida/refig renders Figma documents from .fig exports (offline) or REST API JSON to PNG/JPEG/WebP/PDF/SVG in Node.js (no browser) or in the browser.

CLI
pnpm dlx @grida/refig ./design.fig --export-all --out ./out
pnpm dlx @grida/refig ./design.fig --node "1:23" --format png --out ./out.png
Library (Node)
import { writeFileSync } from "node:fs";
import { FigmaDocument, FigmaRenderer } from "@grida/refig";

async function main() {
  const doc = FigmaDocument.fromFile("design.fig");
  const renderer = new FigmaRenderer(doc);

  const { data } = await renderer.render("1:23", { format: "png", scale: 2 });
  writeFileSync("out.png", data);

  renderer.dispose();
}

main();

Docs: @grida/refig




SVG

The clean SVG editor. Open an SVG, change one thing, save — and the diff shows exactly that. Nothing else moves. A round-trip-faithful editor and headless SDK, built for the era when people and AI edit the same files — AI chat built in.

  • Try it: grida.co/svg
  • SDK: @grida/svg-editor — headless core + React bindings (alpha), backed by @grida/svg for path data and trivia-preserving parsing
  • The file is the source of truth — byte-equal round trip when nothing changed; the editor leaves no fingerprints of its own

On the rendering side, Grida Canvas ships an in-house SVG renderer — Rust + Skia → WASM, a Chromium-shaped pipeline within the same engine (gridaco/nothing) that renders HTML/CSS (Stylo + Taffy + Skia), validated against Chromium-rendered oracles (resvg-test-suite corpus, WPT-style harness).




Database / CMS

Grida Database Editor

Demo

Grida Database Editor

  • Connect your Supabase Project (Tables, Views, Storage, Auth)
  • Readonly Views
  • Storage Connected Rich Text Editor
  • CMS Ready
  • Virtual Attributes - Computed & FK References
  • Export as CSV
  • Filter, Sort, Search (Locally and FTS)
  • Create a Form View (Admin UI)
  • View in Gallery View
  • View in List View
  • View in Charts View (β)
  • Joins & Relational Queries
  • API Access
  • Localization



Forms

Grida Forms

  • 30+ Inputs (file upload, signature, richtext, sms verification, etc)
  • Logic blocks & Computed Fields
  • Hidden fields & search param seeding
  • Powerful Builder & Beautiful Themes
  • Custom CSS
  • Realtime Sync & Partial Submissions
  • Grida Database Integration
  • Supabase Table Integration
  • Inventory Management (for tickets)
  • Simulator
  • Headless Usage - API-only usage
  • 12 Supported Languages
  • Client SDK - BYO (Bring your own) Component
  • Localization
  • Custom Auth Gate
  • Accept Payments



Quickstart (monorepo)

Requirements: Node.js 24+, pnpm 11+

pnpm install
pnpm dev

Common tasks:

pnpm dev:editor
pnpm dev:packages
pnpm typecheck
pnpm lint
pnpm test



Packages

Published packages you can use independently:

Package Description Demo
@grida/canvas-wasm Grida Canvas rendering engine (Rust + Skia) as WASM — WebGL2 in the browser, headless raster in Node.js. Source: gridaco/nothing
@grida/refig Headless Figma renderer — render .fig / REST JSON to PNG/JPEG/WebP/PDF/SVG, with CLI demo · docs
@grida/svg-editor Headless, round-trip-faithful SVG editor SDK with React bindings (alpha) demo
@grida/svg SVG tooling — path data, attribute parsing, trivia-preserving rou

readme truncated — read the full docs on github

Frequently asked questions

Is Grida free to use?

Grida is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Grida do?

Open canvas for designing and building web apps

What is Grida written in?

Grida is primarily written in TypeScript. Its source is publicly available at https://github.com/gridaco/grida, and it has 2,642 GitHub stars.