How it went
The same story is available in German too.
The research (about two months)
Before a single line of code existed, I spent around two months researching: understanding the German regulator's public callsign list, ZIP-code structure, first-name and suffix patterns, and what can honestly be analyzed versus what can't (no names, no addresses — ever).
The long road to actually using AI well
The biggest amount of work, though, wasn't the research itself — it was figuring out how to use AI productively in the first place. At the start I'd have ChatGPT generate individual code snippets, stitch them together by hand in a plain text editor, save the file, and manually upload it to my Strato server — no dev tooling, no version control, every step done one at a time. Slow and error-prone.
Version 1: Mac + Cursor
Next I built on my Mac with Cursor — classic local development, then manual uploads. Better, but still became tedious once more pages and more data piled up.
Switching to Claude
These days I work directly with Claude — writing code, building stats, refining copy, all in conversation instead of an editor. Alongside that came setting up SFTP on Strato with SSH-key login, so files go straight to hosting without a password sitting around anywhere. And by now I have real source-control with milestones instead of loose files — that was honestly the biggest challenge in the whole project, and I'm proud I've got it running this stably now.
The deploy headaches
It wasn't smooth. My project folder lives in iCloud, and macOS kept marking files as "cloud-only" mid-session — including the SSH key and the deploy control file. Result: uploads that appeared to run but did nothing, or scripts that reverted to an older version out of nowhere. We worked through it over several attempts: sometimes forcing a re-upload, sometimes pushing directly via SFTP as a workaround for the broken automation, grabbing the short windows where the key was actually readable. Not elegant, but it worked.
Feedback from the ham community
I shared the analysis in a large ham-radio Facebook group — a lot of the response was positive and curious. But there were also a fair number of dismissive, sometimes condescending comments that I felt I had to push back on, rather than just letting them stand. That's as much a part of this project's story as the technical hurdles — just on the human side instead of the deploy side.
Where things stand now
Right now I have a stable working setup here — that's the real achievement for me, more than any single feature on the site. On top of that, a Claude Pro subscription at around €20/month covers all of it without needing a big budget.
The stack
- Language/backend: plain PHP, no framework, no CMS
- Hosting: Strato, accessed via SFTP with an SSH key (no password)
- Callsign data source: the German regulator's public list
- Editor/tool v1: Cursor, local on the Mac
- Tool today: Claude (Pro subscription, ~€20/month), directly in conversation
- Privacy principle: never publish names or addresses — aggregates and bare callsigns only
By day I'm chief analyst and CMO of a fairly large online shop (see About me) — on top of that, the world's largest individual eBay account by revenue, where I work as analyst and am responsible for eBay marketing. This project is my private research-and-tinkering hobby on the side, not a production system aiming for perfection. If something's a bit rough around the edges: see above. That said, what I learn here about data, analysis and working with AI absolutely feeds back into my day job too.