The situation
When I took over technology at Epic Golf Club, a national private golf membership with over 1,000 members, the stack was actively working against the business. The member site was a brittle WordPress install, the mobile app was deprecated and down to a single working feature (a course map), and the company’s data lived in three places that never agreed: the WordPress database, the app’s database, and HubSpot. Staff spent their days reconciling systems instead of serving members, and no one could answer basic questions like “who is actually an active member?” without cross-referencing spreadsheets.
What I built
I rebuilt the entire platform around a single source of truth. Today, one React / React Native codebase ships the member experience to web, iOS, and Android simultaneously, backed by a central Postgres database (Supabase) that every system reads from and writes to. HubSpot and Stripe stay in bidirectional sync with that core automatically: membership records, addresses, club affiliations, payment methods, and subscriptions are consistent everywhere, all the time. The member experience went from “log in and hope” to a polished product: tee-time requests with concierge messaging, event registration with lotteries and waitlists, guest management, billing self-service, exclusive experiences, and more.
The bigger transformation was operational. I built the company a proprietary back office that runs the entire business: membership lifecycle from application through invite, checkout, onboarding, renewal, suspension, and cancellation; tee-time and host management; events with packages, refunds, and seat tracking; billing with automated fee handling and accounting-ready reconciliation exports; role-based access control and full audit logging. Behind it sits an automation layer of 120+ production n8n workflows handling payments, SMS and email messaging, reminders, HubSpot sync, anomaly alerts, and self-healing cleanup jobs, so routine operations happen without a human touching them. The whole platform runs on Azure (Front Door, static hosting, container apps) with Supabase, Stripe, Twilio, and SendGrid, with monitoring and alerting so problems surface before members notice. On the property side, I rebuilt the club’s network on enterprise-grade UniFi with segmented VLANs, proper firewalling, and centrally managed switching and access points, so the physical infrastructure is as reliable and secure as the platform running on it. I also moved the company off Google Workspace with a full G Suite to Microsoft 365 migration, and standardized the staff on Entra-joined HP EliteBooks, locked down with security policies and centrally managed through Intune.
Results
The result: a company that once ran on duct tape now runs on one coherent system, with data it can trust, a member experience worthy of a luxury brand, and an operations team amplified by automation instead of buried in manual work.