Skip to content
Served logo

named client case · hospitality hiring

Served: Bobbie had the vision. I built the technology.

A hiring platform where hospitality workers and venues meet. The original was a Bubble prototype built by someone else. I rebuilt the whole product as a Next.js and Supabase application and took it live, so Bobbie runs the business and never has to think about the stack.

  • Bubble → Next.js + Supabase
  • Stripe subscriptions
  • installable web app
  • live since October 2026

Bobbie owns the product and the business. I own the technology: architecture, every release, the database, security and the hosting.

the original condition

A Bubble prototype nobody had documented, and a business that needed more than a prototype.

When I came in on 31 July 2026 there was no source, no documentation and no handover. The Bubble app held no real data and had never gone live. I spent three weeks mapping and stabilizing it in the editor, filing and fixing the web defects one batch at a time. Then the decision became clear: a hospitality social product with hiring, messaging, moderation and billing would outgrow Bubble before it had its first hundred users. On 22 August Bubble was frozen and the rebuild started.

what I built

One product, not a job board with a feed bolted on.

Everything a worker or a venue touches was rebuilt, with the social side and the hiring side designed as one thing.

Jobs and hiring

Roles filtered by section, venue type, contract, shift pattern and minimum pay, nearest first. Applications, a hiring board with interview, offer and hire, saved candidates and employer notes.

Profiles and private CVs

Workers get a free profile and a CV that is private by default and opened only for a purpose the worker allowed. Candidates are discoverable only by paying hiring teams, and only if they opt in.

Messaging and notifications

One conversation per pair of people, interview requests inside it, read state, and recipient-scoped notifications with email delivery.

Feed, Heard and venue pages

A social feed with media and reactions, Heard discussions that may be started anonymously, follows, venue pages with teams and invitations, and a Founding member badge for the first hundred real accounts.

Safety and admin

AI moderation with a human queue, reports and appeals, and account containment: suspended, banned, deactivated and reactivated states that each show the right message and nothing else.

Billing

Venues pay one flat monthly subscription through Stripe to post roles, scout, shortlist and send interview invites. No placement fees. Webhooks reconcile entitlement, with a grace period and the customer portal for changes.

by the numbers

The figures come from the project's own repository.

feature specifications
36
Each with stable requirements and the test IDs that prove it, kept in the repository.
written decisions
223
Every product and technical decision recorded with its reason, so nothing depends on memory.
unit and component tests
1,599
Plus 1,133 integration tests, at the 16 September gate. Accessibility contrast is a CI gate in both themes.
from first commit to production
9 weeks
23 August to late October 2026, in 184 commits, with Stripe, email and the signup flow live.

how it was built

From a frozen prototype to a live product.

  1. Discover and stabilize the Bubble app

    Three weeks of mapping the editor, recording observed behavior against intended rules, and fixing web defects in authorized batches. The evidence from this phase became the product's first specification.

  2. Freeze Bubble and rebuild in code

    From 23 August: accounts, roles, jobs, applications, hiring, messaging, notifications, feed, Heard, moderation, admin, CVs, billing and distance search, each with its own specification and tests.

  3. Redesign it as a social product

    Bobbie approved a social-product brief on 25 August. It became thirteen accepted decisions and a mobile-first identity: serif titles, a dark and a light theme, and the venue as the employer.

  4. Take it live and keep shipping

    Production Supabase from 23 September, signup email delivered, Stripe webhooks fixed and live. Since then: feature releases every few days from client requests, each one migrated, tested and deployed.

in the founder's words

“You have been amazing. You ran with my idea and made it secure, you saved me money, you made me feel confident in what we’re doing. All of the bugs you found, you handled like a champ lol. You give a ton of confidence to the average individual who just has an idea and is looking to bring it to fruition. The way you simplify rather complicated topics was really comforting. As a first time builder the process is already daunting and overwhelming. You really brought me back to earth. Your patience with someone like myself, without technical education is outstanding. I could not have been more glad to be working with you. And I look forward to what we are going to create together in the future.”
Bobbie, founder of Served

the stack

What it runs on, and why.

Next.js on Vercel

The application and its API in one codebase, server-rendered, installable as a progressive web app with an offline page.

Supabase and Postgres

Authorization enforced in three layers: route containment, server helpers and row-level security. UI visibility is never the control.

Stripe, Resend, Playwright

Subscriptions and the customer portal, transactional email, and browser tests across five viewports with Axe accessibility checks.

what this case does not claim

Named work, without invented performance theater.

  • No user, venue or revenue figure is published. Served went live in October 2026 and has not released usage numbers.
  • The test counts are the repository's own gates at a dated checkpoint, not a quality guarantee.
  • The Bubble original was built by someone else. The rebuild, and everything on this page, is my work.

Bobbie runs Served. I run the technology behind it. The same arrangement is open to you.

Tell me what your company runs on and who is holding it together today. In 30 minutes I'll tell you what it takes for me to own it.