BoilerPrompt
Bolt

Bolt prompt for an agency landing page

A Bolt prompt that scaffolds an agency site as a runnable Vite project, manifesto-first instead of hero-first, with one file per section rendering live in the preview. Alternating full-bleed work rows each carry a single result number. Style, palette, type, and motion arrive from the customizer; the file structure stays fixed.

Last updated

Prompt
Scaffold a complete, runnable project in Bolt for the agency site of {{product}}, written for {{audience}}. Use Vite + React with no backend, one file per section under src/sections/ — Manifesto.jsx, Work.jsx, Services.jsx, Method.jsx, People.jsx, Footer.jsx — imported in that order by App.jsx, so I can watch each piece land in the instant preview.

Structure (deliberately manifesto-first, not a conventional hero):
1. Manifesto — open with a 3-line declaration of how {{product}} approaches its specialty, set at the largest size on the page; beneath it, one line stating who the studio serves and a scroll cue.
2. Work — 5 projects as full-bleed alternating rows (media area swapping left/right each row) with client, sector, and a one-number result; keep row heights consistent.
3. Services — a 3-column band of capability groups, 4 short line items in each column.
4. Method — 4 stages on a horizontal timeline with a connecting rule; each stage names the artifact the client receives.
5. People — founders and leads in a single row of cards: name, role, one-line bio.
6. Footer — an oversized email link, the city, and social links on one line.

Visual direction:
{{style}}

Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}

Spacing and breakpoints:
- Define --section-gap in a global stylesheet: 7rem desktop, 4rem under 768px; every section reads the variable instead of hard-coding margins.
- Under 768px, Work rows stack media-over-text and the Services band becomes a single column.

Write real placeholder copy derived from {{product}}'s specialty — sector-specific project names, never "Project One". The primary call to action is "{{cta}}", appearing once as a fixed corner button that smooth-scrolls to the Footer.

Once it runs in preview, confirm: App.jsx imports all six section files; Work rows alternate sides and stack correctly on narrow widths; the corner "{{cta}}" button scrolls to the footer; the preview console shows no errors; every project row displays a number.

Customize it

Runs in your browser. Nothing you type here is sent anywhere.

Your customized prompt
Scaffold a complete, runnable project in Bolt for the agency site of a project management SaaS, written for engineering managers at startups. Use Vite + React with no backend, one file per section under src/sections/ — Manifesto.jsx, Work.jsx, Services.jsx, Method.jsx, People.jsx, Footer.jsx — imported in that order by App.jsx, so I can watch each piece land in the instant preview.

Structure (deliberately manifesto-first, not a conventional hero):
1. Manifesto — open with a 3-line declaration of how a project management SaaS approaches its specialty, set at the largest size on the page; beneath it, one line stating who the studio serves and a scroll cue.
2. Work — 5 projects as full-bleed alternating rows (media area swapping left/right each row) with client, sector, and a one-number result; keep row heights consistent.
3. Services — a 3-column band of capability groups, 4 short line items in each column.
4. Method — 4 stages on a horizontal timeline with a connecting rule; each stage names the artifact the client receives.
5. People — founders and leads in a single row of cards: name, role, one-line bio.
6. Footer — an oversized email link, the city, and social links on one line.

Visual direction:
Minimal dark style. Near-black canvas (#0A0A0B) with one elevated surface tone (#141416) for cards — never more than two surface steps. Hairline borders (1px, white at 8% opacity) instead of shadows; if a shadow is unavoidable use 0 1px 2px rgba(0,0,0,0.4) and nothing softer. Text in exactly three steps: white at 92% for headings, 60% for body, 40% for captions. Generous negative space — section padding at least 120px on desktop, 64px on mobile. The accent color appears only on interactive elements and one hero highlight, nowhere else.

Palette: a strict neutral ramp (white, #F5F5F5, #E5E5E5, #737373, #171717) carries the entire interface; pick one accent and use it only for primary CTAs, active states, and a single hero highlight. If the accent appears more than five times per viewport it stops being an accent. Keep semantic colors (success, error) desaturated so the accent stays in charge.
Typography: one geometric sans (a Futura/Poppins-class face) at three weights maximum (400/500/700). Scale: 64-88px hero, 32px section heads, 18px lede, 16px body, 13px caps labels with 0.08em tracking. Tight headline leading (1.05-1.1), relaxed body (1.6). Let the geometry carry the personality — no italics; weight and size do all hierarchy.
Motion: none. Zero scroll animations, zero entrance effects — the page is fully composed the instant it paints. Spend the motion budget on input feedback instead: 120-150ms ease-out color and transform transitions on hover and press states only. Hold this constraint absolutely; it is a statement, not an omission.

Spacing and breakpoints:
- Define --section-gap in a global stylesheet: 7rem desktop, 4rem under 768px; every section reads the variable instead of hard-coding margins.
- Under 768px, Work rows stack media-over-text and the Services band becomes a single column.

Write real placeholder copy derived from a project management SaaS's specialty — sector-specific project names, never "Project One". The primary call to action is "start a free trial", appearing once as a fixed corner button that smooth-scrolls to the Footer.

Once it runs in preview, confirm: App.jsx imports all six section files; Work rows alternate sides and stack correctly on narrow widths; the corner "start a free trial" button scrolls to the footer; the preview console shows no errors; every project row displays a number.

Same task in other tools

Questions about this prompt

Why open with a manifesto instead of a conventional hero?

Agencies mostly compete on point of view, and a declaration set at the page's largest size communicates one faster than a headline-plus-screenshot hero. The full-bleed work rows arrive immediately after, so proof is never more than one scroll away.

Bolt's preview shows the sections unstyled — what usually broke?

Nine times out of ten the global stylesheet defining --section-gap isn't imported, or App.jsx lost a section import during an edit. Point Bolt at the exact file — "the CSS variables in src/index.css aren't loading" gets a faster fix than "styles are broken".

Can I add a working contact form later without rescaffolding?

Yes. Each section is its own file, so ask Bolt for a Contact.jsx wired to a form service and import it before Footer in App.jsx. The oversized email link in the footer keeps working either way.

Part of the Bolt landing-page cluster — start from the main Bolt landing page prompt.

Related prompts