The problem
Alpenature runs adventure tours out of St. Anton am Arlberg, and each tour needed its own booking form with its own pricing logic, adult versus youth rates, optional add-ons like a Fondue Dinner or lunch package. The forms that existed had incorrect pricing, fields that overlapped on mobile, and no payment integration at all, so every booking still had to be closed manually.
What I built
Seven-plus custom multi-step booking forms
Snowshoe Valley, Snowshoe Panorama, Snowshoe Magic, Guided Night Tobogganing, Alpine Wine Tasting, Tandem Thermal Flight, and Off-Piste Guiding each got their own form, built on a consistent three-step flow, tour details, personal details, then payment.
Pricing that calculates itself
Each form handles adult and youth rates along with optional add-ons, a €29.90 Fondue Dinner, lunch options, and calculates the running total automatically as the customer builds their booking, instead of leaving the math to a follow-up email.
Stripe, built into the booking flow
Payment processing runs directly inside the booking form itself, so a completed booking is a paid booking, not a pending one waiting on a manual invoice.
Mobile, fixed properly
The original forms broke down badly on mobile, buttons in the wrong position, Yes/No toggles misaligned, fields overlapping, footer alignment off, inconsistent fonts. I went through each of these individually and tested across every breakpoint, and fixed the broken legal and terms links along the way.
Social connections
I linked the Facebook and Instagram Business accounts so the Instagram hashtag feed stays current on the site automatically.
What actually changed
| What changed | Before | After |
|---|---|---|
| Booking forms | None | 7+ customized multi-step forms |
| Payment | No integration | Stripe processing, built in |
| Pricing | Incorrect or missing | Dynamic, auto-calculating |
| Mobile | Overlapping, broken | Fully responsive |
