Real estate

Desk and room booking for a coworking space

Members of a coworking space book a hot desk for a day or a meeting room by the hour, against a monthly credit allowance. Overages are billed at the end of the month. Staff see occupancy per day and which rooms are never used.

Automatically generated draft

Written by machine against our own engineering playbook. The company is invented; the decisions are the ones we would make on a real build. A reviewed blueprint goes further — nine sections, agreed line by line, and it is what the build is tested against.

Section 01 · What has to work

Members can book hot desks and meeting rooms against their monthly credit allowance, with automatic overage billing at month-end.

Section 03 · Screens

Every screen, and what it is for.

  • ›Dashboard — Member books desks or rooms against monthly credit allowance, view remaining balance instantly.
  • ›Calendar — Staff view daily hot desk occupancy and meeting room utilization metrics instantly.
  • ›Admin Portal — Staff configure credit allowances, hourly rates, and billing cycles instantly.
  • ›Booking Sheet — Member selects time slots or full days for available workspace instantly.

Anything not on this list is not in version one. That is what keeps a fixed price fixed.

Section 04 · The data model

What it stores, and who can read a row.

users

id uuid, organization_id uuid, role enum(member, staff), monthly_credits int, email text, created_at timestamptz

Access · Staff can read all rows; members can read only their own organization row.

resources

id uuid, name text, type enum(desk, room), hourly_cost int, daily_cost int, active boolean

Access · Any authenticated member or staff can read active resources.

bookings

id uuid, user_id uuid, resource_id uuid, start_time timestamptz, end_time timestamptz, status enum(confirmed, cancelled), credits_used int, overage_amount numeric(10,2)

Access · Members read their own bookings; staff read all bookings within their organization.

invoices

id uuid, user_id uuid, billing_period date, total_overage numeric(10,2), status enum(pending, paid), created_at timestamptz

Access · Members read their own invoices; staff read all invoices.

Those access rules belong in the database, not in the screens. Someone who edits the address bar still cannot read a row that is not theirs — and the test that proves it blocks delivery if it fails.

Section 05 · States

confirmed → cancelled | completed

Most scope arguments three weeks into a build are really arguments about a state nobody named at the start.

Section 06 · Where this breaks

What bites products like this one.

Double bookings occur when concurrent users select the same hot desk or meeting room at identical times.

Use database exclusion constraints with tsrange to prevent overlapping bookings for the same resource atomically.

Time zone differences between mobile clients and the server misalign booking start and end timestamps.

Store all timestamps in UTC and convert to facility local time strictly at the presentation layer.

Section 08 · Deliberately left out

What version one does not do.

  • ×Automated Stripe payment collection for overages — Can be handled via manual monthly invoicing in v1 to save three days of billing integration work.
  • ×Recurring weekly desk bookings — Members can book manually day-by-day; recurring rules add significant scheduling conflict logic.

This is the section that protects the date, and the only place in the document where somebody says no. It is also why clients trust the rest of it.

Still open

What we would ask before quoting.

  • What happens to unused monthly credits at the end of the billing cycle: do they roll over or expire?
  • How are partial-hour meeting room overages calculated when a member overstays their booking?

Half of this already exists

Members Circle

The community half of this is a solved problem: paid membership, moderation triaged automatically, and a weekly digest that brings people back.

It is one of our pre-built products: the code is handed over to you, adapted to your own wording and rules, and the rest of the specification above is built on top of it rather than from scratch.

Your product, not this one

Get this written for what you are actually building.

Describe it in a sentence and the generator returns the same sections for your own product. Free, no email, nothing saved to a list.

Next step

Find out if your idea fits in 10 working days.

Tell us what you want to build. We reply the same day with a straight yes, no, or here is what we would cut.

NDA available on request