Free website build · 2 a month→

Case study · Coursework

Study your game.

Track every round, share it live with the family, and keep your coach in the loop. Built for players, families, and coaches.

Visit the live site

Role

Design + build, end to end

Year

2026

Stack

Next.js · AWS Serverless

Status

Live

The brief

It started with my niece.

My niece plays competitive student golf and wanted a better way to track her rounds, shot by shot, and actually see how she was progressing without bro-talking through group chats, living in spreadsheets, or emailing every round to her coach. What began as a personal tracker for her morphed into something built for her and her coach together: same rounds, same data, two perspectives. Coach sees the roster, player sees the transcript, and “office hours” stops being a Google Sheet.

From there it grew. Anyone she trusts can claim a scorekeeper code for that round and log her shots in real time: dad on the cart, a buddy on the bag, a sibling at the clubhouse. Family, friends, or a remote coach who can't make it to the course get a live follow link: tap it, watch the scorecard update hole by hole, read the notes the scorekeeper drops along the way. No account, no install. It also handles tournaments end-to-end: leaderboards, attestations, and admin tooling. But the spine hasn't changed: one place where a player tracks her own game, and the people invested in her can see what's actually happening.

Design

A brand built end to end with Claude.

A logo wasn't enough. The product needed an identity. Working alongside Claude, the full brand came together from scratch: a heraldic shield that nods to old-world golf clubs without feeling stuffy, a tagline that reads as encouragement (“Study your game.”), and a palette built around a fairway-green that holds up against course photography, a cream that reads clean against UI chrome, and a single accent gold for moments of celebration on the leaderboard.

Brand kit

#2A4233

Fairway green

#FBFAF4

Cream

#E0C548

Pennant gold

Architecture

Static frontend, serverless backend.

Coursework runs as a static SPA on CloudFront, talking to an AWS HTTP API Gateway in front of 30 Lambda routes (Node 20). State lives in a single DynamoDB table. Auth runs through Cognito. The whole stack scales to zero when nobody's using it, which makes the cost profile of a small-tournament- season service nearly free at idle.

  • CloudFront + S3

    Global CDN serving the SPA

  • API Gateway HTTP

    Edge for the 30 Lambda routes

  • DynamoDB

    Single-table design, all state

  • Cognito

    User pool + auth flows

What's inside

Features.

  • Rounds + shot-by-shot tracking
  • Live follow links: family watches any round, no account needed
  • Emoji reactions on the follow view, in real time
  • Per-round scorekeeper claim codes
  • Player + coach views
  • Tournament leaderboards
  • Stats reporting
  • Team management
  • Admin user management

Real screens

What it looks like.

Coursework player views: at-a-glance home, hole-by-hole scorecard, and the strokes-gained transcript view
For players: at-a-glance, scorecard, transcript
Coursework coach view: roster at a glance with player progress, notes, and lesson scheduling
For coaches: roster, notes, lesson plans

See it in action

Live at coursework.prosperdonkey.com

Visit the live site