Skip to content
Built for a client

FJS Concierge

A private concierge firm's public site, and the back office behind it: requests come in, the desk sources partners, prices offers and tracks bookings, with a written history against every one.

The brief was a homepage. What the business actually needed was somewhere for the work to live once a request arrived, so that is what it became.

The FJS Concierge homepage
The story

A homepage that became an operating system

This started as a homepage redesign for a private concierge firm. The site needed to look like the service it was selling: unhurried, discreet, and clearly not a booking engine.

The redesign surfaced the real problem. A concierge desk lives or dies on what happens after a request arrives, and that part was happening in messages and spreadsheets. So the work widened into the system behind the site: sourcing suppliers, putting a request to them without revealing who is asking, pricing the result, turning it into an offer, and keeping the history of how it got there.

The two halves are deliberately different products with different rules. The public side is editorial and fast. The desk side is careful, permissioned, and structurally incapable of leaking what suppliers charge.

  1. 01

    The public site:Homepage redesign

    The original brief: make the front door look like the service.

    Open
  2. 02

    Client intake:From site to platform

    Offers, bookings and companies become records rather than messages.

    Open
  3. 03

    Partner portal and sourcing:The sourcing problem

    Getting supplier material into structured, priced listings without retyping it.

    Open
  4. 04

    Deployment and a pre-launch pass

    The admin subdomain, the access review, and the checks before it went out.

  5. 05

    The Control Tower

    Live counts, a priority queue, tasks, messages and the history behind each one.

What this shows

What this demonstrates

The engineering capabilities this engagement demonstrates, beyond the screens.

  • Reading past the brief to the process the business actually runs on
  • Designing for confidentiality as a structure rather than a policy
  • Building a partner-facing portal alongside a client-facing site without letting either see the other
  • Using AI where it earns its place, and refusing it where it would invent facts
  • Enforcing access at the endpoint rather than the page, and proving it with a script
  • Shipping a premium editorial front end and a dense operational back end in one codebase
FJS Concierge ecosystem

A public front door, and the desk that works behind it.

  1. The front door

    The public site

    An editorial front door that captures the request before it wanders off to a messaging app.

    For this kind of business the website is the first impression and the qualifying step at once. It has to establish that this is not a booking service, then get enough detail that the desk can act on the request.

    Core engineering challenge

    Making an editorial, image-led site fast and coherent, while quietly doing the commercial job of turning a visitor into a written brief.

    Open the site(opens in a new tab)
  2. Live inventory

    What the desk is holding

    The published side of a much richer internal record.

    A concierge sells reach, and reach has to be demonstrable before someone will make a request. This is the surface that does that without giving the trade away.

    Core engineering challenge

    Publishing genuinely useful detail while guaranteeing that supplier terms, cost prices and sourcing relationships cannot appear, no matter which endpoint is called or which page is added next.

    See what is published(opens in a new tab)
  3. The season

    The world calendar

    The dated events the year is planned around, one page per edition.

    Demand in this business is seasonal and event-shaped. Giving each edition its own page turns the calendar from a list into something the desk can point a client at.

    Core engineering challenge

    A content type that has to work as both an editorial page and a commercial anchor, without going stale when an edition passes.

    Open the calendar(opens in a new tab)
  4. The supply side

    Partner portal and sourcing

    Put a request to named suppliers, and let them quote without ever seeing the client.

    Sourcing is the actual work of a concierge desk. Doing it in a portal rather than in a mailbox means the responses are comparable, attributable and kept.

    Core engineering challenge

    Two audiences inside one application with genuinely opposed interests, where a single over-broad endpoint would leak the client to the supplier or one supplier's price to another.

    See the partner side(opens in a new tab)
  5. The brief

    Client intake

    The point where a visitor becomes a piece of work with a history.

    Everything downstream depends on the request being captured as a durable record rather than a message someone has to remember to act on.

    Core engineering challenge

    Asking a discerning client for enough detail to act on, without making the form feel like an application.

    See the intake(opens in a new tab)
Module by module

