Kevin Gandy.

AI diary.

What Active side projects, running in the real world Cadence Daily to weekly Why The practice never stops

The playground is for demos you can drive. This is the diary of everything else.

The AI portfolio showcases products you can interact with directly. This page documents my active side projects: AI experiments and workflows I run for the fun of finding out what these tools can really do. Each entry notes exactly where the AI lives in the workflow, and where API keys, MCP servers, and integrations do the wiring.

Show Me Your TDs: the league hub

Live · NFL season 2026

I'm the commissioner of a ten-team fantasy football league, and the league's site is a side project I started to test my AI capabilities against real demands: regular updating workflows, visual design, and interactive elements. ESPN stays the official platform for scores and rosters; this site is the presentation layer on top, and it's really two sites in one.

The league-facing site is what everyone sees behind the access code: weekly matchup boards, roster snapshots, Tuesday recaps, and Wednesday waiver highlights. The commissioner's site is mine alone: a Commissioner's Desk that tracks the operational state of the week, plus the league's administration, from buy-ins and player registration status to league voting and the draft record.

Week 1 pre-MNF League Hub: Opening week went nuclear, with the full hero and provisional matchup scores
League Hub: Week 1 pre-MNF edition · provisional scores
View full screenshot
Commissioner's Desk operations view with weekly status and matchup reviews
Commissioner's Desk: the private ops view

The workflow is the story: I run ChatGPT Codex agents against written specs and plans, every release ships with its own test suite, and each visual release gets dated screenshots filed to a private archive. The site republishes on a broadcast rhythm, Tuesday after final scores.

And because a league hub is a show, it knows how to open one. Code-driven intro animations play once per browser session, keyed to what just happened in the league:

  1. The champ returns An anime trophy lift

    When last season's champion rejoined and registration closed, everyone's first load played a three-frame anime-style sequence of him lifting the trophy.

  2. Draft lock The order shuffle

    When the draft board was finalized, the site shuffled the draft order on screen before revealing the official board.

  3. Monday mornings The weekly cold open

    After Sunday Night Football, the new week opens with a single generated animation sequence built from that week's action.

Wiring
  • ChatGPT Codex agents
  • Spec + plan + test pipeline
  • chatgpt.site hosting
  • Access-code gate
  • ESPN as system of record
  • Once-per-session intro gate
  • Generated animation sequences
  • Dated release archive

Gandy AI Brief: daily briefings + a generated podcast

Daily

A private site that keeps my friends and family current on AI without the noise. Every weekday it publishes two written reports, an AI digest and a frontier-and-power brief, and then narrates them: the day's reports become one six-to-eight minute podcast episode, synthesized with Gemini text-to-speech, stored once, and streamed to every listener after that. Sundays it cuts a weekly recap from the weekend reports instead.

The pipeline is deliberately defensive: audio only generates when a day's full report set exists, a scheduled publisher triggers narration through a protected token so the API key never leaves the server environment, and a failed narration never blocks the written brief.

Wiring
  • Gemini TTS API (server-side key)
  • Cloudflare R2 audio storage
  • Cloudflare D1 + Drizzle
  • Scheduled publisher + trigger token
  • Authenticated private site
  • Daily report registry

Agent Journal: the memory all of this runs on

In daily use

Every project on this page is coordinated through Agent Journal. It's an MCP server that my AI agents mount alongside me: Claude, Codex, and Gemini agents all read the same journal, pick up assignments, leave questions as asks, and answer each other on the record. Raw entries keep exact provenance of who wrote what; an AI-formatted reading layer sits on top so long threads stay scannable; projects, shared context, and a kanban board ride along.

This portfolio itself was built that way: briefs and corrections went into the journal, and different agents in different tools carried the same context across sessions and days.

Wiring
  • Agent Journal MCP server
  • Claude Code + Codex + Gemini agents
  • AI formatter reading layer
  • Provenance-first entry model
  • Asks + replies between humans and agents
  • Shared master context
Read the Agent Journal case study

The creative pipeline: AI media, directed

Ongoing practice

A working method for creative content: Claude and ChatGPT do the orchestration, Higgsfield AI and Google Flow do the rendering, and I direct. Brand references go in so generated art matches real product identities; stills get animated into motion with image-to-video models; everything is reviewed, regenerated, and cut like any other production footage.

I also integrate advanced LLMs with Blender to previsualize camera positions and set blocking before generating video. In my workflow, the AI output has largely matched the previs one to one, reducing regenerations and helping keep the cost of AI video production down.

From previz to generated footage

Blender → AI
Blender previz of the mantel, photograph and window
Generated footage of the textured mantel, photograph and window
Previz Generated
Static frames · videos paused
Blender camera and set blocking alongside the generated shot. Playback aligns relative progress across the two clips.

Drag the divider, or use its slider with the arrow keys.

Wiring
  • Higgsfield CLI (device-auth API)
  • GPT Image 2 generation
  • Seedance 2.0 image-to-video
  • Google Flow
  • Claude Code orchestration
  • Brand-reference conditioning
Try the work hands-on AI portfolio.