The market was coordinating everything out of the previous coordinator's spreadsheets. Booth assignments, fees, who paid, who lapsed... all of it lived in files that only made sense to the person who'd left.
A market has more rules than you'd guess from the outside: registration windows, returning-vendor pricing, food-truck limits, a lapse rule. And the person enforcing all of it is standing in a parking lot at 7:30 in the morning with a phone in one hand. Whatever I built had to work standing up, and nobody at the gate should ever be typing a password.
Vendors sign in by magic link; no accounts, no passwords. The booth map is the market's real surveyed lot, traced, so picking a spot online feels like pointing at it in person. Fees calculate themselves from the market's own policy (new versus returning, food trucks, the four-month lapse rule), registration windows open and close on their own schedule, and every dollar figure on the admin side says where it came from. I was careful about that last one: imported spreadsheet history and money collected through the portal are never quietly blended, because the first time a total is wrong is the last time anyone trusts the screen.
It's live at market.mayportwaterfrontpartnership.org, running the actual season. Vendors register themselves, the printable posters point a QR code at a permanent map URL, and when the coordinator texts me something from the field it's usually fixed the same day.



