QSO Globe: Vibe-Coding, Round Four

The Idea

Amateur radio is a hobby about distance. You sit in a room with a wire in the air, you say your callsign into the noise, and sometimes a stranger seven thousand kilometers away says it back. That is the entire magic trick, and it has not gotten old in a hundred years.

The strange part is that logging that moment — the thing every operator does after every contact — is almost universally a spreadsheet. A row. Callsign, frequency, time, signal report. The most romantic hobby in the world, recorded like an invoice.

So that is the app: QSO Globe. You log a contact in one line, and a golden arc launches from your station and lands on theirs, across a 3D globe that shows the real day and night — with the greyline creeping across the planet exactly where it actually is right now.

QSO Globe main screen: contact arcs flying across a 3D globe of North America with band chips and a one-line log bar
Log a contact and watch the arc fly. The terminator is real and moving.

The Greyline Is Not Decoration

Here is the part that made me want to build it. The greyline — that band of twilight between day and night — is not just pretty. It is a genuine propagation phenomenon. Along that line, the ionosphere’s absorbing layer is fading out while the reflecting layer is still up, and signals can travel absurd distances for a little while. Old-timers have chased it forever: get on twenty meters at your sunrise, point at someone else’s sunset, and work the world on the power of a light bulb.

Almost no logger shows you this. You are supposed to keep it in your head, or check a separate propagation site, and then go back to your spreadsheet.

If the globe already knows where the sun is — and it has to, to draw the planet honestly — then it can show you the greyline for free. The feature that would be a whole product somewhere else is a side effect of drawing the earth correctly.

Scratching My Own Itch

If you have read the earlier posts in this series, you know the setup: I am not a programmer. I build these by describing what I want to Anthropic’s Claude Code and iterating stubbornly until the thing exists.

This one exists for a simple reason: it is the logger I wished I owned. I wanted to see my operating from a global perspective — not a spreadsheet row that says “Japan,” but an arc leaving my backyard and landing on the other side of the planet, on a globe that shows day and night where they actually are right now. Radio is a hobby about distance, and I wanted the log to feel like the distance.

And I wanted it to work off the grid. Parks on the Air activations happen precisely where there is no signal — so the app carries an offline country file, needs no account and no server, and keeps the entire log on the phone. A logger that only works with bars of LTE fails at the exact moment the hobby gets good.

So the feature list was never a roadmap. It was a wish list, written by the operator who has to live with it.

The Real Work Was the Conventions

The recurring lesson of this series is that the code is the fast part and something else is the real work. For the weather app it was personality. For the math app it was curriculum. For the bedtime app it was sound.

For a ham radio logger, it is a hundred years of conventions that the computer does not know and cannot guess.

Signal reports are two or three digits and the digits mean specific things. Times are UTC, always, no exceptions, because the hobby is global and local time is a parochial fiction. Duplicate contacts are not simply repeats — for Parks on the Air, a dupe means the same callsign on the same band and mode within the same UTC day, and that definition is load-bearing for whether an activation counts. ADIF, the log interchange format, is older than most of the people using it and has to round-trip exactly or you cannot upload to Logbook of the World.

None of that is hard to implement once you know it. All of it is invisible if you do not, and every single piece of it is the difference between a logger a ham will actually use and a pretty toy that gets deleted in ninety seconds. You cannot vibe-code your way to domain knowledge. You have to either have it or go get it.

QSO Globe session log listing five contacts with bands, modes, distances and times (callsigns redacted)
One line in, one contact logged. W1AW 14.243 57 55 is enough.

What It Actually Does

Log a contact by typing it the way you would say it — free-order tokens, callsign first, the rest optional. Tap a band chip and the frequency prefills. Signal reports default to the ones you were going to type anyway.

For Parks on the Air, activation mode makes your park the origin of every arc, live spots show up as pins you can tap to prefill the log bar, and park-to-park contacts resolve to the actual park. ADIF imports and exports round-trip the POTA fields properly. There is an offline country file so the app still knows where a prefix lives when you are somewhere with no signal, which is precisely where activations happen.

At the end of a session you can replay it, arc by arc, and generate a share card that only claims what you actually did — it says four countries on two continents when you worked four countries on two continents, and not otherwise.

No account. No tracking. Free.

QSO Globe session share card: 5 QSOs, 10,798 km longest contact, 5 DXCC — worked the world
The share card tells the truth, or it says nothing.

The Honest Gaps

Version 1.0 is iPhone-only. The globe needs verifying on real iPad hardware before I claim it works there.

Logbook of the World is export-only — you export and upload with TQSL like always; I have not built a signing integration. QRZ and eQSL push work, but with your own credentials, because I am not going to be a middleman for anybody’s logbook.

And it has not yet been beaten up by strangers. It has been tested by exactly one operator — me — which is one more than zero and far fewer than it needs.

The Wait

Then Apple reviewed it, and for a good while nothing at all seemed to be happening — which is exactly what is happening inside a review queue, because queues are unordered.

The lesson from earlier rounds still holds — App Review is a conversation, not a verdict — but this round taught a duller companion lesson. Sometimes it is not a conversation. Sometimes it is just a wait, and the only correct move is to go build the next thing and let the clock run.

It is approved now. It is on the App Store, it is free, and it is on my phone in the shack where it belongs — which, for a logger, is the only review that was ever going to matter.

If you are a ham and you take it out on an activation, I would genuinely value the punch list. That is not a marketing line — v1.0 is one operator’s opinion about what a logger should be, and the only way that becomes right is other operators telling me where it is wrong.

73 de KE2BQI.

Download QSO Globe free on the App Store

Leave a Reply

Your email address will not be published. Required fields are marked *