Skip to content
Sableframe
LIVE

Cody's Picks

A mobile-first publishing and affiliate platform for sports picks.

A branded public experience for picks, results, partner offers, and record tracking, paired with a phone-friendly private workflow for publishing and grading content.

Status
LIVE
Source
Private
Capabilities
  • Product design
  • Content workflow
  • Cloud deployment
Cody’s Picks home page with a note from the publisher, a paid-referral notice marked 21+, a featured partner offer, and three partner offer cards.
HomeThe branded public home with its featured partner, offer grid, and disclosures.

The problem

A sports-picks publisher who works from a phone needed to post picks, keep partner offers current, and grade results without touching code.

Readers need picks posted before games start, a record they can check, and clear notice that partner links are paid.

The system

  • Public picks

    Today’s card plus upcoming and recent picks, with top picks called out.

  • Record tracking

    A running record with a per-sport breakdown and history, calculated from each graded pick.

  • Partner offers

    A featured partner and offer grid, with each referral click logged before redirecting.

  • Phone-first publishing

    Private forms for picks, partners, and page copy, with live previews and new picks saved as drafts.

  • One-tap grading

    Win, loss, and push in a single tap, with void kept separate and an undo.

How it was built

Next.js and TypeScript run on Cloudflare Workers through the OpenNext adapter. Public pages query a D1 database on each request, and partner logos are stored in R2.

The private workflow has a single administrator with a hashed password, signed session cookies, and a lockout after repeated failed sign-ins. Every admin page and action checks the session again.

  1. Readers

    • Home and partner offers
    • My Picks
    • Results
  2. Publisher

    • Phone-first admin
    • Grading
  3. Worker

    • Next.js on Cloudflare Workers
    • Referral redirect and click log
  4. Data

    • D1: picks, partners, content
    • R2: partner logos
One Cloudflare Worker serves the public site and the private workflow from the same data.

Technology

  • Next.js
  • TypeScript
  • Cloudflare Workers
  • D1
  • R2

Design decisions

  1. Built for a phone

    Grading has its own screen with large tap targets and works without client-side JavaScript. Void is set apart so it is not tapped by accident.

  2. Profit is derived, not stored

    Odds and stake are locked when a pick is posted and results are calculated from them, so the record has one source of truth.

  3. Links kept exactly as pasted

    Referral URLs are stored verbatim so tracking parameters survive, and placeholder links cannot be published.

  4. Disclosures on every page

    A 21+ notice, responsible-gambling resources, and the affiliate disclosure appear on every public page, with ad labels beside offers.

Selected views

Current state

Live. The public experience and the private publishing and grading workflow are built. Referral clicks are logged but not yet reported in the interface. The source code is private.