Studio

Where a design-system team brings its tokens, decides what generated screens may look like, authors screens of its own, and delivers them to products. Hosted at studio.polyxd.com, or run on your own Cloudflare account.

Studio is the team's side of Polyxd: open source (Apache-2.0, in apps/studio), running on Cloudflare Workers with D1 and R2, and the same code whether you use the hosted one or your own.

Your design system#

Direction#

Screens#

Where designers author a product's surfaces, in the same format a generator writes:

A shell document can be authored the same way, with the Outlet shown as a placeholder.

Delivering a screen to a product#

A published screen is fetched by key, with an API key from Team → API keys (keys can import tokens and read design systems and screens, nothing else):

curl -H "Authorization: Bearer $POLYXD_STUDIO_KEY" \
  https://studio.polyxd.com/api/w/<workspace>/screens/<key>

It returns the document with surface.origin: "authored" and an X-Polyxd-Screen-Version header. Render it with PolyxdSurface (or PolyxdFrame for a shell) exactly like a generated one.

Team#

Workspaces, invites with roles (design-system, designer, product, engineer, viewer), sign-in through better-auth (email and password with verification, Google when configured), API keys.

Run it yourself#

git clone https://github.com/visualfart/polyxd && cd polyxd && npm install
npm run db:migrate -w @polyxd/studio      # local D1
npm run dev -w @polyxd/studio             # http://localhost:8789

For production: a D1 database, an R2 bucket, SECRETS_KEY and AUTH_SECRET secrets, RESEND_API_KEY for email, and npm run deploy -w @polyxd/studio. The README in apps/studio has the exact steps.

Polyxd is an early preview. Found something unclear? It will get better with your feedback.