8 min read

Behind the Scenes of Headline Harmonies — Building a Daily Music Puzzle Before Anyone Was Watching

Behind the Scenes of Headline Harmonies — Building a Daily Music Puzzle Before Anyone Was Watching

What does it actually look like to build a game where the core mechanic depends on three different AI services working together — and none of them are under your control?

Headline Harmonies — the daily music puzzle that turns news headlines into original jingles — went from first commit to Google Cloud deploy in under two months. The story inside the repo isn't just a timeline. It's a series of sharp pivots, quiet panic, and the kind of late-night fixes that only make sense when you're staring down a closed testing deadline.

And it starts, as the best stories do, with a first commit that was already basically the whole game.

"First commit, working demo"

That's the actual commit message from day one, and it wasn't exaggerating. The initial push contained the complete pipeline: a scraper that fetched RSS news feeds, both a Gemini service and an Anthropic service running in parallel, an NLP module using NLTK for masking words in lyrics, a Suno client for generating and downloading mp3s, a full FastAPI backend, and a database schema with migrations already in place.

Seven news categories were defined from the start — National, Business, Technology, Entertainment, Science, Sports, and Health. The NLP module began with several maskable word slots per song, more than the game would ultimately use. The scraper was designed to process each region and category combination independently, checking if a song had already been generated before doing the work.

This wasn't a scaffold. This was a game that already worked.

The fact that there was no frontend commit history before this point — no "exploring React Native" or "testing the Suno API" — tells its own story. The work happened off-repo. By the time git saw it, the concept was already proven.

The AI Orchestra

One of the things that makes Headline Harmonies different from a typical mobile game is that it runs three separate AI services in concert:

  • Gemini handles article selection (picking the best news story from a category's RSS feed) and sticker image generation
  • Anthropic's Claude handles song detail generation — taking a news article and turning it into lyrics, a musical style, and a song structure
  • NLTK, a classic NLP library, handles the word-masking logic — identifying which words to blank out and generating plausible distractors

All three were wired together from the first commit. Gemini and Anthropic weren't competing for the same job — they were complementary. Gemini was the curator and the artist; Claude was the songwriter; NLTK was the puzzle designer. And Suno was the musician that turned the composition into audio.

Gemini's service got revised and refined more times than any other component. Anthropic's service was close behind. The NLP service barely changed after the initial setup — it got the word-picking logic right early. The pattern tells you something about where the friction was: generating creative assets (stickers, images, lyrics) took way more iteration than the puzzle mechanics themselves.

The Word Count Pivot

The first version of Headline Harmonies masked quite a few words per song. That changed midway through development, in a commit titled "already played quotes, reduced generated word count to 3."

Alongside that commit came a brand-new distractor reduction script and a batch of Harvey voice clips — several different "already played" lines, each a distinct mp3, because Harvey wasn't going to just repeat himself if you tried to replay a category.

Dropping the word count to three was one of the biggest design decisions in the entire project. More blanked-out words meant the player was reconstructing lyrics — a creative exercise that demanded musical intuition and a decent vocabulary. Three words, especially when you're picking from a curated list rather than typing, meant you were solving a puzzle. The cognitive load shifted from "what words would complete this song?" to "which of these words feels right?"

The core gameplay screen got reworked more than any other part of the app. The word-picking experience was where most of the design energy went.

The Double Word Problem

Here's a bug that only makes sense in the context of an AI-generated puzzle game: midway through April, a commit landed fixing what the message called a "backend double word" issue.

The problem was this: the NLP service was generating distractors — wrong answer choices — from the same pool of words as the correct answer. Occasionally, the right word would also appear as one of the wrong options. The player would pick it, it would be marked incorrect, and Harvey would deliver a roast for getting it wrong — even though the word was technically in the song.

Fixing this meant ensuring the distractor generation pipeline excluded the correct answer. It sounds obvious in retrospect, but it's exactly the kind of edge case that only reveals itself when an AI system is generating both the puzzle and the answer key.

The Lyrics Crisis

The final days of April were not calm.

Three commits landed in the span of about 24 hours, all centered on the same problem: the Suno pipeline was returning songs without lyrics. "Fix when songs don't have lyrics." "Fixing empty lyric data result." And a batch of fixes adding database indexes and connection pool limits.

When Suno generates a song, the lyrics are supposed to be part of the output — timestamped, structured, ready for the NLP module to mask. But Suno doesn't always play nice. Sometimes a track would come back as audio only, with no lyric data attached. Sometimes the lyric extraction would return an empty result. And sometimes the whole pipeline would stall under load.

This was the moment where Headline Harmonies stopped being a clever demo and started being a service that had to stay up.

The Closed Testing Push

The week leading into closed testing was a blur of polish:

"Added how to play dialog" brought a full tutorial modal with animated GIFs showing every step: selecting a category, listening to the song, picking words, getting your score. The distractor reduction utility had apparently gotten complex enough to need its own commit alongside it.

"Final changes before closed testing" touched nearly every screen in the app. Harvey's audio got reorganized. The calendar view, the sticker book, the login flow — everything got a pass.

Then came the monetization layer. A full paywall component, subscription routing, system messages, lifetime subscription flag. The game was about to meet players who might actually pay for it.

Style, Difficulty, and Location

The final stretch before the last commit brought three changes that made the game smarter:

"Enforcing style variety in scraper script" addressed the problem of Suno defaulting to the same musical genres. Without intervention, you'd get pop songs about every news topic. The fix ensured the jingles actually varied — a country ballad about hockey scores, an electronic track about a tech IPO, a folk song about healthcare policy.

Adding difficulty levels and location data (city and province) introduced two new dimensions to the game. Difficulty made the puzzles scalable — easier for casual players, harder for the daily regulars. And location meant the news could be personalized. Your Headline Harmonies jingles in Saskatchewan could reference stories from Regina or Saskatoon, not just the national feed.

These changes transformed the game from a clever technical demo into something that felt alive and responsive.

How It Actually Came Together

Looking back at the repo, the timeline fell pretty naturally into three phases.

First, foundation. Harvey's banner, stickers, category images, getting the frontend structure right, figuring out how the audio was going to work. The scaffolding had to be solid before anything else made sense.

Then, the sprint. UI polish, the how-to-play tutorial, the word count pivot that changed everything, the paywall, the closed testing prep. This was the push from "it works" to "it's ready for people to actually use."

Finally, the harden. Style variety in the jingles, difficulty levels, location personalization, the lyrics crisis, database optimization, that infuriating double word bug. The phase nobody talks about but every shipped game goes through.

That last phase is where most games live or die. It's not glamorous. Nobody tweets about adding database indexes or fixing connection pool limits. But it's the difference between a demo and a product.

And through all of it, Harvey was there. His banner kept getting revised. Voice clips piled up — reactions, category intros, "already played" disclaimers. A handful of different ways to tell you you've already done today's puzzle, because the character deserved variety and I couldn't stand the idea of him repeating himself. A hyena who started as a framing device and became, commit by commit, the heart of the game.


Headline Harmonies is available now on iOS and Android. Harvey's in the booth and the jingles are fresh.