ISS
← Field Notes
Engineering screenshot
July 14, 2026 · Engineering · 2 min read

Building an Hourly Booking Engine Around Square's Limits

Wrench Club is a membership DIY auto shop in Grand Rapids, and the booking engine behind it works around three things Square cannot do on its own.

Wrench Club is a membership-based do-it-yourself auto shop opening in Grand Rapids, Michigan in 2026. Members book a professional two-post hoist or a flat bay by the hour, with their own tool cart, a workstation, and a full library of hand tools, air tools, specialty tools, and diagnostic gear. It is for everyday car owners and serious enthusiasts alike, anyone who would rather do an oil change, a brake job, or an engine swap in a proper shop than on a cold garage floor or a sketchy set of jack stands. There is also a clubhouse with racing simulators and community events.

Where Square stops and custom code starts

The interesting engineering is not the physical shop, it is the booking engine behind it, and specifically the three things Square cannot do that had to be built by hand.

Square cannot price by the hour. A hoist rented for a variable block of time does not map onto a fixed catalog item, so the pricing had to be modeled as a 24-variation price grid rather than a single SKU. Square cannot detect scheduling conflicts, so double-booking a bay is something the platform will happily let you do, and conflict detection had to be written from scratch on top of it. And Square cannot link a booking to its payment as one atomic thing, so the system uses a compensating-transaction approach: if one half of "reserve the bay and take the money" fails, the other half is unwound rather than left dangling.

Why do it the hard way

That compensating-transaction pattern is the honest answer to a problem every booking system eventually hits. You have two operations that must both succeed or both fail, sitting on a payments API that does not offer a real transaction spanning them. Rather than pretend the failure case will not happen, the design plans for it: reserve, charge, and if the charge does not land, release the reservation so nobody pays for a bay they cannot use and no slot gets silently locked.

The shop itself will live at 522 Stocking Ave NW. For now it is pre-launch and taking waitlist signups. If you are in West Michigan and this is your kind of place, the waitlist and pricing are on the live site.

Have something that needs building, or stabilizing?

These notes are the work log. The paid work runs through Moonshine Labs, my product and engineering studio. Tell us what you're building, or grab a call.

Work with us →
the studio: moonshinelabs.io