Presso
a skill for claude code

From a prompt to a deployed site you own.

Install one skill. Claude Code becomes a website team: gated stages you review, every decision written to your repo.

View the source →
$ npx skills add presso/presso --skill website-builder
docs/ · the system of record
docs/discovery.md # the product truth
docs/voice.md # how the brand sounds
docs/website/brief.md # the plan for this site
docs/website/design.md # colors and fonts, named
docs/decisions/ # why, append-only

this page was built from these files.

01
discovery
02
brief
03
design
04
voice
05
build
06
qa
07 · gate
deploy

You need a proper site. Every other option makes you give something up.

cost: quality
raw AI prompting

Generic-looking pages, and the intent evaporates the moment the chat ends. The next change starts from zero.

cost: ownership
site builders

Wix, Squarespace, Framer: a templated look, and they own your stack. You build on rented ground.

cost: time + money
agencies

Agency-grade work, agency-grade bill: thousands of dollars and weeks of calendar time.

A pipeline with gates, not a one-shot generation.

Strategy before design. Design before code. QA before deploy, and you approve every deploy yourself. Each stage reads what came before and writes one file your repo keeps.

  1. 01 discovery

    truth about the product and who it’s for

    writes: docs/discovery.md

  2. 02 brief

    the plan for this site: pages, value, the one action

    writes: docs/website/brief.md

  3. 03 design

    every color and font, named. You pick the direction.

    writes: docs/website/design.md

  4. 04 voice

    how the brand sounds, everywhere

    writes: docs/voice.md

  5. 05 build

    mobile-first, built against the specs above

    writes: an Astro + Tailwind site in your repo

  6. 06 qa

    bugs and spec compliance. Nothing ships until it’s clean.

    writes: a gate, not a file

  7. 07 deploy

    only on your explicit go-ahead. The gate you hold.

    writes: docs/website/deploy.md

Intent lives on disk, not in a chat.

Discovery, brief, design, and voice are plain files in your repo, plus a decision log that records why each call was made. A new session, a new developer, or a future workflow picks up exactly where things stand.

This page is the proof.

This site was built by the product it describes. The record on the right is the decision that reshaped the page you’re reading; the rest of the system of record sits next to it in the repo.

Read docs/ in the repo →
docs/decisions/0003-finish-the-drawing.md
# 0003 - Finish the drawing: artifact-first recomposition
- Date: 2026-06-10
Decision: Keep direction C and recompose the page so every
claim is backed by a real artifact from this repo. The hero
splits: claim on the left, the docs/ file tree on the right.
The how-it-works table and the spine merge into one annotated
rail. The on-disk section renders this very record as proof.
A full-bleed signal gate band closes the page: the last gate
is you. […]

Astro, Tailwind, Cloudflare. Boring on purpose.

Your code, your repo, no lock-in. Hand it to any developer; there’s no proprietary builder to explain.

Astro
file-based routing, islands only where needed
Tailwind
utility classes, tokens in one place
Cloudflare
static deploy, your account
07 · gate

The last gate is you.

Presso never ships on its own. QA runs first; the deploy waits for your explicit go-ahead. Until then, everything sits in your repo as files you can read and edit.

View the source →
$ npx skills add presso/presso --skill website-builder