Case Study: BookitSocial

I built their entire platform.

BookitSocial is a social booking marketplace for the Australian market. When Social ARC Pty Ltd came to me, they had an idea. When we finished, they had a live mobile app, two web panels, a backend engine, and a cloud infrastructure that could handle real growth.

I did not consult. I did not advise. I built.

4
Products delivered
~100
Users and growing
Live
Production app
AU
Client country

// What I delivered

Four products. One engineer.

Most engineers build one thing. I built the whole ecosystem. Every screen a user touches, every click a host makes, every payment that moves connects to something I wrote.

Cross-Platform Mobile App

React Native (Expo) - iOS and Android

A single codebase that runs natively on both iPhone and Android. Users browse events, make bookings, pay securely, receive push notifications, and scan QR codes at venue entry. Felt native, not like a website pretending to be an app.

React NativeExpoiOSAndroidPush Notifications

Host Dashboard

Next.js web application for event organizers

A powerful but clean web panel where hosts create events, manage bookings, set ticket limits, and track earnings. Integrated Google Places autocomplete so every event has a precise, map-ready location. Real-time booking feeds so hosts always know who is coming.

Next.jsReact Hook FormZodGoogle Places API

Admin Control Panel

Next.js web application for platform operations

A separate, fully secured admin portal for the business team to manage users, moderate events, issue refunds, and monitor platform health. Role-based access control so the right people see only what they need.

Next.jsRBACPlatform Monitoring

The Backend Engine

Node.js and TypeScript, built from scratch

The brain that powers everything above. Handles all bookings, payments, notifications, user sessions, and business rules. Designed to be fast, safe, and impossible to game. No off-the-shelf booking engine was used - every rule was coded specifically for how BookitSocial works.

Node.jsTypeScriptExpress.jsREST APISocket.IO

// Engineering decisions

The hard parts, solved.

Building a booking platform sounds straightforward until you hit the edge cases. Here are the real problems I solved, explained for both technical and non-technical readers.

The Double-Booking Problem

The real-world problem

When two people try to buy the last ticket at the exact same moment, who gets it?

How I solved it

Implemented PostgreSQL Advisory Locks (pg_advisory_xact_lock) with FOR UPDATE row locking to serialize concurrent transactions at the database engine level.

Outcome

Zero double-bookings in production. Both users get an instant response. One gets the ticket, one sees it is sold out. No overselling, ever.

PostgreSQL LockingConcurrency ControlRace Condition Safety

Money That Actually Moves Correctly

The real-world problem

A guest pays, BookitSocial takes a cut, the host gets the rest. Simple to say. Hard to build safely.

How I solved it

Stripe Connect with delayed payouts triggered 48 hours post-event via background cron jobs. Payout amounts are calculated server-side after deducting platform fees. QR code check-in is required before any payout is released.

Outcome

Hosts get paid automatically after every event with no manual intervention. Fraud is mitigated by the 48-hour window and attendance verification.

Stripe ConnectAutomated PayoutsPlatform FeesAnti-Fraud

Notifications That Actually Land

The real-world problem

Calendar invites sent as file attachments often end up in spam. Push notifications to dead phones just waste resources.

How I solved it

Deep-linked Google Calendar integration bypasses .ics file downloads entirely. Firebase FCM token lifecycle management with automated stale token cleanup via scheduled background jobs.

Outcome

Guests receive calendar events that appear legitimate and are pre-filled with booking codes and venue maps. Push delivery rates stay high because dead tokens are automatically removed.

Firebase FCMGoogle CalendarDeep LinksBullMQ

Moving the Entire Platform to AWS, Live

The real-world problem

The platform started on Azure. It needed to move to AWS. The app could not go down during the migration.

How I solved it

Parallel infrastructure provisioning with database logical replication, off-peak DNS cutover, and PM2 cluster mode for instant crash recovery on the new environment.

Outcome

Zero downtime. Zero data loss. Users experienced nothing. The team just woke up on AWS one morning.

AWS EC2AWS RDSPM2 ClusterZero-Downtime MigrationDNS Cutover

// Technology

The full stack

Every tool was chosen deliberately for the specific problem it solves in a booking marketplace context.

Mobile App

React NativeExpoiOSAndroid

Web Panels

Next.jsReact Hook FormZodTypeScript

Backend

Node.jsExpress.jsTypeScriptSocket.IOBullMQ

Database

PostgreSQLRedisAWS RDS

Cloud

AWS EC2CloudflareAWS S3PM2

Payments and Auth

Stripe ConnectFirebase AuthFirebase FCM

APIs

Google PlacesGoogle Static MapsGoogle Calendar

// Platform Status

Live, growing, and maintained.

BookitSocial is live on both the App Store and Google Play, steadily approaching 100 active users. I remain the primary engineer, shipping features, fixing issues, and keeping the infrastructure healthy. This is what long-term ownership looks like.