Technology · for developers and agencies
Websites as typed code. A CMS derived from it.
Your agent writes the site in TypeScript on @unrigid/sdk. unrigid type-checks every build, refuses unsafe code, keeps every version, and gives your editors a CMS built from the content types the site declares. Publishing waits for a person.
- TypeScript only
- One isolated runtime and database per site
- Nothing publishes without approval
[ 01 / 08 ]
From prompt to published.
Every change takes the same path. The agent can call tools; only the build decides what is valid, and only a person decides what goes live.
- 01agentClaude calls unrigid's tools over MCP, as the person who connected it, within their role on the site.
- 02buildType-checks the site and runs the build rules. Any finding stops the build.
- 03versionA passing build becomes a version with its own preview URL.
- 04approvalIn ask mode an owner or editor approves the publish.
- 05edgeThe version is served from a global edge network.
- 06siteEach site runs in its own runtime with its own database.
[ 02 / 08 ]
The SDK: declare, render, check, publish.
Sites import only @unrigid/sdk, hono, hono/jsx, zod and their own files. The site exports defineSite({...}); the builder writes the entry point.
export const Dish = contentType("Dish", {
name: f.text({ label: "Dish", required: true }),
price: f.number({ label: "Price" }),
veg: f.boolean({ label: "Vegetarian" }),
photo: f.image({ label: "Photo" }),
});One declaration gives the TypeScript type, save-time validation and the CMS form.
export const Menu = page(async ({ content }) => {
const dishes = await content.list<DishItem>("dishes", {
orderBy: { field: "order" },
});
return <Layout>{dishes.items.map((d) => <Row dish={d.data} />)}</Layout>;
});Pages are Hono JSX, rendered on the server. Rich text renders only through <RichText html={…} />.
$ preview
type-check ok
build rules ok
version v1793777925142-f4pvqx
preview https://…--your-site.unrigid.inA build with findings creates no version and no preview.
$ publish v1793777925142-f4pvqx
mode ask
approval waiting for an owner
content drafts saved for this version go live with itContent written for new code goes live in the same publish.
[ 03 / 08 ]
Content types become the CMS.
Your agent writes the left. Your editors get the right: typed fields, drafts, scheduled publishing, history, and an undo strip on every change the agent made.
export const Dish = contentType("Dish", {
name: f.text({ label: "Dish", required: true }),
price: f.number({ label: "Price" }),
veg: f.boolean({ label: "Vegetarian" }),
section: f.text({ label: "Menu section" }),
photo: f.image({ label: "Photo" }),
});- Dishf.text · required
- Pricef.number
- Vegetarianf.boolean
- Menu sectionf.text
- Photof.image
- Dish
- Price
- Vegetarian
- Menu section
- Photo
Claude changed: price · Undo
- Collections for many items, globals for one (a page's words, the header menu).
- Fields nest without limit: objects, lists of objects, references.
- Drafts show on previews only; content written for new code goes live with that code.
- Owner, editor and viewer roles on each site; sharing is per site.
[ 04 / 08 ]
What the build refuses.
Unsafe code is a build error, not a warning. The preview isn't created, so it can never be published.
[ 05 / 08 ]
Isolation and data.
Each site is its own unit: code, runtime, database and media. Nothing is shared between sites except the platform that serves them.
runtime per site
Isolated runtime
Each site runs as its own script with its own bindings. One site can't reach another's data.
database per site
Own database
Each site has its own database, placed in the region chosen when the site is created.
forms · retention you set
Forms with spam checks
Visitors submit to the platform, never to site code: validated, spam-checked, stored, and emailed to approved recipients.
no-analytics-code
Consent before analytics
No analytics code in sites. When an owner turns analytics on, the platform adds it behind a consent banner.
certificates managed
Custom domains and HTTPS
Every site has an unrigid.in address; owners connect up to five domains with one DNS record each.
owner · editor · viewer
Roles and per-site sharing
Access is per site: owner, editor or viewer. Transfers wait for the receiving owner to accept.
[ 06 / 08 ]
Every build is a version. Publishing waits for a person.
The agent works within the role of the person who connected it. What it may do on its own is the site's publishing mode, set by an owner.
Ask
The person describes the change to their agent.
Build and check
Type-check and build rules; findings stop here.
Preview
A versioned preview URL, with draft content.
Approve
An owner or editor approves, in Claude or in the app.
Publish
The version and its drafts go live together.
Roll back
Any earlier version, in one step.
- Ask
- Every publish waits for a person's approval. The default.
- Autonomous
- Publishes go live within the site's rules.
- Drafts only
- Save and preview; never publish.
[ 07 / 08 ]
Connect your agent.
unrigid is an MCP server. Add it once; the agent signs in as you, to the account you choose. Claude connects today; Cursor and Codex connectors are coming, and we won't list them as available until they are.
- Available nowClaude
- Coming soonCursor
- Coming soonCodex
Add the connector
In Claude: Settings → Connectors → Add custom connector.
https://mcp.unrigid.ai/mcpSign in
Enter your email and the 6-digit code; choose the account.
Or from a terminal
In Claude Code:
claude mcp add --transport http unrigid https://mcp.unrigid.ai/mcp
Prompts to try
- Start a site from the restaurant starter and make it a bakery.
- Add a page for cake orders with a form that asks for the date.
- Make the menu's prices editable in the CMS.
- Show me the preview, then ask me to publish.
[ 08 / 08 ]
Open-source starters.
Every starter is a complete unrigid site, Apache-2.0 on GitHub: read the code, then start from it.
adoistic/construction
Construction and contractor
src/site.tsx · src/content.ts · Apache-2.0
Repository: Construction and contractor (opens in a new tab)Live: Construction and contractor (opens in a new tab)
adoistic/school
School and preschool
src/site.tsx · src/content.ts · Apache-2.0
Repository: School and preschool (opens in a new tab)Live: School and preschool (opens in a new tab)
adoistic/ngo
NGO and charitable trust
src/site.tsx · src/content.ts · Apache-2.0
Repository: NGO and charitable trust (opens in a new tab)Live: NGO and charitable trust (opens in a new tab)
adoistic/real-estate
Property agent and broker
src/site.tsx · src/content.ts · Apache-2.0
Repository: Property agent and broker (opens in a new tab)Live: Property agent and broker (opens in a new tab)
adoistic/holding-company
Business group and holding company
src/site.tsx · src/content.ts · Apache-2.0
Repository: Business group and holding company (opens in a new tab)Live: Business group and holding company (opens in a new tab)
adoistic/electrician-plumber
Electrician and plumber
src/site.tsx · src/content.ts · Apache-2.0
Repository: Electrician and plumber (opens in a new tab)Live: Electrician and plumber (opens in a new tab)
adoistic/restaurant
Restaurant and café
src/site.tsx · src/content.ts · Apache-2.0
Repository: Restaurant and café (opens in a new tab)Live: Restaurant and café (opens in a new tab)
adoistic/salon-spa
Salon and spa
src/site.tsx · src/content.ts · Apache-2.0
Repository: Salon and spa (opens in a new tab)Live: Salon and spa (opens in a new tab)
adoistic/clinic
Clinic and dental practice
src/site.tsx · src/content.ts · Apache-2.0
Repository: Clinic and dental practice (opens in a new tab)Live: Clinic and dental practice (opens in a new tab)
adoistic/ac-service
AC and appliance service
src/site.tsx · src/content.ts · Apache-2.0
Repository: AC and appliance service (opens in a new tab)Live: AC and appliance service (opens in a new tab)
adoistic/packers-movers
Packers and movers
src/site.tsx · src/content.ts · Apache-2.0
Repository: Packers and movers (opens in a new tab)Live: Packers and movers (opens in a new tab)
adoistic/tuition
Tuition and coaching centre
src/site.tsx · src/content.ts · Apache-2.0
Repository: Tuition and coaching centre (opens in a new tab)Live: Tuition and coaching centre (opens in a new tab)
adoistic/university
University and college
src/site.tsx · src/content.ts · Apache-2.0
Repository: University and college (opens in a new tab)Live: University and college (opens in a new tab)
adoistic/professional-firm
Chartered accountant or law firm
src/site.tsx · src/content.ts · Apache-2.0
Repository: Chartered accountant or law firm (opens in a new tab)Live: Chartered accountant or law firm (opens in a new tab)
adoistic/manufacturer
Manufacturer and industrial supplier
src/site.tsx · src/content.ts · Apache-2.0
Repository: Manufacturer and industrial supplier (opens in a new tab)Live: Manufacturer and industrial supplier (opens in a new tab)
adoistic/saas
SaaS product
src/site.tsx · src/content.ts · Apache-2.0
Repository: SaaS product (opens in a new tab)Live: SaaS product (opens in a new tab)
adoistic/deeptech
Deep-tech company
src/site.tsx · src/content.ts · Apache-2.0
Repository: Deep-tech company (opens in a new tab)Live: Deep-tech company (opens in a new tab)
Point your agent at unrigid.
Building sites for clients? Per-site sharing, roles and transfers are built in. Talk to us.
Connect ClaudeOpen the app (opens in a new tab)
Connector https://mcp.unrigid.ai/mcp