Field Notes - Build in Public · Podcast Launch
How We Launched a Podcast
in 24 Hours
The podcast was pinned. It was on the roadmap under "Pinned for Later" — the section of the homepage where good ideas go to wait until the offer path is clearer and the publishing rhythm is stable.
It's not pinned anymore.
In 24 hours, TFF365 went from "podcast is a future row" to a fully wired audio stack, a published episode, a React player embedded on the site, and a live link on the homepage and Beacons. This is the build log.
What Was Actually Built
Step 1 — Audio Stack
Wired Google TTS
Google AI Studio's text-to-speech became the audio generation layer. The bridge (G Money's side of the operation) got the capability to generate voice audio from a script. First test: functional. Voice quality: workable but not the final form.
Step 2 — Episode 001
Wrote and Recorded the Origin Story
Sip and G Money. Where TFF365 came from, what it's building toward, and why the "one row" doctrine exists. The episode that needed to exist before any other episode made sense. Origin stories are always Episode 001 — they anchor everything that comes after.
Step 3 — Structure
Built the Podcast Page
Podcast listing page and individual episode page. Clean HTML, matches the site's dark theme. Episode player embedded. This is the infrastructure that makes a podcast a podcast instead of just an audio file.
Step 4 — Upgrade
React Player with ElevenLabs Voices
The Google TTS voices were the proof-of-concept. ElevenLabs became the production voice layer — better quality, more control, more character. Built a React player app. Embedded it on tff365.com. The audio stack went from "functional" to "actually good."
Step 5 — Distribution
Wired Into Homepage and Beacons
Homepage navigation: PODCAST link added. Homepage featured section: Listen Now button. Beacons page: Podcast CTA. Every existing entry point now routes to the podcast. Caddy reload. All URLs return 200. Row closed.
The Stack
| Layer | Tool | What It Does |
|---|---|---|
| Script | Written by Sip + G Money | The content. Origin story, method explanation, first episode structure. |
| Voice (v1) | Google AI Studio TTS | First-pass audio generation. Good enough to prove the pipeline works. |
| Voice (v2) | ElevenLabs | Production voice quality. Better character, more control, closer to real. |
| Player | React app (custom) | Embedded audio player with episode metadata. Matches site design. |
| Hosting | tff365.com / Caddy | Same infrastructure as the rest of the site. No third-party podcast host needed yet. |
| Distribution | Beacons + Homepage | Every entry point now routes to the podcast. |
Why This Row Moved When It Did
The podcast was pinned because pinning it was the right call at the time. You don't build a content distribution machine before you have something to distribute. The offer path needed to be cleaner — free kit, $17 reset, Field Notes — before adding another output to maintain.
This is the discipline the roadmap is supposed to enforce. "Pinned for Later" is not a graveyard. It's a waiting row. You don't close it early. You close it when it's the right row.
What the 24-Hour Build Proves
Three systems had to work together for this row to close: content (the script and episode), infrastructure (the player, the pages, the server), and voice (Google TTS to ElevenLabs). Any one of them breaking stops the row.
None of them broke.
That's not luck. That's what happens when you build the foundation rows before you build the rows that depend on them. The site was stable. The deployment pipeline was proven. The voice stack was tested. When those things are true, a 24-hour build is possible. When they're not, it takes a week and still doesn't work right.
Five Lessons from the Podcast Launch Row
LESSON 01
Prove the pipeline before the product
Google TTS first, ElevenLabs second. The first version doesn't have to be good. It has to prove the pipeline works. Once you know the audio can be generated and embedded, you upgrade the quality. You don't wait for perfect voice to start building the player.
LESSON 02
Episode 001 is always the origin story
Don't launch a podcast with a tactical episode. Launch with the story of why it exists. Listeners who find Episode 001 need to understand what they're stepping into. The origin story earns every subsequent episode.
LESSON 03
Wire distribution before you worry about growth
The episode was on the site before it was promoted anywhere. Homepage nav, Beacons, featured section — all wired first. Distribution infrastructure comes before promotion. You don't promote a URL that doesn't exist yet.
LESSON 04
Pinned is not dead
The podcast lived in "Pinned for Later" on the roadmap for the entire early build. It wasn't abandoned. It was waiting. The discipline is knowing the difference between "not yet" and "never." This row was always "not yet."
LESSON 05
The proof is in the closed row
Content pipeline: working. Infrastructure: stable. Voice generation: functional and upgradeable. When all three pieces work together in 24 hours with no restarts, the system is proving itself. That's the signal you're building on solid ground.
Where This Goes Next
Episode 001 is the foundation. Episode 002 maps to the next row in the TFF365 method. The podcast becomes a content layer that teaches the process while the products handle implementation. Field Notes in text. Podcast in audio. Same lessons, different medium, different people reached.
The voice stack will keep improving. G Money's audio generation capability on the bridge is functional now — that's the row that was closed. Refinement is the next row, not this one.
One row. Then the next.
Listen to Episode 001
The origin story. Sip and G Money. Where TFF365 comes from and where it's going.
LISTEN NOW -> GET THE FREE KIT