Build the site. Let clients run it.

Define your content schema in TypeScript. Deploy once. Your clients get a beautiful dashboard to edit text, images, and collections — without calling you.

5 minSDK Setup
0Change Requests
$0Client Overhead

Free forever on your first site. See all plans →

// vard.config.ts
import { vard, v } from "@vard-app/sdk"

export default vard({
  hero: {
    title: v.string("Welcome"),
    photo:  v.image(),
  },
  team: v.collection({
    name:  v.string(),
    role:  v.string(),
    photo: v.image(),
  }),
})
→ client sees
vard.app / dashboard

Content

hero
team

hero

title
Welcome
photo
Click to upload

team

Alice Chen · Lead Engineer
Marcus Lee · Designer
2 changes pending
Publish

How it works.

From schema to deployed site in three steps.

01

Define your schema

Use @vard-app/sdk to declare exactly what clients can edit — strings, images, collections — in TypeScript.

export default vard({
  hero: { title: v.string() },
  team: v.collection({
    name: v.string(),
    photo: v.image(),
  }),
});
02

Deploy your site

Build and ship your static site as normal. Vard automatically provisions the client dashboard.

$ npm run build
✓ Vard dashboard provisioned
03

Clients take over

Clients edit content on their dashboard. No developer needed, no redeploy, no back-and-forth.

The Mapper

Your schema. Every page.

Define a field once in TypeScript. It flows to your client's dashboard — and out to every page on their site that uses it. Hover any line to trace where it lands.

vard.config.ts
vard({
hero: {
title: v.string(),
tagline: v.string(),
},
team: v.collection({
name: v.string(),
photo: v.image(),
}),
})
vard.app / dashboard

hero

title
Welcome to our practice
tagline
Compassionate care for all

team

team
Alice Chen
Marcus Lee
name
Enter name...
photo
Click to upload
No pending changes
Publish
your-site.vercel.app
/
Home
/team
Our Team
/team/alice
Dr. Alice Chen
/blog/therapy-tips
Blog Post

One schema. Every page.

Define your content once — it flows wherever the site needs it.

How it ships

What every deployment includes.

Type-safe schema

Define content with TypeScript. Get autocomplete, runtime defaults, and a synchronized client dashboard — all from one schema.

Client dashboard

Every deployment automatically gets a polished editing interface. Clients change text, upload images, and manage collections without touching code.

Granular permissions

Owner, developer, member, or viewer. Control exactly who can change what — down to individual fields.

Free to start. No credit card required.

Stop fielding content change requests.

Join developers who have ditched one-off content edits by giving clients the tools to do it themselves.