Base Blu Training Club

A distinctive club website that keeps its own voice while using QZee as the operational truth for services, availability, identity and reservations.

2026 · live product site · design + engineering

Role
Product architecture, UX, interface and integration
Brand owner
Base Blu controls proposition and editorial content
Operating system
QZee controls services, customers, slots and bookings
Repository
QZee-Ltd/base-blu-web · production status qualified
Live Base Blu Training Club homepage with editorial imagery and booking routes
Live product capture · 14 July 2026The club proposition leads the experience while class and booking routes remain close enough for a customer to act.

Make the website feel independent without making the data independent

The critical design decision was where Base Blu should own the experience and where QZee had to remain authoritative.

Base Blu needed a site with the confidence and visual character of a specialist training club. It also needed customers to understand classes, inspect prices, find current sessions and reserve a place. Rebuilding those operational records inside a content system would have created two class catalogues, two calendars and an avoidable reconciliation problem.

The resulting architecture separates presentation ownership from operational ownership. Base Blu owns its proposition, editorial hierarchy, photography and customer-facing tone. QZee remains the source of truth for venue data, services, durations, prices, slots, customer identity, consultation or waiver questions, holds and confirmed bookings. The customer experiences one coherent journey, but the implementation never pretends the club website is the booking ledger.

QDev designed and implemented the website, integration and transaction flow in the QZee-Ltd/base-blu-web repository. The live public site and reviewed code support the capabilities described here. The repository contains Render deployment configuration, but the current production commit was not independently reconciled during this publication pass, so production status is intentionally qualified rather than overstated.

Brand, integration and booking were designed as one release

  1. 2026 · Model

    Assign ownership before designing screens

    Defined which content belongs to Base Blu and which records remain owned by QZee, including venue, services, availability, identity and bookings.

  2. 2026 · Editorial

    Create a club-specific public experience

    Built the proposition, class comparison, pricing, timetable and supporting pages around Base Blu's own information hierarchy.

  3. 2026 · Transaction

    Implement the route to fresh QZee state

    Added authenticated booking with fresh slot checks, holds, conditional questions, confirmation and timetable revalidation. Authenticated runtime capture remains pending.

  4. 14 July 2026

    Capture and qualify the live state

    Recorded the public site and checked the repository-backed integration. Production lineage remains pending a commit-level reconciliation.

The branded layer, operational layer and seams between them

Capability status definitions

  • LiveAvailable in a public or deployed product.
  • ImplementedBuilt, but release or approval is not evidenced.
  • DemonstrationA labelled example using simulated data.
  • ExploratoryResearch, specification or prototype only.
Live

Editorial product site

A Base Blu-owned experience for the club proposition, classes, pricing and action paths.

  • Brand and proposition
  • Class education
  • Pricing and timetable routes
  • Responsive public pages

RepositoryQZee-Ltd/base-blu-web

Live

Public QZee reads

GraphQL data keeps public service information aligned with the operating product.

  • Venue and class records
  • Descriptions and duration
  • Current prices
  • Timetable presentation

RepositoryQZee API

Implemented

Authenticated booking

Repository evidence maps the transactional route from a fresh slot to a confirmed QZee reservation.

  • Customer Firebase identity
  • Fresh availability query
  • Temporary slot hold
  • Confirmed booking write

RepositoryBase Blu web + QZee API

Implemented

Conditional forms

Venue-configured consultation or waiver questions appear only when required for the reservation.

  • Question retrieval
  • Conditional booking step
  • Authenticated answer submission
  • Reservation context preserved

RepositoryQZee booking contract

Implemented

Resilience layer

Public pages can remain useful during a read failure without allowing fallback data into a transaction.

  • Cacheable editorial reads
  • Public-content fallback
  • Dynamic booking route
  • Post-booking timetable revalidation

RepositoryQZee-Ltd/base-blu-web

Implemented

Request and contact routes

Non-standard interest can return to QZee-linked workflows instead of becoming an untracked inbox fragment.

  • Request-a-slot path
  • Contact submission
  • Venue context
  • Server-mediated writes

RepositoryBase Blu web + QZee API

The interface changes ownership without making the customer feel the seam

From class research to confirmation

  1. ChooseUnderstand a class, then request current QZee availability.
  2. IdentifySign in or create the QZee customer identity used for booking.
  3. PrepareHold the slot and answer venue-set questions when required.
  4. ConfirmWrite the reservation to QZee and refresh the public timetable.

