Arbor
One engine. Any booking business.
Provider, service, resource, slot, booking, user: one neutral spine. Edit a single JSON file and the same deployment becomes a clinic, a garage, a climbing gym or a funeral home. No rewrite. No migration.
Change the file. Not the code.
Eleven config blocks decide how the engine behaves, and every one can be overridden per service. One deployment can host businesses that work nothing alike.
Booking
Unit kind, granularity, duration, party size and add-ons. A 30-minute appointment and a seven-night stay are the same row with different config.
Pricing
Per hour, per night, per person, per unit, tiered, quoted or free. Fees, caps and deposits ride along.
Payments
Prepay, pay on site, invoice after, split or none. Deposit schedules and no-show fees included.
Inventory
None, finite, rentable, consumable or serialised. A hire fleet and a hair salon need different answers.
Location
On-site, at the customer, remote, delivery or pickup, plus the business timezone and service area.
Prerequisites
ID checks, intake forms, waivers, memberships and owner approval, gated per service rather than globally.
The database never changes at the pivot. New domain fields go in a metadata JSON column, so switching business needs no migration.
Pick a time to book.
Book in three steps
- 1
Pick a resource
Day availability and month density come off one occupancy view.
- 2
Hold a slot
Book outright or send a request the owner approves. Config decides which.
- 3
Change your mind
Reschedule and cancel obey the same per-service cutoff rules.
The claim, and the evidence for it.
“Pivot the product by editing one file” is easy to say. These are the numbers behind it.
1st place
Track B, Codaro x Google for Startups
Booking and Resource Scheduling, and second overall. Built over the length of the hackathon.
11
Config blocks, each overridable per service
Booking, pricing, payments, inventory, location, prerequisites, timing, recurrence and the rest, so one deployment can host businesses that work nothing alike.
1,260
Backend tests
Rules resolution, availability, pricing, payments and per-user isolation, run on every push.
0
Migrations to pivot
Base tables stay frozen. Anything a new domain needs lives in a metadata JSON column.
Next.js 14 and FastAPI over hosted Supabase, self-hostable with Docker Compose, AGPL-3.0.
Arbor