Rhythm Lab Radio Selector: From Radio Host to AI-Powered Content Creator
What Inspired This Project
The inspiration for this project hit me during a particularly frustrating week at Radio Milwaukee. As the host of Rhythm Lab Radio, a syndicated show that's been running for 20 years, I desperately needed an assistant producer to help manage content creation, social media, and audience engagement. But due to recent CPB (Corporation for Public Broadcasting) funding cuts passed by Congress, our station simply couldn't afford to hire additional staff.
I found myself spending hours manually creating show notes, researching artist backgrounds, and trying to maintain our online presence—time that should have been spent on music curation and community building. Meanwhile, I was sitting on 10+ years of incredible digital music archives that were largely undiscovered. Thousands of hours of carefully curated shows, featuring everything from underground jazz to emerging electronic artists, representing decades of musical storytelling and cultural documentation.
This personal frustration reflected a broader crisis facing public radio stations across America. Budget constraints force beloved stations to reduce programming, limit community engagement, and struggle to connect with younger audiences who consume content differently than traditional radio listeners. The irony was painful: we had incredible content but lacked the resources to make it accessible and engaging for modern audiences.
The Storyblok x Code & Coffee Hackathon 2025 presented the perfect opportunity to tackle the "Combine the power of Storyblok and AI" challenge. I realized I could build the AI-powered assistant producer I couldn't afford to hire. Instead of a human assistant, I could create a system that would automatically generate show notes, artist profiles, deep-dive articles, and even podcast episodes from our existing content.
I envisioned a platform that could transform static radio archives into dynamic, interactive content experiences—essentially giving every public radio station the content creation capabilities of a fully-staffed digital team, regardless of their budget constraints.
The Learning Journey: From Radio Host to AI Developer
The Non-Coder Challenge
I'll be honest: I'm not a traditional coder. My background is in radio production, music curation, and community engagement. When I started this hackathon, my technical experience was limited to basic HTML and content management systems. The idea of building a complex AI-powered application with multiple API integrations seemed overwhelming.
Discovering Claude Code and Archon OS as My Development Partners
The breakthrough came when I started using Claude Code as my development partner and gained access to the Beta release of Archon OS - the knowledge and task management backbone for AI coding assistants. This combination transformed my approach from overwhelming complexity to manageable, structured development.
Archon OS became my project management system, helping me:
- Break down the complex multi-API architecture into manageable tasks
- Track dependencies between different system components
- Plan the development sequence logically
- Maintain context across multiple development sessions
- Document decisions and learnings for future reference
Claude Code then became my implementation partner. Rather than trying to learn every programming language and framework from scratch, I approached development as a guided conversation. I would describe what I wanted to achieve, and Claude would help me understand the technical implementation, write the code, and explain the concepts along the way.
This wasn't just copy-pasting code—it was a structured learning process powered by AI project management where I gradually understood:
- How APIs communicate with each other
- Why certain architectural decisions matter
- How to structure data for optimal performance
- The importance of user experience in technical design
- How to maintain code quality and documentation standards
Archon OS: AI-Powered Project Management
Before diving into Storyblok, I needed to understand how to manage such a complex project. Archon OS Beta became my secret weapon for project planning and knowledge management. As someone without formal software development experience, I needed a way to:
- Break down complexity: Archon helped me decompose the multi-API architecture into logical, sequential tasks
- Track dependencies: Understanding which components needed to be built before others
- Maintain context: Keeping track of decisions, learnings, and progress across multiple development sessions
- Plan iterations: Structuring the development process into manageable sprints
- Document everything: Creating a knowledge base that I could reference and build upon
Archon OS essentially became my AI project manager, helping me think like a software architect even though I'd never managed a complex technical project before.
Learning Storyblok: The CMS Revolution
Storyblok was completely new to me, but it quickly became the cornerstone of my project. Learning Storyblok felt like discovering a new language for content creation. The visual editor, component-based architecture, and headless CMS approach opened up possibilities I hadn't imagined.
Key Storyblok concepts I mastered during the hackathon:
- Component Architecture: Building reusable content blocks for different content types
- Content Relationships: Linking tracks, shows, artists, and AI-generated content
- API Integration: Using Storyblok's Management API for automated content creation
- Preview Functionality: Real-time content editing and preview capabilities
- Webhook System: Triggering content updates based on external events
The learning curve was steep, but Storyblok's documentation and community support made it manageable, even for someone without extensive CMS experience.
How I Built the Project
Architecture Overview
The Rhythm Lab Radio Selector is a multi-layered system that transforms radio archives into an AI-powered content ecosystem. Here's how I approached the technical implementation:
1. Data Foundation
// Starting with Spinitron API integration for live radio data
const fetchLiveData = async () => {
const response = await fetch(`${SPINITRON_API}/shows/current`);
const currentShow = await response.json();
return enrichTrackData(currentShow);
};
I began by connecting to Spinitron API to capture real-time radio playlist data, then expanded to Mixcloud API for accessing 10+ years of archived shows.
2. Multi-API Data Enrichment
The magic happens when raw radio data gets enriched through multiple APIs:
- Discogs API: Album art, release information, genre classification
- YouTube API: Music videos, live performances, artist documentaries
- SerpAPI: Relevant images and visual content for storytelling
3. AI Content Generation Pipeline
This was the most challenging part for a non-coder to conceptualize:
// AI content generation workflow
const generateContent = async (trackData) => {
// Step 1: Create customizable prompts through admin interface
const prompt = await buildCustomPrompt(trackData, contentType);
// Step 2: Generate content using Perplexity API
const aiContent = await perplexityAPI.generate(prompt);
// Step 3: Create podcast with ElevenLabs
const podcast = await elevenLabs.generatePodcast(aiContent);
// Step 4: Find relevant images with SerpAPI
const images = await serpAPI.searchImages(trackData.artist);
// Step 5: Send to Storyblok for human review
return await storyblok.createStory({
content: aiContent,
podcast: podcast,
images: images,
status: 'pending_review'
});
};
4. Human-in-the-Loop Editorial Workflow
Understanding that AI-generated content needs human oversight, I designed Storyblok as the editorial command center where:
- Content creators review AI-generated articles, deep dives, and artist profiles
- Editors can modify, approve, or reject content before publication
- The system maintains quality control while scaling content production
5. Unified Search with Algolia
Implementing Algolia was crucial for the hackathon's innovation prize. The search system unifies:
- Live radio tracks
- 10+ years of archived shows via Mixcloud.com
- AI-generated content (articles, podcasts, profiles)
- Curated images and visual stories
Technical Challenges and Solutions
Challenge 1: Learning Storyblok as a Non-Developer
The Problem: Storyblok's component-based architecture and API-first approach were completely foreign concepts to me.
The Solution: I started with Storyblok's tutorial projects, then gradually built complexity. Claude helped me understand concepts like:
- Content types vs. components
- Field types and validation
- API authentication and rate limiting
- Webhook configuration
Key Learning: Storyblok's visual editor became my bridge between technical implementation and content creation intuition.
Challenge 2: Coordinating Multiple APIs
The Problem: Managing data flow between Spinitron, Mixcloud, Discogs, YouTube, SerpAPI, Perplexity, and ElevenLabs without a traditional programming background.
The Solution: Archon OS proved invaluable here, helping me visualize and manage the complex dependencies between APIs. I approached this like radio show production—understanding each API as a "contributor" with specific timing and dependencies. The combination of Archon's task management and Claude Code's implementation guidance helped me build:
- Proper error handling for API failures
- Rate limiting to avoid service disruptions
- Data caching to improve performance
- Webhook systems for real-time updates
- Dependency mapping to ensure proper execution order
Challenge 3: AI Content Quality Control
The Problem: AI-generated content can be inconsistent or inappropriate for public radio standards.
The Solution: Designing the human-in-the-loop workflow through Storyblok:
- All AI content goes to "draft" status initially
- Editors review and refine content before publication
- Customizable prompts allow fine-tuning AI output
- Version control tracks changes and improvements
Challenge 4: Complex Data Relationships
The Problem: Connecting tracks, shows, artists, AI content, and user interactions in meaningful ways.
The Solution: Using Storyblok's relationship fields and Supabase database design:
-- Example: Linking tracks to multiple content types
CREATE TABLE content_relationships (
id SERIAL PRIMARY KEY,
source_type TEXT, -- 'track', 'show', 'artist'
source_id INTEGER,
related_type TEXT, -- 'ai_article', 'podcast', 'image_story'
related_id INTEGER,
relationship_strength INTEGER -- for recommendation algorithms
);
Challenge 5: Real-Time Content Generation
The Problem: Users expect immediate results when discovering new music, but AI content generation takes time.
The Solution: Implementing a progressive enhancement approach:
- Immediate display of basic track information
- Background AI content generation with status updates
- Notification system when enhanced content becomes available
- Caching popular content for instant access
What I Learned
Technical Skills
- AI-Assisted Development: Using Claude Code and Archon OS for structured, guided programming
- Project Management with AI: Leveraging Archon OS for task breakdown and dependency tracking
- API Integration: Understanding how different services communicate and share data
- Database Design: Structuring data relationships for complex content systems
- AI Prompt Engineering: Crafting prompts that generate high-quality, relevant content
- Content Management: Using headless CMS architecture for flexible content delivery
- Search Implementation: Building intelligent discovery systems with Algolia
Development Philosophy
- AI as a Collaborator: Claude Code became my coding mentor, while Archon OS became my project manager
- Structured Learning: Breaking complex systems into manageable, trackable components
- User-Centered Design: Every technical decision considered the end user experience
- Iterative Development: Building in small, testable increments rather than attempting everything at once
- Human-AI Balance: Technology should augment human creativity, not replace it
- Context Preservation: Using AI tools that maintain project knowledge across sessions
Industry Insights
- Public Radio Innovation: Understanding how technology can address real-world funding and engagement challenges
- Content Scalability: Learning how AI can help small teams create large amounts of quality content
- Community Building: Seeing how technical tools can strengthen connections between creators and audiences
The Impact and Future
Immediate Results
The Rhythm Lab Radio Selector solves my original problem while transforming how listeners discover and engage with public radio content:
- Replaces the assistant producer I couldn't hire: Automatically generates show notes, artist profiles, and social media content
- Multiplies content creation capacity: A single track discovery triggers creation of articles, podcasts, and visual stories
- Unlocks archive value: 20 years of archives become searchable and contextually connected
- Engages digital audiences: Radio stations gain new content formats to reach younger listeners
- Builds community: Listeners can contribute to and interact with musical storytelling
Hackathon Goals Achieved
- Storyblok + AI Integration: Successfully combined AI content generation with Storyblok's editorial workflow
- Innovation: Created a unique approach to content multiplication and discovery
- Real-World Impact: Addressed genuine challenges facing public radio stations
- Technical Excellence: Built a complex, multi-API system despite limited coding background
Future Development
This hackathon project has inspired several next steps:
- Community Features: User-generated playlists and collaborative storytelling
- Mobile App: React Native implementation with Storyblok live preview
- Podcast Network: Expanding AI-generated content to full podcast series
- Educational Tools: Using the platform for music education and cultural preservation
Conclusion: From Budget Crisis to Innovation
This hackathon taught me that you don't need to be a traditional coder to build innovative technology—and more importantly, that necessity truly is the mother of invention. What started as frustration over not being able to hire an assistant producer due to CPB funding cuts became an opportunity to reimagine how public radio can thrive in the digital age.
The Rhythm Lab Radio Selector represents more than just a hackathon project—it's a direct response to the funding crisis facing public radio stations across America. By combining Storyblok's flexible CMS architecture with AI-powered content generation, we've created a platform that gives small stations the content creation capabilities they can no longer afford to hire.
Most importantly, this project maintains the human element that makes public radio special. Technology amplifies creativity and connection rather than replacing them. Every AI-generated article, podcast, or story goes through human editorial review, ensuring that the authentic voice and community values of public radio remain central to the experience.
This is just the beginning of a larger mission: helping public radio stations transform their archives into dynamic, engaging content that connects communities through the power of music and storytelling.
Built with: Storyblok, Claude Code, Archon OS (Beta), Supabase, Algolia, Perplexity API, ElevenLabs, SerpAPI, React/Next.js
Competing for: JoyConf NYC Spirit Award, Algolia Innovation Prize
*Project Repository: https://github.com/tmoody1973/rhythm-lab-app
Log in or sign up for Devpost to join the conversation.