Case / golf scorecard

Fairway

Next.js / TypeScript / Claude API

Fairway is a full-stack app for logging golf rounds hole by hole, tracking statistics over time, and receiving a Claude-powered coaching analysis based on the scorecard.

Problem

A paper scorecard gives no data to act on. Golfers who want to improve need to track putts, GIR, and fairway hits per hole and get feedback on what actually cost strokes.

Solution

I built a Next.js app with a hole-by-hole form, localStorage persistence without accounts, statistics charts, screenshot import via Claude vision, and a server-side AI route that returns a structured coaching report.

Technical decisions
API key kept server-side only via a Next.js route handler — never exposed to the client.Zod validation on both the request and the AI response to guarantee structured data.localStorage so the app works without a backend or account.Dynamic import with ssr:false for WebGL components to avoid SSR issues.Render for straightforward deployment of a full-stack Next.js app.
What it shows

The project shows that I can build AI integrations in a secure and structured way: the right layer for the right responsibility, without exposing sensitive keys or returning unvalidated data.

Tech
Next.js 16TypeScriptTailwind v4Anthropic SDKZodWebGLRender