Skip to main content
Spoko.Studio
All work

2025

Rainbow Surf Retreats

Multi-currency retreat booking, scaled to 5 languages.

Visit site
Launched in
1 month
Live for
1 year
On this page

Context

Where this lives in the world.

Rainbow Surf Retreats has been running surf weeks on Lanzarote since 2017 — multi-week stays, group bookings, mixed-room configurations, guests from across Europe paying in their own currencies.

Challenge

What was hard about it.

The existing WordPress booking flow leaked roughly 40% of conversions on the payment step. Currency math was approximate, group pricing required manual quotes, and Stripe 3DS challenges silently broke the checkout on certain banks. The owner needed a flow that matched how she actually sold retreats — not a generic e-commerce add-on.

Solution

What we built to solve it.

We rebuilt the entire booking pipeline as a Next.js 16 App Router site with a custom retreat-aware checkout. Stripe handles three currencies with proper 3DS flows; installments are first-class; group bookings combine into a single payment intent; webhook reconciliation matches every state transition. Email (booking confirmations, reminders, post-stay follow-ups) runs through self-hosted Postal so we own the deliverability story.

Tech story

Decisions worth calling out.

  • Custom payment-state machine: pending → 3DS challenge → frozen authorization → captured / refunded — every edge handled, every state visible in admin
  • Multi-currency pricing computed server-side from a single base price + daily FX snapshots — no rounding drift between cart and Stripe
  • PostgreSQL 18 + MinIO for media — zero vendor lock-in; the entire stack runs on a private VPS
  • Sentry catches every payment-path error with PII scrubbing on by default

Screenshots

What it looks like in flight.

Outcome

Live in production

Looking to build something like this?

If you're sitting on a similar problem — multi-currency booking, clinical workflow, real-time pipelines, anything in this orbit — we've already done the hard parts once. The second time is faster, cheaper, and shaped to your business. Tell us what you have in mind.