What we built

  1. 01The front door

    The public site

    The public surface: the story of the service, what the desk can reach, the offers the desk currently has published, and a request flow that gets a real brief written down. It is built to read like a magazine rather than a marketplace, because the proposition is access and judgement, not inventory.

    • Editorial pages describing the service, its reach and how it works
    • Published offers browsable by anyone, with the trade detail removed
    • A request flow that captures a usable brief rather than an email address
    • Membership and partner routes that lead to the right place for each audience
    Open the site(opens in a new tab)
    The FJS Concierge homepage
  2. 02Live inventory

    What the desk is holding

    The public inventory: what the desk currently has access to, presented for a client rather than for a supplier. What a visitor sees here is a deliberately reduced view of the internal record, and the reduction happens in the data layer rather than in the template, so a field that suppliers see can never arrive on a public page by accident.

    • A public view assembled from a separate, reduced shape rather than a filtered full record
    • Editorially curated rather than presented as a searchable directory
    • Shares its content model with the desk, so nothing is maintained twice
    • Trade-confidential fields never enter the public shape at all
    See what is published(opens in a new tab)
    The FJS Concierge listings page showing published offers
  3. 03The season

    The world calendar

    The fixed points in the calendar that this kind of client plans around, each edition with a page of its own so it can be linked, described and sold against rather than listed as a line of text.

    • One page per edition, individually linkable
    • Editions carry their own imagery
    • Presented as the season the desk works around, not as an events directory
    Open the calendar(opens in a new tab)
    The FJS Concierge world calendar
  4. 04The supply side

    Partner portal and sourcing

    The other half of the marketplace. The desk can put a live request out to specific partners and collect what comes back, and partners get their own portal to respond in. A partner sees the requirement; a partner never sees who is asking, and never sees what another partner quoted.

    • Requests put to named partners rather than broadcast
    • A partner-facing portal for responding, separate from the desk
    • Client identity withheld from the supply side by construction
    • Responses kept against the request, so the desk can compare them later
    • A route for new suppliers to put themselves forward
    See the partner side(opens in a new tab)
    The FJS Concierge partner listing page
  5. 05The brief

    Client intake

    The request flow, and the record it creates. A submitted request is not a notification email: it is the beginning of a thread the desk works, with sourcing, offers, bookings and messages hanging off it and a written history of how it progressed.

    • A brief captured as a record, not an email
    • Sourcing, offers and messages attach to the request
    • A written history so a colleague can pick the thread up
    • Feeds the same back office the rest of the desk runs on
    See the intake(opens in a new tab)
    The FJS Concierge request page
Under the hood

Engineering depth

Access enforced at the endpoint, and proved

Hiding a page is not access control. Every rule is enforced where the data is served rather than where it is rendered, and there is a script that walks the endpoints and asserts it, so the guarantee is checked rather than believed.

Confidentiality as a structure, not a policy

The public side is assembled from a separate, reduced shape rather than a full record with the sensitive fields filtered out in the template. A field that never enters the public shape cannot be leaked by a new page, a careless serialiser or a debugging endpoint. It is checked in production rather than assumed.

An admin surface that rewrites rather than redirects

The back office lives on its own subdomain, served by an internal rewrite instead of a redirect. Visitors never see admin paths appear in the address bar, and the two audiences never share a URL space.

Migrations written to survive being run twice

Twenty schema migrations applied by hand, each written so that running it a second time is harmless and so that not having run it yet is detectable. That is what makes a hand-applied schema safe to touch under time pressure.

AI that refuses the dishonest version of the job

Supplier material arrives as PDFs and photographs, and turning that into a structured, priced listing is genuinely tedious. So that step is assisted, including scans that need reading. The line is drawn where it should be: the concierge chat on the site answers only from what has actually been published, and declines rather than improvising, because a confident invention is worse than no answer in a business built on trust.

Supported for customers, not our build stack

The desk arranges access through partner suppliers in hospitality, travel and events. Those partners are the network the platform coordinates on the client's behalf, not services we built or operate.

Built for a client

A homepage redesign that turned into the operating system behind the desk, delivered in a few intense weeks and now live.

The brief was a homepage. What the business actually needed was somewhere for the work to live once a request arrived, so that is what it became.

Is the website the small half of your problem?

Often the site is fine and the business is being run in a spreadsheet behind it. We build the part that comes after the enquiry.

Prefer to talk? WhatsApp or Telegram.