AI site builder — bring your own key
Every AI site builder generates a website. This one refuses to generate a bad one.
Multipage sites from a single prompt — planned, designed against eleven anti-pattern gates, animated, with working forms and SEO compiled into static HTML. Publish to your own cloud. Use your own API key.
How it works
From one sentence to a deployed site
- Prompt
- Site plan
- Design system
- Sections
- Motion
- Forms & SEO
- Publish
Design Discipline
Eleven things it will not do
Most generators optimise for plausible. Plausible is where the tells live — emoji standing in for icons, italic headings, invented statistics, a fake browser frame around a screenshot. StackingGrapes ships a written list of anti-patterns and checks every generated page against it. The list is code, not a prompt.
What ships
- Icons drawn on one grid, one stroke weight
- Headings that get emphasis from weight, not slant
- Claims you could check against the repository
- Screenshots shown bare, on a shadowed plane
What gets rejected
- A picture-character where an icon belongs — rejected by
icons.emoji-substitution - A display heading pushed into a slant — rejected by
typography.italic-headings - A statistic nobody can source — rejected by
content.invented-metrics - Three little window dots over a screenshot — rejected by
decoration.simulated-device-chrome
- Invented metrics
content.invented-metrics - Italic headings
typography.italic-headings - Split section headings
structure.split-section-heading - Simulated device chrome
decoration.simulated-device-chrome - Emoji as icons
icons.emoji-substitution - Ordinal eyebrows
structure.ordinal-eyebrows - Unbounded image grid tracks
layout.unbounded-image-grid-track - Missing focus-visible
a11y.missing-focus-visible - Indiscriminate transitions
motion.indiscriminate-transition - Layout-property animation
motion.layout-property-animation - Root overflow clipping
layout.root-overflow-clipping
This page passes all eleven. Scroll back and look for a fake browser frame — there isn't one.
Full Site
It plans the site before it writes a page
A prompt becomes a plan: how many pages, what each one is for, which sections in which order. Then every page is generated against the same design system and the same structural archetypes — so the nav, the footer, the hero and the section heads agree across the whole site instead of drifting page by page.
82 design-system presets across 9 industry groups seed the look; deterministic archetype rotation keeps sections from repeating.
Clone & Screen2Code
Start from a URL. Or a screenshot.
Point it at a site and it captures a full-page screenshot, reads it with a vision model, and returns structured design DNA — category, design context, UI kit spec. That DNA feeds generation. You get a site built on the same design logic, not a copy of someone's markup.
Captured
Extracted DNA
{
"site_category": "saas_tech",
"design_context": {
"mood": "confident, technical",
"density": "airy",
"palette_seed": "#6366F1"
},
"ui_kit_spec": {
"nav": "slim-fixed",
"hero": "headline-left",
"corner_radius": "12px"
}
}
Design System Studio
One source for colour, type and shape
Colour, typography and shape live in one token layer. Change the system and every page follows — because no section carries a private copy of a brand colour. 82 presets across 9 industry groups, or generate one from a description.
Motion & Media
Motion that behaves
Ten scroll and hover recipes. They animate transform and opacity only, they honour reduced-motion, and they are the same modules running on this page right now.
Generate the media too
Generate or replace any image on the site — Flux 2 Pro, Nano-Banana 2, Seedream 5 — or video with Kling 3 Pro, Seedance 2, and MiniMax H3, through fal. Bulk-generate every placeholder in one pass.
Waves and Higgsfield — coming
Stacking Forms
Static sites can't take submissions. Yours can.
A static export has no server. That is why the contact form on most generated sites goes nowhere. StackingGrapes gives every site a real form backend: managed forms built in the editor, rewritten at export to post to a hosted endpoint, with spam checks, domain allow-listing, rate limits, email notifications, signed webhooks and a submission inbox.
Classic forms work with JavaScript switched off; AJAX forms are progressively enhanced.
- form in editor
- static export
POST /f/:key- spam & domain checks
- stored
- email + signed webhook
- inbox
SEO & Blog
Search-ready on export
Per-page title, description, canonical, robots, Open Graph and Twitter cards, with site-wide defaults and AI generation per field — derived automatically when you leave them alone.
A native static blog ships with it: posts move through draft, review, ready, published and archived, and render into the same static output.
Structured data (JSON-LD) — coming
Publish
Your cloud. Your keys. Your domain.
Export is portable static HTML — no runtime, no lock-in. Publish it in one click to any of ten targets, or to a plain VPS over SFTP. Credentials are encrypted and bound per site.
- AWS S3
- Cloudflare R2
- DigitalOcean Spaces
- Hetzner Object Storage
- Backblaze B2
- Google Cloud Storage
- Azure Blob Static Website
- Bunny Storage
- Netlify
- SFTP / Lightsail VPS
No AI credits. Ever.
StackingGrapes runs on your OpenRouter, OpenAI and fal keys. Your key, your rate limits, your invoice from the people who actually run the model. We charge for the software.
Pricing
Pricing
Every plan uses your own API key.
| SeedlingFree | Vineyard€24/mo | Estate€79/mo | |
|---|---|---|---|
| Sites | 2 | 25 | Unlimited |
| AI key | Yours | Yours | Yours |
| Full Site + Design Discipline | Included | Included | Included |
| Screen2Code / Clone | 3 per month | Included | Included |
| Design system presets | All | All | All + custom brand kit |
| Motion & fal media | Included | Included | Included |
| Stacking Forms | 1 form · 50 submissions/mo | Unlimited · 5,000/mo | Unlimited · 50,000/mo |
| Native blog | — | Included | Included |
| Deploy targets | 1 provider | All 10 + SFTP | All + custom domain |
| Portable static export | Included | Included | White-label |
| Seats | 1 | 1 | 5 |
FAQ
Questions
Do I need an API key to start?
Yes — a free OpenRouter key is enough to generate your first site. StackingGrapes never resells inference.
What happens to my sites if I stop paying?
Your exports are plain static HTML sitting in your own storage. They keep working. You lose the editor, not the site.
Are the forms really hosted?
Yes. The endpoint is ours; the site is yours. Submissions land in your inbox and your webhook.
Can it edit a site it didn't generate?
Yes — import via Screen2Code from a URL or a screenshot.
Is the generated HTML mine?
Yes. Portable static export, with no runtime dependency on us except forms, if you use them.