fleet: 6 agents · evo-x2 ⇄ macbook0.04% err

Work

Real systems I've shipped for real clients — the hard problems and how I built them.

live

LifePlace

view live ↗
Problem

Run the venue's whole inquiry → event → completion workflow; replace manual back-and-forth and rented CRMs.

What I built

A venue platform built since 2024 for an events venue in Cavite, Philippines — live as a Next 15 + Supabase/Drizzle + Inngest monorepo: client portal, admin CRM, and an Expo mobile app. 7-package monorepo with a clean domain layer (workflow engine, pricing, loyalty, DPA); an event-sourced Stripe payment state machine with idempotent completion + a date-reservation exclusion constraint; Inngest background jobs; React-PDF documents; Expo mobile app.

Receipts
  • Web + admin + mobile
  • Web & admin Sentry-instrumented
  • Region ap-southeast-1
Hard problem

Payment-state-machine correctness (idempotent completion + date-reservation exclusion) + integrated domain complexity, shipped solo.

live · client

Three Rivers Vacation Rentals

view live ↗
Problem

Take a vacation-rental business's 8 properties off the OTAs into a direct-booking site the owner controls.

What I built

Next 16; KV-backed hold/availability state; 6 crons (channel-sync, hold-expiry, check-in instructions, backups); multi-tenant isolation (withTenant() strict-throw + a check:tenant-leak CI gate, built for a future 2nd client); 3 payment rails (Stripe / ACH / Zelle); Airbnb photo/review scrapers; per-listing iCal.

Receipts
  • 8 live listings
  • Uptime-monitored (an outage was detected and auto-resolved via Sentry)
  • Cloudflare R2
Hard problem

Booking correctness (hold expiry / availability) + multi-tenancy built in from day one.

soft-launch · on the App Store

pocketplur

view live ↗
Problem

A festival companion — lineups, conflict-aware itineraries, and crew coordination at no-signal venues.

What I built

pnpm web+mobile+shared monorepo (strict DRY); Expo SDK 55 iOS app (live on the App Store); BLE/UWB mesh messaging ("Rally") for offline crew coordination; offline-first mutation queue + sync; 3 Supabase Edge Functions; AI artist discovery (Spotify → Anthropic); Serwist PWA; RLS.

Receipts
  • App Store listing (apps.apple.com/app/id6768796421)
  • Web: zero user-facing errors over 90 days
  • 131 database migrations
Hard problem

Offline-first + peer-to-peer BLE/UWB mesh in no-signal environments — the distinctive distributed-systems problem.

live · open-source
Problem

An open-source, self-hostable multi-tenant booking platform for service businesses (barbershops, salons, studios), with a commercial open-core tier.

What I built

Turborepo monorepo — NestJS + Prisma 6 API, Next.js web, Expo mobile, and shared / ui / embed-widget / mcp-server / ee packages. Postgres row-level-security multi-tenancy enforced via Prisma Client Extensions + request-scoped context (nestjs-cls); Stripe Connect Express (destination charges + platform fee); an open-core licensing model (AGPL core + an EE tier gated by a @RequiresLicense() guard); an embeddable booking widget; and an MCP server so AI agents can discover businesses and create bookings. BullMQ workers; Docker Compose self-host.

Receipts
  • Open-source (AGPL-3.0) · live demo at savspot.co
  • 96 Prisma models · 27 migrations
  • 223 test files
Hard problem

RLS-enforced multi-tenant isolation + open-core licensing architecture + an MCP server for agent-driven booking — platform engineering, not just an app.