Skip to content
codexa

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.

E-bike waitlist starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

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.

Raw data: GET /api/v1/templates/landing-ebike-waitlist

src/site.ts
src/site.ts
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 …”

Agent ready

Creates a free account first; your idea is carried over.

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.

All templates

Build on E-bike waitlist

Create a free account, start from this template, and ask the AI agent to turn it into your app.