Why I Built My Own ADS-B Decoder Instead of Using Someone Else's
FlightRadar24 exists. So does FlightAware. I built my own aircraft tracker anyway — from raw radio signals to live map — and it changed how I think about building software for businesses.

The first time an airplane appeared on my screen, I just stared at it.
Not because it was impressive — it was a single dot on a map, moving slowly across the mountains of Western North Carolina. But that dot represented something I had built from nothing. A radio signal had hit an antenna on a Raspberry Pi, traveled through a decoder I wrote, landed in a database, and showed up as a moving aircraft on a web page. All of it mine. All of it working.
FlightRadar24 can do the same thing. So can FlightAware. They've been doing it for years, with better coverage, more features, and millions of users.
I built my own anyway.
The Obvious Question
Why build something that already exists?
It's a fair question. If you need to track flights, you open an app. If you need a weather forecast, you check your phone. Nobody builds their own GPS satellite constellation just to find the nearest gas station.
But there's a difference between using a thing and understanding a thing.
I wanted to understand what happens between the moment an aircraft broadcasts its position and the moment it shows up as a dot on a map. Not in the abstract, hand-wavy "radio signals get decoded" way. I wanted to know how the bits are structured. How the compression works. How you turn two partial position messages into one actual set of coordinates.
And the only way to really understand that is to build it yourself.
What "From Scratch" Actually Means
Here's the setup. A Raspberry Pi 5 sits connected to a $30 RTL-SDR dongle — basically a tiny radio receiver tuned to 1090 MHz. That's the frequency every commercial aircraft transponder uses to broadcast ADS-B messages.
Those messages are short bursts of data. 112 bits each. They contain the aircraft's GPS position, altitude, speed, heading, and callsign. Anyone with the right antenna can pick them up. The signals are unencrypted and broadcast to no one in particular. They're just out there, flying through the air.
The Pi captures those raw signals and hands them to a decoder I wrote in Rust. The decoder does the hard work — validating each message against a checksum, identifying what type of information it carries, and assembling individual messages into coherent aircraft tracks.
The hardest part is position decoding. Aircraft don't broadcast normal latitude and longitude. They use a compression scheme called Compact Position Reporting that alternates between "even" and "odd" frames. You need both to calculate the actual position. The math involves modular arithmetic across 15 latitude zones, and there are edge cases at zone boundaries that will quietly give you wrong answers if you don't handle them.
Once the decoder has clean aircraft data, it goes into TimescaleDB — a database designed for time-series data. From there, a web server feeds it to a map running in your browser. You see aircraft move in real time.
The whole system is four Rust crates with 299 tests. It runs on a $5/month server. The live version is at adsb.blueoctopustechnology.com.
What AI Actually Did
I need to be honest about this part, because it's the part that matters most for anyone thinking about building custom tools.
This project went from zero to deployed in about two weeks. That's not because I'm fast. It's because I had AI — specifically Claude Code — helping at every step.
Here's what that looked like in practice.
Prototyping in Rust. I'm not a Rust expert. I know enough to read it and think in it, but writing production Rust from scratch would have taken me months. AI let me describe what I wanted — "decode the CPR position from these two frames" — and get working code that I could then understand, test, and refine. It's not a shortcut around learning. It's a faster path through it.
Database optimization. TimescaleDB has features I didn't know about — continuous aggregates, chunk intervals, automatic compression policies. AI suggested the right patterns for my data shape. Raw positions for recent data, pre-aggregated buckets for historical queries. The result is a system that stays fast whether you're looking at the last five minutes or the last six hours.
Performance tuning. The original version was redrawing every aircraft on every update. Thousands of draw calls per frame. AI helped me switch to a canvas renderer with batched polylines grouped by altitude bands — roughly 50 times fewer draw calls. It also separated the polling intervals so positions update every 2 seconds but trail data only refreshes every 10. Small changes, big impact.
Testing. 299 tests didn't write themselves, but they also didn't take weeks. AI generated test scaffolding that I filled in with real ADS-B frames captured from actual aircraft. Every edge case in the CPR decoder has a test. Every API endpoint has a test. Every error condition has a test.
None of this replaces knowing what you're building. You still need to understand the ADS-B protocol to know whether the code is correct. You still need to understand database design to know whether the optimization makes sense. AI doesn't remove the need for expertise — it compresses the timeline.
What This Isn't
I should be clear. This is not a business. Nobody is paying me to track aircraft over the Appalachian Mountains.
It's a passion project. I like aviation. I like building things. I especially like building things that turn invisible signals into something you can see and understand.
The coverage area is limited to whatever my single antenna can reach — maybe 100 miles on a good day from a mountain in Western North Carolina. FlightRadar24 has global coverage from thousands of receivers. That's not a competition I'm trying to win.
The project has features that make me happy — altitude-band trail coloring, heatmaps showing where aircraft fly most often, military aircraft filtering, mobile-responsive design — but it's not going to replace anyone's flight tracking app.
That's fine. Not everything has to be a product.
What This Actually Demonstrates
But here's the thing I keep coming back to.
Two weeks. Four Rust crates. 299 tests. A live web application that decodes radio signals in real time and shows aircraft moving on a map. Mobile responsive. Database-backed with smart aggregation. Deployed on a $5 server.
A project like this — custom signal processing, real-time data pipeline, web visualization — would have been a team effort a few years ago. Multiple developers, a few months, tens of thousands of dollars. Not because the individual pieces are hard, but because there's so much surface area. The radio protocol. The math. The database. The API. The frontend. The deployment. The testing.
AI compressed all of that. One person, two weeks, from zero to live.
The Part That Matters for Your Business
If you run a business, you probably don't need an aircraft decoder. But you might need something that feels just as custom.
Maybe you have data coming from equipment sensors that nobody makes a dashboard for. Maybe you need a scheduling system that works the way your business actually operates, not the way some SaaS company thinks it should. Maybe you have a manual process — copying numbers between spreadsheets, checking three websites, emailing reports — that could be a single tool.
The old math on custom software was brutal. Six figures for anything useful. Months of development. Ongoing maintenance costs that never end. For most small businesses, the answer was always "just use the off-the-shelf tool and deal with its limitations."
That math is changing. Not because AI writes perfect code — it doesn't. But because it compresses the boring parts. The boilerplate. The configuration. The "how do I set up this database" research. The stuff that used to take weeks now takes hours. The stuff that took months takes weeks.
A custom tool that fits your business exactly — built with AI assistance, deployed on cheap infrastructure, doing exactly what you need and nothing you don't — is more realistic now than it's ever been. Not free. Not instant. But surprisingly fast and surprisingly affordable compared to what it used to cost.
That's not a pitch. It's just what I learned by building something I didn't need, for no reason other than wanting to understand how planes talk.
See It Yourself
Live site: adsb.blueoctopustechnology.com
Source code: github.com/blueOctopusAI/adsb-decode
Technical deep dive: We wrote a separate post covering the full signal chain if you want the engineering details.
Have a custom tool idea that you've been told is "too expensive to build"? The math might be different now. Let's talk about it.
Blue Octopus Technology builds custom software, integrates AI, and automates workflows for businesses ready to grow. Based in Franklin, NC — serving clients nationwide.
Stay Connected
Get practical insights on using AI and automation to grow your business. No fluff.