African Explorer is Railwayhero's flagship brand. It sells premium rail journeys across Southern Africa, on the African Explorer, Rovos Rail and the desert trains.

The situation
The catalog is large and it moves. Prices change, departures sell out, new routes get added. The old site could not keep up. It ran on WordPress, and every change meant a round of back and forth with a design agency. A new price or a new journey took days, sometimes weeks.
Inquiries arrived as email. If the mail failed, the lead was gone. What survived, the client retyped into Pipedrive by hand. So the real problem was not the design. It was the distance between the owner and his own website.
What we built
We rebuilt africanexplorer.de on Astro, static, with React kept only where a page is actually interactive. The content that used to be locked in code now lives in plain structured files. The site serves 44 live journeys today, each with its own detail page, durations, departure dates and prices, all filterable by train, language, destination and travel month. The build emits 68 pages.

Hosting moved to GitLab Pages, with automatic certificates and a CI pipeline. Both domains sit behind Cloudflare. We added the SEO layer the old site never had: Open Graph, structured data for the agency and for every journey, and a single switch that keeps a preview build out of Google so staging can never compete with the live site.
The inquiry pipeline
The six-step inquiry form is the part that earns its keep. A submission is written to a Cloudflare D1 database first and answered immediately, so the lead is durable before anything else can fail. The Pipedrive write happens next: the person is matched by email or created, a deal is created and linked, and the train, route, cabin, travel dates, party size and message are mapped onto the real custom fields, with a note attached.

A honeypot, a Cloudflare Turnstile check and a per-IP rate limit reject bots before anything is written. An idempotency key means a double click never creates two deals. No more lost leads. No more retyping. Every inquiry is a clean, linked deal in the client's CRM.
Changes in minutes, not weeks
This is the whole point. The owner changes his website himself, by talking to Claude. He describes what he wants, a new journey, a different price, another question in the inquiry form, and the change is live within minutes. The content sits in plain files. The Pipedrive field mapping is one readable file. The settings are one config file. He does not wait for us, and he does not wait for an agency.
We cut the build from months to weeks. We cut the time to change the live site from weeks to minutes.
The results, in numbers
The rebuild shows up in the numbers. Measured with Google PageSpeed Insights on 6 October 2026.



- Desktop performance: 100 / 100. Mobile: 97 / 100, on a throttled Slow 4G connection.
- SEO: 100. Best Practices: 100. Accessibility: 94.
- Agentic Browsing: 2/2. The site passes Google's new checks for AI agents. It is built to be read and used by AI, not just by people.
- Core Web Vitals (mobile, Slow 4G): Largest Contentful Paint 2.4 s, Total Blocking Time 0 ms, Cumulative Layout Shift 0.001.
- 44 live journeys, 68 pages, all editable by the owner through Claude.
- Hosting cost: near zero, on GitLab Pages behind Cloudflare.
- Every inquiry a linked deal in Pipedrive, with zero manual retyping.
Tech stack
- Astro: Static site, with React islands only where the page is interactive.
- Tailwind CSS v4: Design tokens and the shared layout skeleton.
- GitLab Pages: Free hosting and CI, custom domains with automatic certificates.
- Cloudflare: DNS and proxy in front of the site, plus Workers and D1 for the inquiry pipeline.
- Cloudflare Turnstile: Bot defence on the inquiry form.
- Pipedrive: Every inquiry lands as a linked person and deal in the client's CRM.
- Claude and ChatGPT: How the owner edits the site. Plain structured content, changed in minutes.
Recently touched
- 2026-10-03 Extract "Railwayhero Core" repo from African Explorer Redesign; make existing sites children Done
- 2026-10-03 Core→children propagation: provenance marker + sync-from-core tool Done
- 2026-09-30 Host all Railwayhero sites on GitLab Pages, retire Firebase Done
- 2026-09-30 africanexplorer.de: Cloudflare-Proxy einrichten + Cache-Purge beim Deploy (Creatio-Parität) Done
- 2026-09-28 Analyse African Explorer Redesign repo and reformat to MWS website scaffolder Done
Other projects in this case study
Pipedrive Onboarding
Railwayhero's Pipedrive CRM was configured to manage B2B wholesale booking operations for premium train journeys (The Ghan in Australia, Rovos Rail in Africa, and others). The system integrates…
Read case studyGhan Importer
The Ghan Importer is a dedicated integration system that syncs booking data from The Ghan train operator's system into Railwayhero's Pipedrive CRM. This custom solution enables automatic deal…
Read case study