The console, the front, and the layer between them

This page is generated from the module list. Every module records which surface it lives on, so adding one changes the shape of the page rather than the length of a paragraph.

Operator consoleHarbour Lane Studios
  • Service and route builder5 steps, validated one at a time
  • Capacity and calendarPer service, per location, per day
  • Pricing rulesResolution order is shown, not inferred
  • Staff and rolesFour built-in roles, scoped per location
Harbour Lane StudiosCustomer-facing front
  • Harbour tour, 90 minutesfrom $34
  • Sunset sail, 3 hoursfrom $89
  • Private charteron request

Operator console

The console is where the work happens. An operator opens it in the morning and leaves it open.

  • Console

    Service and route builder

    Operators build what they sell on a map and a calendar rather than in a form, and see the shape of it before committing.

    A service is a place, a duration and a set of rules about when it can run. The builder puts the first two on a map and a calendar, so an operator sees the distance, the travel time and the gap between two departures while they are setting them, instead of finding out from a customer complaint. Multi-leg routes carry their via points, and each leg keeps its own duration.

    In practice5 steps, validated one at a time

  • Console

    Capacity and calendar

    How many can be sold, on which days, with the exceptions that make a real calendar different from a repeating rule.

    Capacity is a weekly pattern plus the exceptions: a public holiday, a boat in for repair, a guide who only works Thursdays. Both live in the same view, because a rule you cannot see the exceptions to is a rule that gets overridden in a spreadsheet.

    In practicePer service, per location, per day

  • Console

    Pricing rules

    Season, group size, lead time and channel, resolved in a stated order so two rules cannot silently disagree.

    Rules stack, and the order they resolve in is written on the screen rather than implied by the order they were created in. An operator can enter a date, a group size and a channel and see which rules fired and what the customer would be quoted, before the rule is saved.

    In practiceResolution order is shown, not inferred

  • Console

    Staff and roles

    Who can see what, scoped to a location rather than granted account-wide.

    A role is a set of permissions and a scope. Scope is the half that most systems leave out: a location manager needs full rights over one location's records and no rights at all over another's, and an account-wide role cannot express that.

    In practiceFour built-in roles, scoped per location

One data layer

Two surfaces, one set of records. Nothing is copied between them.

  • Both

    Tenant configuration

    Each connected location's branding, domain, available services and payment settings, edited in the console and read by that location's front.

    This is the record that makes the two surfaces one product. The console edits it; the front renders from it. Colors, logo, domain, which services are offered and which payment methods are accepted are all fields here, so a new location is a row rather than a deployment.

    In practiceOne row per location

  • Both

    Shared inventory

    One set of records for what is available. The console writes it, every front reads it, and there is no copy in between to fall behind.

    Availability is computed from capacity minus what is already booked, at request time. There is no cached availability table and no nightly job to rebuild one, which is why a change made in the console is visible on the next page load rather than the next morning.

    In practiceComputed per request, not cached

  • Both

    Audit log

    Every change to a record, with the account that made it and the value it replaced.

    A booking platform is a place where money and time are agreed, so the useful question is not what a record says now but what it said an hour ago and who changed it. The log is readable per tenant by that tenant's own administrators, and it is the first place support looks.

    In practiceRetained 24 months

Customer-facing front

Every connected location gets its own site. Same records, its own colors, its own domain.

  • Front

    Search and booking

    One search across everything a location offers, and a booking flow that works without an account.

    A customer searching does not know or care which module supplies what they are looking for. One field covers services, dates and party size, and the results are what is actually available. Booking without an account is the default: an account requirement at checkout is the largest single drop-off in this category.

    In practiceNo account required to book

  • Front

    Confirmation and tickets

    The confirmation a customer keeps, in the format they will actually have on them on the day.

    An email and a wallet pass, both generated from the same booking record. Changes made afterwards in the console reissue both, because a customer holding a ticket with the old time is the failure this module exists to prevent.

    In practiceEmail and wallet pass from one record

  • Front

    White-label front

    Each location's site, in its own colors and on its own domain, from the same codebase.

    Branding is read from the tenant record at request time, so there is no fork and no build step per location. What a location can change is bounded on purpose: colors, logo, typeface pairing, which services show and which trust details are printed. Layout is not a field, because a layout every tenant can move is a layout nobody can support.

    In practiceOne codebase, one row per storefront

How your data is held

Per tenant, and every change has a name on it.

Turnhouse keeps operator data separated per tenant and logs every change against the account that made it. Access is by role, and a location's staff can only read the records for that location.

Certification details belong here. Replace this paragraph with the audits your company actually holds — this template ships no badges, because a badge for an audit you have not passed is a claim, not a design element.

Developer documentation

Reference documentation lives outside this site, in a documentation tool built for it. Point this link at your own.

Read the documentation

See it with your own inventory in it.

A demo runs on your services and your pricing, not on a sample account. Thirty minutes, and you keep the setup.

Book a demo