Landing pages · React
E-bike waitlist
Dark product waitlist page for a commuter e-bike with key specs, reservation steps, test rider quotes and a sign-up form.

What you get
A pre-launch waitlist page for a hardware product: a dark hero with the headline specs, what the bike is built for, a full spec sheet, waitlist numbers, how reservations work, test rider quotes, an FAQ and the waitlist form. All content lives in src/site.ts.
Files
Exactly what is copied into a new project: 13 files, nothing generated.
Explorer 13
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = { "brand": "Kestrel Cycles", "nav": [ { "label": "The bike", "href": "#ride" }, { "label": "Specs", "href": "#specs" }, { "label": "How it works", "href": "#reserve" } ], "navCta": { "label": "Join the waitlist", "href": "#waitlist" }, "sections": [ { "kind": "hero", "variant": "split", "eyebrow": "Kestrel C1 · First deliveries spring 2027", "title": "A commuter e-bike light enough to carry upstairs.", "text": "19.8 kg with the battery. 80 km of range. A belt drive that never needs oil. The C1 is built for city commutes and fourth-floor flats.", "primary": { "label": "Join the waitlist", "href": "#waitlist" }, "secondary": { "label": "Full specs", "href": "#specs" }, "visual": { "type": "card", "tone": "#365314", "title": "Kestrel C1", "lines": [ "Up to 80 km per charge", "19.8 kg including battery", "€2,690, deliveries from April 2027" ] }, "note": "Joining is free. Reserving later takes a €100 refundable deposit." }, { "kind": "features", "id": "ride", "eyebrow": "Built for the commute", "title": "Everything you need, nothing to maintain", "columns": 4, "items": [ { "title": "Quiet hub motor", "text": "250 W rear motor with a torque sensor, so it feels like your own legs on a good day.", "icon": "bolt" }, { "title": "Removable battery", "text": "Clicks out in two seconds and charges from flat to full in 3.5 hours.", "icon": "clock" }, { "title": "Belt drive", "text": "No chain, no oil on your trousers, and around 20,000 km between replacements.", "icon": "wrench" }, { "title": "Built-in lights and lock", "text": "Lights powered by the main battery and a frame lock that pairs with your phone.", "icon": "lock" } ] }, { "kind": "split", "id": "specs", "eyebrow": "Specs", "title": "The numbers", "text": "Final specs from our pre-production bikes. We'll post any changes here before reservations open.", "bullets": [ "Two frame sizes: S/M (155–175 cm) and M/L (172–195 cm)", "Three colours: graphite, moss and chalk", "Two-year warranty, five on the frame" ], "visual": { "type": "mock", "title": "Kestrel C1 spec sheet", "rows": [ { "label": "Weight", "value": "19.8 kg" }, { "label": "Range", "value": "50–80 km" }, { "label": "Motor", "value": "250 W, 45 Nm" }, { "label": "Battery", "value": "360 Wh, removable" }, { "label": "Brakes", "value": "Hydraulic disc" }, { "label": "Max assist", "value": "25 km/h" } ], "footer": "Range measured with a 75 kg rider on mixed city routes" }, "reverse": true }, { "kind": "stats", "items": [ { "value": "4,812", "label": "People on the waitlist" }, { "value": "1,200", "label": "Bikes in the first batch" }, { "value": "9", "label": "Test riders, 14 months" }, { "value": "38,000 km", "label": "Ridden in testing" } ] }, { "kind": "steps", "id": "reserve", "eyebrow": "How it works", "title": "From waitlist to front door", "items": [ { "title": "Join the waitlist", "text": "Free. You'll get build updates once a month and your place in the queue." }, { "title": "Reserve with €100", "text": "When reservations open in January, you'll have 7 days to place a fully refundable deposit." }, { "title": "Pick size and colour", "text": "Confirm your order and pay the balance two weeks before your bike ships." } ] }, { "kind": "quotes", "eyebrow": "Test riders", "title": "Fourteen months on real commutes", "items": [ { "quote": "I carry it up three flights every evening. My last e-bike weighed 27 kg and lived in the hallway.", "name": "Elena V.", "role": "Test rider, 11 km commute" }, { "quote": "The belt drive is the thing. I haven't touched it since March.", "name": "Jonas H.", "role": "Test rider, all-weather" }, { "quote": "Feels like a normal bike, just with a tailwind everywhere.", "name": "Amara D.", "role": "Test rider, hilly route" } ] }, { "kind": "faq", "id": "faq", "eyebrow": "FAQ", "title": "Questions", "items": [ { "q": "Where do you deliver?", "a": "The first batch ships to Germany, the Netherlands, Belgium, France and Austria. The UK follows in summer 2027." }, { "q": "Is the deposit really refundable?", "a": "Yes, in full, at any time before your bike ships." }, { "q": "Can I test ride before buying?", "a": "Test rides run in Berlin, Amsterdam and Vienna from February. Waitlist members get first booking." } ] }, { "kind": "contact", "id": "waitlist", "eyebrow": "Waitlist", "title": "Save your place in the queue", "text": "We'll email you when reservations open, and once a month with build updates. Nothing else.", "fields": [ "name", "email" ], "button": "Join the waitlist" } ], "footer": { "text": "Light, low-maintenance e-bikes for city commutes.", "columns": [ { "title": "Kestrel C1", "links": [ "Specs", "Test rides", "Warranty" ] }, { "title": "Company", "links": [ "About", "Build journal", "Press" ] }, { "title": "Help", "links": [ "FAQ", "Contact", "Privacy" ] } ], "legal": "© Kestrel Cycles. Sample content: replace it in src/site.ts." }};Remix
Remix this template
Describe what to change and the agent starts from E-bike waitlist's files. The box is already started for you: finish “Start from E-bike waitlist and …”
Dependencies
Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.
- react^19.1.0
- react-dom^19.1.0
- vite^6.3.0
- @vitejs/plugin-react^4.4.0
- tailwindcss^4.1.0
- @tailwindcss/vite^4.1.0
- typescript^5.8.0
How it runs
- Framework
- Vite + React + TypeScript
- Dev command
- npm run dev
- Build command
- npm run build
- Output directory
- dist
- Port
- 5173
- Entry route
- /
Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.
Keep browsing
All templates
Budgeting app launch
Launch page for a household budgeting app with a live budget mock, pricing, beta reviews and an early-access form.

Design conference
Bold two-day design conference page with speakers, programme, venue, ticket tiers and an FAQ, ready for ticket sales.

30-day running plan
Friendly sign-up page for a free 30-day plan that takes beginners from walking to running 20 minutes without stopping.
Build on E-bike waitlist
Create a free account, start from this template, and ask the AI agent to turn it into your app.