Building Plunkx in public
A weekly review, posted most Fridays. What we ship, what breaks, and why we change our minds — building the foundation the dive industry gets to stand on.
A softphone, an assistant, and six months in→
The shop phone system, inside the app. A native AI assistant. A whole website built end to end by machine. And a look back at half a year.
Commerce goes live-adjacent→
A real payments engine - deposits, installments, refunds, store credit - and a bridge to pay a year of legacy invoices through the new system.
Admitting the API needed a rewrite→
When your own API is misinforming you, it is time. We started v2 and began strangling v1 - plus a catalog rebuilt from the source.
The POS app, and Brand Manager→
A native point-of-sale for shop staff - and the week the platform stopped being only about one dive shop.
Real payments, and rows that vanished→
Native in-app checkout - and a tenancy bug where rows silently disappeared the moment we turned on the security meant to protect them.
The Merge→
Five apps became one. We ripped auth out mid-flight, and a single environment variable held a login loop hostage for a morning.
An AI door, and a watchtower→
An MCP server so an agent can actually do things - and monitors that drive the real product, not just ping a URL.
Roles that provision themselves→
Flip a flag on, and the platform creates the profile rows and texts the person to tell them.
Firebase, gear lockers, and the service desk→
The heaviest week of the spring. Three hard things at once - and a Bluetooth bug that ate an evening.
The API is born→
From a commit named "First Push" to a real /v1 surface in five days. The platform started eating its parents.
Two products in one week→
Ambitious to the point of reckless: the customer iOS app got its first commit and the site grew a real enrollment wizard, in the same seven days.
The tenant database→
The most important week of the spring, and it is only three commits, because the important part was a decision.
Supabase had to go→
Convenience stopped being worth the ceiling. So we tore the store off Supabase and put it on Postgres.
One commit→
Sometimes the honest weekly review is: thought hard, typed little.
Login gets its own house→
The moment you decide accounts are their own service, you have quietly admitted you are building a platform.
Photos and formatting→
Not every week is a milestone, and I am not going to pretend this one was.
The recruiting funnel→
A whole week on one page - "Become a Pro" - and the first time the project touched a real database.
Week one→
Every big system starts as a small, embarrassing one. This week that is a public programs page for a single dive shop.
The foundation dive shops deserve→
Dive centers run the most demanding retail-plus-service-plus-education business on earth on a Frankenstein stack of six disconnected tools. We are here to replace all of it with one.