Editorial pages can tolerate cached or fallback content. Slot selection and booking do not use that fallback path and must resolve fresh transactional state.

Inspect booking (opens in a new tab)

The public layer over operational truth

Live class and pricing views show how the club's editorial voice and QZee service records become one customer-facing product.

Live Base Blu classes page showing training services, descriptions, durations and prices
Live product capture · 14 July 2026The branded catalogue turns QZee service records into a clear editorial comparison before a customer looks for a session.
Base Blu pricing page with per-session prices and booking calls to action
Live product capture · 13 July 2026Pricing and timetable resolve to the same service records, reducing disagreement between research and booking.

The integration choices that prevent drift

  1. Keep QZee authoritative

    Decision
    Read operational class and booking state from QZee instead of copying it into the website CMS.
    Why
    Prices, availability and reservations must agree with the system the venue uses to operate.
    Consequence
    Base Blu can own presentation without maintaining a second catalogue, calendar or customer store.
    Tradeoff
    The public experience depends on a clear integration contract and considered failure handling.
  2. Split editorial freshness from transactional freshness

    Decision
    Allow cache and fallback for public explanation, but force fresh reads for slot selection and booking.
    Why
    A useful class description can survive a short service interruption; a stale available slot cannot.
    Consequence
    The public site remains resilient without disguising uncertain inventory as bookable capacity.
    Tradeoff
    The application maintains two deliberate data policies instead of one universal fetch strategy.
  3. Respect the venue timezone

    Decision
    Interpret and present timetable state through a venue-aware timezone helper.
    Why
    A class is a local appointment, and server or visitor timezone defaults can shift the apparent day or time.
    Consequence
    Research, selection and confirmation can refer to the same local session.
    Tradeoff
    Date handling requires explicit conversion and tests around daylight-saving changes.
  4. Use a server hop at the integration edge

    Decision
    Mediate selected GraphQL operations through the application server rather than exposing every external request directly to the browser.
    Why
    The boundary needs controlled inputs, predictable cross-origin behaviour and a place to keep sensitive handling out of client logs.
    Consequence
    The website can constrain requests and avoid logging customer details while still using QZee services.
    Tradeoff
    An additional application boundary adds latency and must preserve errors accurately for the interface.
  5. Reuse QZee customer identity

    Decision
    Authenticate the reservation with the existing QZee Firebase customer rather than issue a Base Blu-only account.
    Why
    The booking and customer record already belong to QZee, and duplicate identity would create reconciliation work.
    Consequence
    A customer can move from the club site into an authenticated booking without another user database.
    Tradeoff
    Authentication errors and recovery need to feel native to Base Blu while following QZee rules.

Two products, one controlled integration boundary

Live surface from the club product repository

Base Blu public site

Live

Owns Base Blu's editorial interface, proposition, class presentation and public booking entry points.

  • Next.js App Router
  • TypeScript
  • Tailwind
  • Render

The public site and dated captures are inspectable. Its exact production commit has not been reconciled.

Repository-backed transaction boundary

QZee-Ltd/base-blu-web booking integration

Implemented

Orchestrates authenticated availability, holds, conditional questions, reservation writes and timetable revalidation.

  • Next.js App Router
  • TypeScript
  • QZee GraphQL

Reviewed code supports the complete path. An approved authenticated runtime capture and production-commit reconciliation remain missing.

Operational product service

QZee API

Live

Remains authoritative for the venue, services, prices, slots, holds, questions, customers and confirmed bookings.

  • GraphQL
  • Booking domain

The integration is directly evidenced in the Base Blu repository. QZee is maintained as a separate product boundary.

Shared authentication boundary

QZee customer identity

Implemented

Authenticates the customer used by the reservation and keeps identity attached to the QZee booking record.

  • Firebase Authentication

Identity reuse is implementation-backed. This case does not claim an independent authentication or security audit.

A club-owned experience without a second source of truth

Base Blu presents its training offer with a distinctive voice while public operational facts continue to come from QZee. The implemented booking path moves from proposition to class, current session, identity, required questions and confirmation without creating another calendar or customer database to reconcile.

The next evidence step is to bind the live deployment to a verified commit and publish approved measures such as booking completion or fallback frequency. Those outcomes are deliberately absent until the evidence exists.

Make your site part of the product.

Connect your brand, operating data and customer journey through a product build designed to stay in sync.

Discuss a project