Two things can be true at once about AI. It is overhyped and full of negative externalities. It is also unquestionably the future, especially for software engineers. For us, the pace of creation is faster - a developer can quickly get from idea to working MVP in hours or days - while still getting a full night’s sleep each day. On the other end of the spectrum, small tools and utilities can now be knocked out in an hour. There are some risks, of course - building secure, verifiable code can be tricky. Testing, code reviews, and good architecture still matter.
I wanted to explore these risks as well as knock out some projects I’ve been bouncing around in my head for months. I’ve been building projects that are taking me up the ladder from ’low risk/low complexity’ to a full consumer SAAS application. I’d like to share the most recent project, as it covers some interesting ground, and then talk about the other projects that are part of this series.
LL Study Guide: A learning companion for LearnedLeague players #
I am part of an online trivia league called LearnedLeague.1 I’m not a great trivia player yet, but want to keep getting better. Most nights after I submit my answers, I end up looking up an answer or two I got wrong, learning what I can. I also tend to remember things a little better if I can associate them with a book, movie, or other narrative story, so I sometimes look up that angle.
Well, with today’s AI tools, wouldn’t it be nice if I could just automate the whole thing? Even better, I’d love an audio summary of the whole thing I can listen to if I’m pressed for time. That’s why I decided to build LL Study Guide.
Since I was already comfortable with Claude Code (CC), I wanted to level my process up with a full-on professional-ish development process. This means, PRDs, tech specs, issue tracking/epics, and code reviews. I wanted to use the tools that led to the best output, and wanted to get the boilerplate done over a weekend (where I still had family commitments and so on).
Here are the AI tools I ended up using:
- ChatGPT (5.1 thinking) – Product requirements and content ideation
- Claude – Second-pass requirements, structure, and refinement
- Midjourney – Initial logo and visual concept generation
- Adobe Photoshop (Generative AI) – Logo cleanup, polish, and final assets
- Claude Code – Writing the Go app to write code for the content pipeline
- GitHub Copilot – PR code reviews
- GPT-5.1 (with web search and high reasoning enabled) – Generating study guide content and podcast scripts
- ElevenLabs (Turbo v2.5 model2) – Converting scripts into high-quality narrative audio
- Linear (via MCP) – Issue Tracking & Project Planning
The final product is built as a static site using the Hugo static site framework, hosted on AWS for the production site. This minimizes operational complexity. The site and podcast are just HTML & MP3 files on an S3 bucket - no servers to manage in production.3
My development process was straightforward:
- Generate a PRD with ChatGPT
- Ask ChatGPT to break that PRD down into chunks of works that could map to issues in Linear
- Hand that generated plan to Claude Code, configured with the Linear MCP, to create Linear issues with sub-issues as needed
- My CLAUDE.md file instructs Claude to always work in branches, follow the Linear branch naming convention, and to submit PRs for review
- Use Copilot to review all PRs
I started in earnest on a Saturday afternoon and by Sunday evening I had the initial version working. My focus then shifted to improving the actual content experience - refining the content and UI of the final site. Probably 8-10 hours total over the weekend, and that’s with me refreshing my Go and Hugo knowledge. I spent a long evening iterating on various improvements - improved prompts for tighter content, addressing hallucination issues, and color/design tweaks to align with the new logo. Probably another 8 hours there, at most.
I’m still tweaking it every day or two in small ways. I still think the content experience can be improved, have some ideas I’m chasing down there. I’m also hearing a few audio distortions/mispronounced syllables in the podcast, so am working through that. Otherwise, I’m super happy with this. My family4 listens with me - it’s actually been pretty fun.
In terms of the pipeline design, it’s pretty simple: grab the latest match day questions (only after the nightly submission deadline), generate a well-researched study guide, then use that as the basis to create the podcast script. The pipeline then takes that script and uses ElevenLabs to generate the final audio.
In terms of cost, each study guide takes about 7-8 minutes for GPT 5.1 to create. The ElevenLabs audio takes another minute or so. That’s about $0.50 in tokens each day for GPT 5.1 and 7000 characters in ElevenLabs usage (about $0.65 on the Creator plan5). I’m pretty sure I can optimize that some more as I tighten up the study guide prompt.
Other projects and next steps #
This project is probably the fifth or so that I’ve taken on using Claude and the third from scratch. I’m convinced at this point that this is the way to build software these days. There’s still some work to do in order to tighten up my CLAUDE.md and other settings and instructions for Claude Code.
I’ll be working on those items on my next project, which will keep exploring this content pipeline idea. I’ve been obsessed with personalizing content experiences in my career6, have some related ideas that I think will be very easy with modern tools. That’s next up.
While I’m sharing fun Claude Code projects, I took an hour and used Claude to build a little script around yt-dlp that lets me grab DJ mixes from YouTube so I can listen to them without a video player involved.7 The goal is to create audio files that work well with Apple Music (iTunes), with album art, gapless playback, and some other niceties. The great thing about this project is that it’s simple - can be described in a paragraph. It’s also low risk - it runs on my local computer, is only running during the import, so it has minimal security concerns.
You can find the result of that project on Github. It’s written in JavaScript, runs inside bun. It’s super simple. I was done with the initial MVP in well under an hour. It was fast, it worked well, and was satisfying.
-
LearnedLeague is awesome, and if you like trivia, you should 100% join. It’s invite only, so please let me know if you’d like an invite. There are four seasons each year, and your first (rookie) season is free. It’s fun and it’s a nice community. ↩︎
-
I’m using Turbo 2.5 because of cost/speed tradeoffs. ↩︎
-
I am working on a CronJob running on a kubernetes cluster in my house to process each match day. So technically there will be a service to manage, but I’m doing that to keep learning K8S. It’s not necessary. I’m manually running the pipeline each day for now. In theory, I could also use an AWS managed service to run the cron job in EventBridge Scheduler or something similar. ↩︎
-
My wife plays in the league with me. My son is going to start next season. ↩︎
-
The creator plan has just enough credits to cover about 28 days of podcast audio creation. That’s enough because LL doesn’t run on the weekends. If I’m doing active development on the audio side, though, I end up in overage territory, which raises the cost to about $1.05 per episode for just ElevenLabs. Ouch! ↩︎
-
When I’m coding, I listen to dance/electronic music. The steady rhythm helps me focus. ↩︎