Golf Club Companion
Run your golf club, all in one place.
Management software for golf courses and country clubs. Tee sheets, members, monthly invoicing, and staff operations in one web app, with self-serve signup and a Stripe-backed trial.
Visit golfclubcompanion.com
Problem
Smaller clubs run on a patchwork of a paper tee sheet, a spreadsheet of members, and a separate invoicing tool. Nothing talks to anything, and the staff carry the glue in their heads.
The vendors that do offer an all-in-one system price for large private clubs, with long contracts and onboarding calls.
What I built
Golf Club Companion gives a club one place for the day-to-day. A club signs up on its own, runs on a trial, and upgrades through Stripe Checkout with no sales call.
Staff and members get separate portals. Staff manage the tee sheet, members, membership types, and invoices. Members book tee times, read announcements, and pay their monthly bill.
Highlights
- Tee sheet with reservations, blocks, check-in, and lifecycle emails
- Members, membership types, and custom attributes
- Monthly invoicing with Stripe Checkout and auto-pay
- Self-serve club signup, trial, and SaaS upgrade
- Announcements, member dashboard, and profile management
- Durable email and invoice workflows through an Absurd worker
Architecture
- Frontend
- Vite and React SPA with Redux Toolkit for client state, Radix primitives, and Tailwind.
- API
- Express with JWT auth. Multi-tenant by club, with staff and member roles.
- Worker
- Built from the same backend output. Processes email, invoices, and reservation lifecycle tasks against Postgres.
- Payments
- Stripe Checkout for invoices and the SaaS subscription. Webhooks are the only writer of billing state.
- Resend or SendGrid behind one adapter, sent from workflows so a failed send retries.
Stack
- React 19
- TypeScript
- Vite
- Redux Toolkit
- Tailwind CSS
- Radix UI
- Express
- PostgreSQL
- Stripe
- Absurd
- Resend