Case Study

Guestlist

A modern concierge platform for nightlife, services, and experiences.

ClientGuestlist
RoleLead Front-End Engineer
Year2025
TimelineSept 2025 – Present
Scope of WorkWeb & Mobile Front-End, UI Design, Team Lead
LocationBali, Indonesia
Visit live site

Drag to rotate

Overview

Guestlist is a concierge platform that curates Bali's nightlife, experiences, and private services into one place — delivered as a web app, native mobile apps for guests and for partners, and an internal back office that ties it all together. As Lead Front-End Engineer, I carried the product from problem to interface across every surface — defining solutions, designing in Figma, and building fast, polished experiences in Next.js and React Native while leading a team of five engineers through more than three major redesigns.

0
Products in one ecosystem
0+
Back-office modules
0
Front-end engineers led
Live
In production at guestlist.id
Discovery built around how people explore Bali
01

Discovery built around how people explore Bali

The homepage leads with a single search and four clear categories — Entertainment, Experiences, In-Room Service, and Rentals — so anyone finds what they need in seconds. Below it, guests browse by district such as Ubud, Canggu, Uluwatu, and Nusa Penida, turning a huge catalog into something that feels local and personal.

A catalog that scales to hundreds of services
02

A catalog that scales to hundreds of services

Every experience lives in a searchable catalog with category and sub-category filters. Each card surfaces the essentials — image, category, and starting price — through a single reusable component, so the grid stays fast and readable no matter how many partners come on board.

A booking flow that handles real-world complexity
03

A booking flow that handles real-world complexity

Service detail pages bring together a media gallery, live date selection, multiple packages, and optional promoter codes — all wired to live data through React Query. The interface keeps a complex, stateful flow feeling calm and guided, from first glance to the moment of booking.

From payment to a ticket in the guest's hand
From payment to a ticket in the guest's hand
04

From payment to a ticket in the guest's hand

Checkout integrates a payment gateway covering bank transfer, e-wallets, QRIS, cards, and more — complete with a countdown and a live order summary. Once paid, guests receive a confirmed e-ticket with a scannable QR code they can download, closing the journey end to end.

The full Guestlist, native on every phone
05

The full Guestlist, native on every phone

The guest experience is rebuilt for iOS and Android in React Native, mirroring the web journey end to end. Guests sign in or continue as a guest, browse the four core categories, search the full catalog, and open any service into a rich detail page with date selection, packages, and an optional promoter code — the same booking flow as the web, reshaped for a screen you hold in one hand.

A mobile cockpit for partners and promoters
06

A mobile cockpit for partners and promoters

Partners and promoters get their own React Native app built around earning. A performance dashboard surfaces leads, pending orders, and commission at a glance; an earnings wallet handles available balance, cash-out, and transaction history; and real-time notifications announce each new booking. Built-in video tutorials and partnership tools turn the affiliate side of the business into a self-service mobile product.

One back office, four roles, twenty-plus modules
One back office, four roles, twenty-plus modules
07

One back office, four roles, twenty-plus modules

Everything above is run from the Guestlist Back Office — a single admin dashboard with one login serving four roles: admin, sales, partner, and promoter. More than twenty modules sit behind the sidebar, from bookings, services, and locations to financials, approvals, marketing, affiliates, and users. The home view distills the whole operation into KPIs and live charts — orders, revenue, category share, and booking trends — so each team sees exactly the slice of the business it owns.

Behind the build

My role

Next.jsReactReact NativeTypeScriptTailwind CSSReact Query
  • 01Defined solutions to product problems with the PM, CTO, and design team
  • 02Designed the interface in Figma, then turned it into production UI
  • 03Sliced the UI and integrated 20+ APIs from the back-end team
  • 04Extended the product to native iOS and Android with React Native — guest, partner, and promoter apps
  • 05Built the Guestlist Back Office — one dashboard, four roles, and 20+ modules
  • 06Led, delegated, and reviewed the work of five front-end engineers
  • 07Coordinated daily with Back-End, QA, Design, and Product

One product language across four surfaces

Guestlist isn't one app but four — a web platform, two React Native apps, and an internal back office — and my job as front-end lead was to keep them feeling like one product. Shared patterns, components, and a single visual identity carry from the website into the guest and partner apps and the admin dashboard, so a guest, a promoter, and an internal operator all meet the same Guestlist no matter where they touch it.

A reusable system, not just screens

With more than three major redesigns over the project's life, the front end had to absorb change cheaply. I built it as a typed component system in Next.js, TypeScript, and Tailwind, so new pages, services, and flows ship from shared building blocks — keeping the product cohesive as it kept evolving.

Fast, multilingual, and ready to scale

Data-heavy pages stay responsive across devices through React Query caching and careful component boundaries, while a built-in language layer serves both local and international guests. The result is a platform that feels quick and effortless — and that the team can keep extending well beyond launch.