Lay your pages out of widgets.
Gridmason is an open-source widget platform: a framework-agnostic page-view engine, a self-hostable federated registry with a signed supply chain, and a product-neutral dashboard.
npm install @gridmason/core @gridmason/sdk
User-arrangeable pages, built from widgets you can trust.
Gridmason lets a web app offer widgetized, user-arrangeable pages — and lets third parties ship widgets through a registry whose supply chain is content-hashed, signed, reviewed, and revocable. Three parts, one contract between them.
A page-view engine
A framework-agnostic gridstack canvas with typed page contexts and three-level layout governance. It mounts custom elements you register — React, Vue, or vanilla — and loads nothing on its own.
A signed registry
A self-hostable federated registry: content-hashed remotes, a review pipeline, dual-signature envelopes with a transparency log, and a signed revocation feed. Run the flagship instance, or your own.
A product-neutral dashboard
A genuinely deployable dashboard app over the engine and a registry — at once the end-to-end proof the platform works, the OSS showcase, and the target widget authors develop against.
Six repositories, one release contract.
Each repo is one deployable unit and publishes on its own cadence. Everything pins @gridmason/protocol; change the contract, bump the version, dependents follow.
@gridmason/protocol
0.4.xContract types (manifest, page contexts, LayoutDoc), the signature / log / revocation / trust-root wire formats, and the isomorphic verification library everything else depends on.
npm install @gridmason/protocol@gridmason/core
0.5.xThe engine: a gridstack canvas plus a headless layout core. Register widget types, declare a page type, resolve a layout through the governance model, and mount it.
npm install @gridmason/core@gridmason/sdk
0.4.xTwo sides of one boundary: the capability-enforcing HostSDK a host implements, and the widget-side helpers authors import — for React, Vue, and vanilla — plus a host conformance kit.
npm install @gridmason/sdk@gridmason/cli
0.5.1The gridmason binary — the author devkit and publish path. One tool spans scaffold → develop → lint → publish, running the exact checks a registry review runs, locally.
npm install -g @gridmason/cliregistry
self-hostThe registry service itself — a signed, content-hashed publish pipeline with a human review lane, countersigned approvals, a transparency log, and a revocation feed. Stand up your own instance.
docker compose up # compose.yamldashboard
appThe deployable reference dashboard — React + Vite over core and a registry. Publishes nothing to npm; ships as a container image and a static bundle. Clone it, run it, make it yours.
git clone gridmason/dashboard && npm iPick the loop you're here for.
Four entry points, four repos. Each links to that repo's full getting-started guide.
Put widgets on a page
Register widget types, declare a page type, resolve a layout, and mount core's canvas inside your own app.
npm i @gridmason/core @gridmason/sdkScaffold, dev, lint, publish
The gridmason CLI takes a widget from empty folder to a signed, review-ready artifact — same checks locally as in review.
gridmason widget init "Sales Chart" --publisher acmeRun your own supply chain
Stand up the registry service with Docker Compose and follow the self-host quickstart to configure signing, storage, and review.
docker compose up # then see docs/self-host/install.mdSee the whole thing work
Clone the reference dashboard, install, and boot the Vite dev server — every route mounts the same generic canvas host over demo page types.
npm install && npm run dev # localhost:5173Integrate Gridmason with React
From an empty Vite app to a live drag-to-arrange dashboard — every file verified end to end.
The dashboard, running in your browser.
A static build of the product-neutral dashboard — the four demo page types mounted over core's canvas, no install required.
Read a real widget, then write yours.
The dashboard's first-party demo widgets are documentation you can run. Each is a framework-agnostic custom element — a small, honest example of the widget ABI and the SDK surface.
Clock
The simplest ABI shape: static props, no context, no SDK. Reads its options from settings and ticks.
Chart
A schema-validated, settings-driven chart — geometry math kept pure and unit-tested.
Markdown
Renders author markdown safely to the same document — a note widget with a tested renderer.
Record summary
The context-aware case: reads the record the page is scoped to through the SDK and renders it.
All demo widgets: gridmason/dashboard/src/widgets