CBCharlie Barmore
← All projects
ForePool logo

ForePool

A live golf pool app: draft your squad, track scores in real time, and run the whole pool from your phone instead of a spreadsheet.

Beta For golf buddies running a pool
ForePool home: the pool leaderboard for a Demo Pool on the RBC Canadian Open, ranking each member by their top 6 of 10 drafted golfers with a tiebreaker, every member's roster shown, and a live Pool Chat panel on the right.

About

ForePool is the golf pool my friends and I have run for years, finally as an app. For the majors and the signature events, we each draft a squad of players and compete, but I was running the whole thing by hand in Excel: chasing everyone’s picks, checking them against the actual field, and updating scores all weekend. It ate hours every tournament.

So I built ForePool. Everyone makes their picks on their phone, the scoring is live, and both the tournament leaderboard and the pool standings update in real time. There’s a built-in chat so the trash talk lives in the app instead of a group text. Draft your squad from odds-seeded tiers, track your roster through the tournament, and run a pool with fully customizable scoring. There’s even an AI caddie, a Claude assistant that knows your pool’s live state, so you can ask who you need to fade on Sunday. Your pool, your rules.

How I built it

Fore Pool is built 100% by me solo, with coding agents as the engineering team. One React codebase ships as both the web app and the iOS app.

  • A self-running data pipeline. Every five minutes during tournament week, the server auto-detects the live PGA event from ESPN and syncs the leaderboard, with bounds checks and guards so one bad API response can’t corrupt the standings.
  • A configurable pool engine. The field seeds into draft tiers ranked by live Vegas odds; commissioners control groups, captain’s picks, best-N-of-M counting scores, and tiebreakers, and pools run through a full setup-to-completed lifecycle.
  • An AI caddie that knows your pool. A Claude chat grounded in your live state, your roster, the standings, the scores, so you can ask who you need to fade on Sunday.

Stack

React 18TypeScriptExpressPostgresRailwayCapacitor (iOS)Claude