What Shipped This Week: Early March Progress Update
Last time I wrote one of these, we were closing in on go-live with room sharing, cost recovery, and the ICE rework. That stuff's bedded in now, and this week's been about making the day-to-day experience of actually running a trip smoother — fewer surprises, better guardrails, and a lot of tidying up under the hood.
Booking Guardrails
This was the main theme. Now that organisers are actively booking accommodation and crossings, a bunch of edge cases surfaced — the kind you only find when real data hits real workflows.
The system now warns you if you try to book two accommodations for the same date, if you're booking more rooms or cabins than expected, or if the accommodation doesn't match the trip profile. None of these block you outright — sometimes you know what you're doing — but you'll get a clear heads-up rather than finding out later that something's off.
Duplicate room type names are now actively prevented too. That one caused some confusing data issues early on, and it's now caught at the UI before it reaches the database.
Payment tracking has also landed on the accommodation and crossing modals, so you can see at a glance what's been paid and what hasn't without digging into the expenses panel.
Visual Workflow Cues
One thing I noticed watching organisers use the platform: it wasn't always obvious what to do next. So I've added colour to the primary action buttons on trip cards, and the "Start Trip" button now stays hollow until you've locked participant changes. Small thing, but it makes the sequence of steps self-evident rather than something you have to remember.
Increasing trip capacity is more prominent now too — it was there before, but easy to miss.
Invitations From The Trip Page
Organisers can now send invitations directly from the trip view, and when someone registers from that invite, they land straight on the relevant trip page rather than the generic dashboard. Fewer clicks, less confusion.
Bug Fixes
A few genuine bugs got squashed this week:
Missing emails — several trip-related notifications (matching, cancelling, various status changes) simply weren't being sent. They are now. This was one of those "how long has this been broken?" ones.
Passenger partner counting — passenger partners were incorrectly inflating headcounts and counting towards the capacity limit. Fixed across the UI and in email notifications.
Couple cancellation — when a couple partner cancelled their registration, their other half was being switched to twin sharer instead of reverting to open couple status. Now handled properly.
Pricing inconsistency — different members could see different prices for the same trip in certain scenarios. Traced back to an inline calculation that wasn't using the central pricing function.
Platform Pages
The FAQ and About pages are now live. Nothing dramatic, but it means the platform feels less like a tool and more like a product. This works for both groups - who can self populate - and the platform itself.
The boring-but-important Stuff
I spent a chunk of the week on what I've been calling "improvements week" — going through the codebase and centralising things that had been duplicated as features were added quickly. Navigation, email templates, currency formatting, audit logging, admin permission checks, URL utilities. None of it changes what you see, but it makes everything more maintainable and means fewer places for bugs to hide as we keep building.
The calculations engine also got an upgrade, with a new admin page for reviewing pricing breakdowns in detail. Useful for me when debugging, and it'll be useful for platform admins down the line.
