npx vibes-diy generate turns a sentence into a deployed
single-file React app, persisted with Fireproof, live in under a minute
at a URL you can share. No project. No scaffold. No PR. No procurement.
This site was built with it.
$ npx vibes-diy@latest generate \ --user-slug=og \ --app-slug=pizza-quiz \ "Competitive study app. Each player submits a pizza order, then takes an AI-generated quiz on a topic. Top scorers get weighted votes on the final pizza. Save sessions in Fireproof."
Every expressions
cluster, every college
audience page, every dating
take — built by backgrounding a stack of npx vibes-diy generate calls
and waiting. No wrapper function needed. The CLI's defaults are fine.
# cluster/_run.sh — fire ten in parallel, wait for them all
npx vibes-diy generate "Pizza-trivia study app..." &
npx vibes-diy generate "Reunite lonely socks after laundry..." &
npx vibes-diy generate "Anonymous dorm-mess roast leaderboard..." & # ... seven more ... wait
/ 01 / WRITE
One sentence per app.
Under 50 words. Don't dictate styling — the model picks its own.
Long style-pinning preambles overflow the server-side budget and
trigger a stuck No files resolved state.
/ 02 / FIRE
Background ten at once.
The CLI takes a few minutes per gen. A bash gen() function
running ten in parallel lands a whole themed page in the time it
takes to write the next prompt set.
/ 03 / VERIFY
One curl tells the truth.
Look for a real fsId and a V1 import in the
deployed HTML. fsId: pending with mountVibe([])
means the slug registered but the code never landed — white-screen.
case studies — this site
85 deployed apps. All from this CLI.
Every embedded app on every page of this site was generated by
npx vibes-diy generate.
Eleven themed pages, eighty-five real React apps, each persisted with
Fireproof, each a single shell call.
// case 01
80
apps · 8 pages · 1 weekend
expressions/ — themed-cluster hub
Eight visual languages, ten apps each.
Each cluster sub-page picks a fresh skin (Terminal CRT, Broadsheet,
Aether Brass, Scrapbook, Archive, Rune Interface, Vault, Dossier) and
fills with ten one-sentence prompts. The batch script kicks off ten
parallel gens; six minutes later the page has ten real apps.
The same scripts work for every cluster. The same one-line verify
command catches every stuck slug.
The Terminal CRT cluster (LIGHTS.ON, Pet Status Board, Nap
Declaration, Noon Wave...) shows what happens when the page and the
embedded apps share a visual register. The cards on the page and the
phosphor-green apps inside them feel like one product.
og/lights-on
is the canonical example — open it, tap the LIGHT, watch your dot turn on.
Five dorm-shaped prompts pasted from a spreadsheet, five SEO-style
slugs (pizza-quiz, sock-finder, study-buddy-pairing...), one batch
script, five live apps in fifteen minutes. The page itself follows
the existing audience-page convention.
Same shape on /dating
— five anti-swipe takes, all live, each a single sentence input.
Pinned in the
README and the agent's memory after the first cluster's worth of
surprises. Skip these and you'll burn a slug.
1. PIN --user-slug
The CLI's logged-in default drifts (account swap, re-auth, CLI upgrade).
Always pass --user-slug=og explicitly. Without it your
deploys land at jchris/... and your page hard-coded
og/... white-screens.
2. SEO slugs, not titles
Use pizza-quiz not professor-pizza. Slugs
become public URL paths; descriptive keywords aid discovery. The
branded title still lives in the page's title field.
3. Under 50 words
Long prompts (especially style-pinning preambles) overflow a
server-side budget and trigger a stuck No files resolved
response that returns the same byte count regardless of input.
4. Don't dictate styling
The model picks its own. If you want a coherent skin across the cluster,
skin the host page — the embedded app stands on its own.
5. Fresh slug on stuck
If a slug returns the same byte-count error on every retry, it's
poisoned. Don't keep retrying. Pick a fresh SEO slug, redeploy, update
the page.
The CLI is the primitive. Coding agents (Claude Code, Cursor, etc) are
great at driving it. Paste this into your agent and watch a whole themed
site assemble itself — five sub-pages, thirty deployed apps, batch-script
and verify included.
# paste-into-agent prompt — 30 apps, 5 themed sub-pages, one /games/ hub
Build static HTML landing pages (no framework): a /games/ hub plus five themed sub-pages — pinball, retro arcade, classic platformer, modern, sports. Each sub-page picks its own visual skin and showcases 6 deployed mini-games. Run npx vibes-diy login once, then generate each game via npx vibes-diy generate with a sub-50-word prompt — you pick the specifics. The CLI prints each deploy URL and writes a local README.md with the title and prompt; append /screenshot.jpg to the deploy URL for an image, and link the URL itself for the live app. Embed both on every card. Preview by opening the HTML file locally, then deploy to Cloudflare Pages.
// the agent picks the slugs, the per-app prompts, and the skins. Six apps × five categories = thirty deploys, batched in parallel.
One sentence. One app. Go.
The CLI is on npm. The flow is bash. The deploys are real apps you can
Join, Clone, and Remix. Browse the eighty-five built for this site, then
build your own.