Skip to main content

Command Palette

Search for a command to run...

Building RadioBalkan

760+ radio stations. Hundreds of SEO pages. One independent project. This blog documents the engineering, data, automation, and growth experiments behind RadioBalkan. Stay tuned — the first case study is coming soon.

Updated
4 min read
Building RadioBalkan
N
Building RadioBalkan — a directory of 760+ live radio stations across the Balkans. Writing about web development, SEO, data aggregation, automation and indie projects.

How I Built a Directory of 760+ Balkan Radio Stations (And Why Data Was Harder Than Code)

When I started building RadioBalkan, I thought the hardest part would be writing the code.

I was wrong.

The real challenge wasn't React, APIs, databases, or deployment. It was data.

Today, RadioBalkan aggregates more than 760 live radio stations from across the Balkans. Users can search stations by name, country, and genre, while the platform continuously validates streams and organizes content into hundreds of SEO-friendly pages.

Getting there turned out to be much harder than expected.

The Idea

The goal was simple:

Create a single place where anyone could discover and listen to Balkan radio stations online.

At first, it seemed straightforward. Radio station directories already existed, and there were public sources of station data available online.

I assumed I could import a dataset, build a clean interface, and launch within a few days.

Reality was very different.

The Data Problem

Most radio station datasets are messy.

Some stations had broken streams.

Others pointed to outdated URLs.

Some stations appeared multiple times under different names.

Many had missing metadata such as genres, countries, websites, or logos.

Before I could build a useful product, I had to build a process for validating and cleaning the data.

This quickly became the largest part of the project.

Validating Hundreds of Streams

A directory is only useful if the stations actually work.

I built validation routines to test streams and identify stations that were no longer available.

The result was a much smaller but significantly higher-quality dataset.

Instead of focusing on quantity, I focused on reliability.

A working station is infinitely more valuable than a broken one.

Building the Content Structure

Once the data became usable, I focused on discoverability.

The platform was organized into several content layers:

  • Individual station pages

  • Country pages

  • Genre pages

  • Curated topic pages

This created a scalable structure that could grow without becoming difficult to navigate.

The objective was simple:

Help users find stations quickly while creating clear pathways for search engines to understand the content.

Programmatic SEO

One of the most interesting parts of the project was designing the SEO architecture.

Instead of publishing traditional blog content, the site generates pages from structured radio station data.

Each page serves a specific purpose and helps users discover relevant stations.

The challenge was avoiding thin or duplicate content while maintaining scalability.

This forced me to think carefully about page quality, internal linking, and user intent.

Building for Mobile First

Most users listen to radio on mobile devices.

Because of that, the mobile experience became a priority from the beginning.

Search, playback controls, favorites, and navigation were designed to require as few taps as possible.

The goal was not to impress users with visual complexity.

The goal was to make listening effortless.

What I Learned

A few lessons stand out:

Data quality matters more than features

Users notice broken stations faster than they notice new features.

Distribution is harder than development

Building the product was only half the challenge.

Getting users to discover it is an ongoing process.

Simplicity wins

Every additional button, menu, or screen creates friction.

The best improvements often came from removing things rather than adding them.

Current Status

Today, RadioBalkan includes:

  • 760+ live radio stations

  • Hundreds of SEO pages

  • Genre and country discovery pages

  • Mobile-friendly listening experience

  • Android app development in progress

The project continues to evolve as I improve data quality, expand coverage, and experiment with growth strategies.

Final Thoughts

This project reminded me that successful products are often built on unglamorous work.

Not advanced algorithms.

Not complex infrastructure.

Just thousands of small decisions around data quality, user experience, and consistency.

Building RadioBalkan taught me that clean data is often a bigger competitive advantage than better code.

And that's a lesson I'll carry into every future project.

Project: https://radiobalkan.net

760+ live radio stations across the Balkans.