Case study

TG Spaces

A studio-booking and events platform we built end-to-end for a Dutch co-working and creative venue — staff now run the entire business from one admin panel, with no third-party booking fees and no code needed

Project overview

TG Spaces (tg-spaces.com) is a booking and events platform we built end-to-end for a Dutch co-working and creative venue. The client was running bookings, invoicing, and scheduling by hand across disconnected tools — and paying platform fees on every booking. We replaced all of it with one production Next.js application covering the public marketing site, a live booking flow, Google Calendar availability, invoicing, and email — all tied together by a large, role-aware admin panel.

The heart of the platform is that admin panel: a 24-section back office where staff manage bookings, events, organisers, studios, pricing, invoices, discounts, content, and the team itself. We built it on strict modular conventions — single sources of truth, typed registries, and a tested booking lifecycle — so it stays maintainable as it grows. The result: staff run the entire venue from the admin panel, with no third-party booking fees and no code needed.

The challenge

Problem: The venue was running bookings, invoicing, and scheduling by hand across disconnected tools, and paying third-party platform fees on every booking. Staff needed one system that runs the whole business — public site included — without writing code or depending on external booking software.

Technical implementation

Admin panel (the core)

A 24-section back office that runs the venue: bookings, events, organisers, calendar, clients, invoices, discounts, studios, pricing, add-ons, content/pages, blog, FAQ, announcements, emails, team/RBAC, analytics and settings. Server components with interactive client islands, grouped by concern.

Booking lifecycle engine

A tested, ordering-sensitive state machine for payments and access. Slot availability is the intersection of the booking table and each studio's Google Calendar free/busy, with overlap and conflict checks centralised in one module.

Bilingual, content-driven site

Full EN/NL localisation via next-intl with a per-locale DB overlay, plus an editable content/pages system so the public marketing site is managed entirely from the admin panel.

Modular by design

Built on strict 'single source of truth' conventions — registries for statuses and permissions, pure logic separated from framework code, and a generated code map. Adding a content type automatically wires up its nav and access rules.

Key features

  • Studio and event bookings with manual-approval and payment lifecycle
  • Google Calendar availability sync (free/busy gating per studio)
  • Role-based admin access with capability and nav-visibility controls
  • Invoicing with PDF generation, discounts, and a redemption ledger
  • Transactional, localised emails (Resend) matched to the booker's language
  • Bilingual EN/NL public site managed from the admin panel
  • Rate limiting, Cloudflare Turnstile, and consent-gated analytics

Need a system like this?

Tell us where work gets stuck — in one call you'll hear what it takes to remove it.

30 minutes · free · no obligation

Impact

24
Admin sections
~113
API routes
2
Languages (EN/NL)

Technologies used

Next.js 16React 19TypeScriptPrismaSupabaseTailwind v4Google CalendarResendUpstashVercel

Business value

  • One platform replaces manual booking, invoicing, scheduling — and third-party booking fees
  • Non-technical staff run the entire venue from the admin panel
  • Modular foundation makes new features cheap to add safely