---
title: "Claude, build me a SanityPress website."
description: "SanityPress isn't just built for developers — it's built for agents. Meet /build-website, the skill that takes Claude from an empty project to a full site."
---

![Tony Stark working on the Iron Man suite (Claude version)](https://cdn.sanity.io/images/cyu7k2r0/production/4d0bdf01ecf78080d6598084e654112af241eae6-1672x941.png)

SanityPress was built for developers, but lately the one reaching for its modules and GROQ queries isn't always a person. It's an agent.

The new `/build-website` skill leans all the way into that: hand Claude a one-line brief and it builds a complete, multi-page site, brand and copy included, without touching a line of code. Install it with:

**Terminal**

```sh
npx skills add sanitypress/skills
```

To show what that actually looks like, I pointed it at an example business, **Pale Blue Travel**, and let it run. Every screenshot below is the real result.

## Prerequisites

This guide assumes you have a fresh new SanityPress repo ([follow these steps to create a new project](/getting-started)), with the following documents published in the Sanity Studio:

- the **Site** document
- a **Page** document with slug `index` (for the Homepage)
- the **Sanity MCP connector** connected to your project. This is how the agent reads your schema and writes content, all the way through to publishing.

![Studio backend on left, Next.js frontend on right](https://cdn.sanity.io/images/cyu7k2r0/production/b67f3e3a6ff8907d6b73ef828281ce3b5e75422a-3552x2558.png)
*An empty Studio backend on left, a blank Next.js frontend on right*

## The Prompt

With all that in place, kicking the whole thing off is a single message:

**Claude**

```sh
/build-website for my business called Pale Blue Travel
```

That's intentionally thin, and the skill is built for it. Instead of guessing (or filling the page with lorem ipsum), it interviews you first.

## It interviews you before it builds

Discovery is sequential, on purpose. The skill works through a short series of questions one at a time, letting each answer shape the next and confirming as it goes:

- **The business**: what it is, who it's for, and what makes it different.
- **Intent & the primary call-to-action**: the single action you most want a visitor to take, and where it should point.
- **Brand direction & tone**: it proposes a color palette and a heading/body font pairing for you to approve or adjust.
- **Pages & copy**: the full page list, plus the actual draft copy for each one, before a word gets written to Sanity.

Because it gathers real substance first, the copy ends up genuinely about your business, not placeholder filler. And when it hits something it can't know (a price, a real testimonial, a client name), it drops in a clearly-marked placeholder instead of inventing a fact.

Got only a name and a vague idea? It won't stall. For each step it infers a sensible default, shows it to you as a concrete proposal rather than an open-ended question, and moves on the moment you confirm or tweak it. The thinner your brief, the more it leads, but you're always the one approving the direction.

## No new code—just the modules you already have

Here's the part that matters for developers: `/build-website` never touches your codebase. It composes everything from the existing SanityPress module types: `hero.split`, `card-list`, `stat-list`, `accordion-list`, `callout`, and the rest. The same blocks you'd stack by hand. No schema changes, no new components.

Styling works the same way. It writes design into the three CSS layers SanityPress already gives you: global tokens and fonts (`--color-primary`, `--font-sans`, `--font-serif`), per-page styles, and per-module [Scoped CSS](/blog/scoped-css-per-module). The same layers you'd reach for, and the agent just fills them in.

From there it builds the pages as drafts, wires up navigation and the internal links between them, generates brand-matched placeholder imagery, and publishes, all through the Sanity MCP connector.

And because nothing about the result is special, your team isn't locked out of it. The pages, tokens, and scoped styles it writes are ordinary SanityPress content. Open them in the Studio, or pull them into the codebase, and keep building exactly as you would on any other project.

![create a JARVIS interface image like this with Tony Stark, but make the HUD orange and Claude-like, including the Claude logo](https://cdn.sanity.io/images/cyu7k2r0/production/5abdad4284b7ee63ad0bc5d6b99d2187fc0924ef-1448x1086.png)

## What Claude built

In under an hour, starting from an empty project, it delivered a complete brand (color tokens and Google fonts it picked itself), a multi-page site with working navigation, and copy written in the brand's voice, all for my fake business *Pale Blue Travel*.

And it's cheap: building this complete, image-rich site end-to-end with `/build-website` on Claude Opus 4.8 ran ~150K output tokens against a few million (mostly cache-read) input tokens, roughly $10 all in.

Check out the site it generated:

> [https://pale-blue-travel.vercel.app](https://pale-blue-travel.vercel.app)

![Pale Blue Travel website](https://cdn.sanity.io/images/cyu7k2r0/production/170d81d788f51a4a25d453fd2d2a01363dd80b04-3248x2118.png)

Not bad. The modules, the GROQ types, the CSS layers—they were always a clean interface for developers to build against. It turns out they're just as clean an interface for an agent. Same building blocks, same output you'd ship by hand; the only thing that changed is who's doing the assembling.

> **🚀 Ready to try SanityPress yourself?**
> Start with the [getting-started guide](/docs/getting-started) and run `/build-website`.
