MMODZ.digitalGet a quote

Booking platform · SaaS replacement · 2026

They were renting their booking system. Now they own it.

NBT Offices ran their meeting rooms on Skedda — a monthly subscription that grew every time they added a space. We replaced it with their own multi-site booking app, built to their rules and live on their own domain in nine days.

9 days
First commit to the client feedback round
£0
Per-room and per-user licence fees — the subscription ended at launch
100%
Owned outright — the code, the data and the roadmap are NBT's

The problem

Paying rent on software you can never change.

Skedda did the job, in the way Skedda does the job. The friction wasn't any single missing feature — it was that the operation had to keep bending around the product, and the bill kept arriving.

Before — Skedda

  • A recurring subscription priced per space — every new room added to the bill.
  • Features locked behind the next tier up, whether or not NBT needed the rest of it.
  • Booking rules that had to bend to fit the product, instead of the product fitting how NBT actually let rooms.
  • No branding worth the name — the tenant experience belonged to somebody else's software.
  • Data living in a third-party account, exportable only on their terms.

After — their own app

  • One app across every site, with unlimited rooms and unlimited users at no extra cost.
  • Rules written to match NBT's operation: daily allowances, approvals, per-room booking increments.
  • NBT branding throughout — org and per-site logos, and a sidebar that recolours itself per site.
  • Their own Postgres database, their own Supabase and Vercel accounts, their own domain.
  • New features get built when NBT asks for them, not when a roadmap somewhere else allows it.

The process

Five moves from subscription to owned asset.

Migrating off a SaaS tool is mostly a question of knowing which of its rules you actually need. We worked out the answer first, then built.

01

Map what Skedda was actually doing

Before writing anything we pulled apart the live setup: which sites, which rooms, who books, what has to be approved, and which of Skedda's rules were genuinely load-bearing versus simply what the product happened to offer. That separation is what kept the rebuild from becoming a clone.

02

Put the rules in the database, not the form

The core of the app went in first: a Postgres schema where a double-booking is physically impossible thanks to an exclusion constraint on room and time range, row-level security on every table, and the daily booking allowance enforced by a trigger. A limit that only lives in React is not a limit.

03

Build the day the way the office reads it

Rooms down the left, time across the top, click a gap to book. Filters for capacity and amenities, drag to move or resize a booking, month and grid views for the wider picture, and realtime updates so two people looking at the same timeline see the same thing.

04

Hand the controls over

Admin screens for sites, rooms, people and booking rules — plus branding, room photos, amenity icons and column order. Everything an agency would normally charge a change request for, NBT can now do themselves in a browser.

05

Launch, then a real feedback round

The app went live on its own domain, and we ran a proper feedback pass afterwards: recurring booking series management, per-site daily caps, calendar polish and a simpler insights dashboard. Rule changes are covered by tests that run the migrations against a real Postgres and then try to break them.

The timeframe

Nine days, start to live.

Not a discovery phase and a statement of work. A working app in front of the client inside the first week, and a real feedback round before anyone called it finished.

  1. Day 1Schema, auth and the booking core — the rules that cannot be broken.
  2. Days 2–3Multi-site view, booking rules, room images, amenity icons, calendar export.
  3. Day 4Drag-to-move bookings, recurring bookings, mobile layout, PWA install, org and site logos.
  4. Days 8–9Feedback round: series management, per-site caps, insights, calendar polish. Live.

Thirteen database migrations. Zero possible double‑bookings.

What we built

Everything Skedda did, plus the parts it wouldn't.

The brief was never "cheaper Skedda". It was a booking system that matches how NBT run their buildings — and that they can keep changing.

The savings

The bill stops. The asset stays.

What ends

The Skedda subscription, and with it the per-space pricing that made every new meeting room a line item. There is no per-user licence, no feature tier to upgrade into, and no annual increase to plan around. NBT can add a site or a dozen rooms without the cost of the software moving at all.

What replaces it

A one-off build and modest running costs on NBT's own Supabase and Vercel accounts. Because the platform is theirs, the spend stops being rent and starts being an asset on the business — one that keeps returning value every month the old subscription would have been charged.

The toolkit

Next.js 16ReactTypeScriptSupabasePostgreSQLRow-level securityRealtimeTailwind CSSPWAVercel

Paying for software you can't change?

We'll build you the version you own.

If a monthly subscription is running a core part of your business, there is usually a better version of it that belongs to you. Tell us what the tool does and what it won't do, and we'll tell you what replacing it looks like.