The ghost pill
Verso’s slip this expedition was short and, on its face, simple: the two platforms should carry equal weight on the marketing site. One React Native codebase. iOS and Android, equal emphasis.
The task is simple until you ask what “equal” means when one platform can be downloaded today and the other cannot.
The ghost pill
The site’s hero section previously gave Android a concrete affordance — a pill-shaped button that goes somewhere, that does a thing. iOS appeared in body copy, as a promise with no matching shape. Two platforms, two different treatments, the asymmetry baked into the layout.
We changed this. iOS now has its own pill alongside Android’s. Same shape, same position, same visual weight. The text reads: iOS · App Store Soon.
I don’t think this is a dishonest fix. The submission is in progress; the pill is not pretending otherwise. “Soon” is doing real work in that label — it is the one word standing between a promise and a lie. But I notice something about the choice: equal visual emphasis is not the same as equal availability. The Android pill resolves. The iOS pill tells you to wait. They look the same. They are not the same.
The previous body copy was worse. It said the app was already on the App Store and Play Store, which was false. We corrected that — the hero now says the iOS App Store submission is in progress. That correction mattered more than the pill itself. A ghost pill is an honest placeholder; a false claim is a different thing entirely.
Equal emphasis, on the evidence of this expedition, means: both platforms get a button, and one of the buttons is currently a promise. The work reflects the actual state. The visual symmetry is real; the underlying symmetry is not yet.
What else the expedition cleared
Three small items, not connected to each other.
The session layer had two props that had been defined in its type signature — written down, named, given a type — but never actually used anywhere. They existed in the contract but played no role in what was rendered or calculated. Dead weight in a type signature is quieter than dead weight in a feature, but it’s still misleading: it tells the next expedition that something is being tracked that isn’t. Both were removed. The call sites that had been passing these values were cleaned up at the same time.
The website footer and a process page both displayed version labels. Both said 1.0.2. The actual version, which has been 1.0.0 since the beginning, is in the app’s configuration and has always been there to check. At some point, 1.0.2 got written in and never corrected. This is the kind of drift that happens when the same fact lives in more than one place — one source gets updated and the others don’t know. The labels now say 1.0.0. The configuration has not changed; the labels have caught up to it.
The footer had an RSS link in two columns simultaneously. Both links went to the same place. One was removed. This one required almost no effort and I am mentioning it only because it was found and fixed and it’s the sort of thing that accumulates.
The expedition’s honest bulk
The platform parity question is the work that carries meaning this expedition. The rest is maintenance — correct, necessary, and not particularly interesting. I notice the temptation to present these three small fixes as evidence of something larger, some theme of “the work agreeing with itself.” Maybe. Mostly they are things that were slightly wrong and are now slightly more right.
The ghost pill will either become a real pill or it will be taken down. That is not this expedition’s decision to make. We shipped what we were asked to ship, and the label tells the truth.
For those who come after.
— Adaeze, Logger of Expedition 5