Landing pages · React
Half-marathon registration
Dark race registration page for a city half-marathon with course facts, race-day schedule, entry prices and pack collection.

What you get
A registration page for a city road race: a centred hero with the date, race numbers, the course at a glance, the race-day schedule, entry tiers, race pack collection times, an FAQ and an entry 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": "Northbridge Half", "nav": [ { "label": "Course", "href": "#course" }, { "label": "Race day", "href": "#raceday" }, { "label": "Entry", "href": "#entry" } ], "navCta": { "label": "Enter now", "href": "#register" }, "sections": [ { "kind": "hero", "variant": "center", "eyebrow": "Sunday 18 April 2027 · 8:00 am start · 12th edition", "title": "13.1 flat, fast miles through the middle of Northbridge.", "text": "A closed-road course past the old mills, along the river and back to Civic Square, with bands every two miles and the loudest finish straight in the north.", "primary": { "label": "Enter the race", "href": "#entry" }, "secondary": { "label": "See the course", "href": "#course" }, "visual": { "type": "none" }, "note": "Entries close 1 March 2027, or sooner if all 6,000 places go." }, { "kind": "stats", "items": [ { "value": "21.1 km", "label": "Closed roads" }, { "value": "6,000", "label": "Places" }, { "value": "3h 30", "label": "Course time limit" }, { "value": "48 m", "label": "Total climb" } ] }, { "kind": "split", "id": "course", "eyebrow": "The course", "title": "One loop, mostly flat, measured to the metre", "text": "The course is certified and chip-timed, with mile markers and kilometre markers. The only real hill is Mill Street at mile 4, and it's over in 300 metres.", "bullets": [ "Water stations every 3 miles, energy gels at mile 8", "Pacers from 1:25 to 2:45", "Toilets at the start and at miles 4, 7 and 10" ], "visual": { "type": "mock", "title": "Course at a glance", "rows": [ { "label": "Start", "value": "Civic Square" }, { "label": "Mile 4", "value": "Mill Street climb", "tone": "#fbbf24" }, { "label": "Mile 7", "value": "Riverside Park" }, { "label": "Mile 10", "value": "Harbour Road, flat" }, { "label": "Finish", "value": "Civic Square", "tone": "#34d399" } ], "footer": "Course map and elevation profile in the race guide" } }, { "kind": "timeline", "id": "raceday", "eyebrow": "Race day", "title": "Sunday 18 April, hour by hour", "items": [ { "period": "06:30", "title": "Race village opens", "text": "Bag drop, toilets and coffee in Civic Square." }, { "period": "07:40", "title": "Start pens close", "text": "Pens are colour-coded on your bib by expected finish time." }, { "period": "08:00", "title": "Wheelchair race starts", "text": "Followed by mass start in three waves, 8:05 to 8:20." }, { "period": "09:05", "title": "First finishers", "text": "Leaders usually arrive just after nine. Finish area open to spectators." }, { "period": "11:50", "title": "Course closes", "text": "Roads reopen as the sweep vehicle passes. Medals and food for every finisher." } ] }, { "kind": "pricing", "id": "entry", "eyebrow": "Entry", "title": "Choose your entry", "text": "All entries include chip timing, a medal, a technical T-shirt and race photos.", "plans": [ { "name": "Early entry", "price": "£34", "text": "Until 31 December 2026.", "features": [ "Chip timing", "Finisher medal and T-shirt", "Free race photos" ], "cta": { "label": "Enter early", "href": "#register" } }, { "name": "Standard", "price": "£42", "text": "From 1 January to 1 March 2027.", "features": [ "Chip timing", "Finisher medal and T-shirt", "Free race photos", "Transfer until 1 April" ], "featured": true, "cta": { "label": "Enter now", "href": "#register" } }, { "name": "Charity place", "price": "£0", "text": "Free entry with a £300 fundraising pledge.", "features": [ "Choose from 12 local charities", "Fundraising pack", "Charity cheer points on course" ], "cta": { "label": "Apply for a place", "href": "#register" } } ] }, { "kind": "hours", "id": "packs", "eyebrow": "Race packs", "title": "Collect your bib and chip", "text": "Bring your confirmation email and photo ID. A friend can collect with a signed note.", "rows": [ { "day": "Friday 16 April", "time": "12:00 – 20:00" }, { "day": "Saturday 17 April", "time": "09:00 – 18:00" }, { "day": "Sunday 18 April", "time": "No collection on race day" } ], "address": "Northbridge Corn Exchange, 2 Market Place", "email": "runners@northbridgehalf.org" }, { "kind": "faq", "id": "faq", "eyebrow": "FAQ", "title": "Runner questions", "items": [ { "q": "What's the minimum age?", "a": "You must be 17 on race day. Under-18s need a parent or guardian to sign the entry." }, { "q": "Can I transfer my place?", "a": "Standard entries can be transferred until 1 April for a £5 admin fee. Early entries can be deferred to next year instead." }, { "q": "Are headphones allowed?", "a": "Bone-conduction headphones only, so you can hear marshals and emergency vehicles." }, { "q": "Is there parking?", "a": "Park and ride from three sites from 6 am, £4 per car. Roads in the centre close from 5 am." } ] }, { "kind": "contact", "id": "register", "eyebrow": "Register", "title": "Reserve your place", "text": "Fill in your details and we'll email a secure link to complete your entry and pay. Places are held for 48 hours.", "fields": [ "name", "email", "phone", "message" ], "button": "Reserve my place" } ], "footer": { "text": "A closed-road half-marathon through the centre of Northbridge.", "columns": [ { "title": "Race", "links": [ "Course", "Race day", "Results" ] }, { "title": "Runners", "links": [ "Entry", "Race packs", "Charity places" ] }, { "title": "Contact", "links": [ "runners@northbridgehalf.org" ] } ], "legal": "© Northbridge Half. Sample content: replace it in src/site.ts." }};Remix
Remix this template
Describe what to change and the agent starts from Half-marathon registration's files. The box is already started for you: finish “Start from Half-marathon registration 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 Half-marathon registration
Create a free account, start from this template, and ask the AI agent to turn it into your app.