Beli-Style Rankings Land in the Parks Family, Twice
- Projects
- 4
- Commits
- 17
- Lines
- +3.2k / −258
- Files
- 62
- Claude time
- 17h
- Tokens
- 9.4M
Commits by day
Where the work went
Park'd58%
LuckyCoin42%
This week had a clear center of gravity: a new way to rank parks showed up in two different apps within hours of each other, one as a port and one built fresh. The rest was the usual solo-studio housekeeping — getting an Android build ready to publish, and unbreaking some email metrics that were quietly lying to us.
Ranking parks by asking "which do you like more?"
The headline feature is a Beli-style ranking system, where instead of assigning a park some arbitrary number of stars, you're shown two you've visited and pick your favorite. Enough of those little duels and the app can sort your whole list into an honest order. It landed in both NationalParks and Park'd this week.
What makes it a nice studio story is the direction of travel. In NationalParks the commit is explicit that it's an "iOS parity port" — the feature already existed somewhere in the family and got carried over — while in Park'd the same idea shipped "Android-first." So the two parks apps are trading features in both directions rather than one always chasing the other. NationalParks also got ranking previews and a debug seed so we can verify the sort behaves deterministically instead of squinting at whatever mood the data happens to be in.
Getting Park'd ready to actually ship
With rankings in, the bulk of the week's line count went to making Park'd on Android something we can put in front of people. There's now a Play Store publishing pipeline plus the store assets that go with it, which is the unglamorous connective tissue between "it works on my device" and "it's live."
Alongside that, a run of interface fixes that each address a specific way the app looked wrong: the map now takes the full height it deserves and the park summary sheet expands all the way instead of stopping short; the gap between content and the tab bar on gesture-navigation phones is gone; and the paywall title is legible in dark mode now that it picks an adaptive color instead of stubbornly staying dark-on-dark. We also added an opt-in -PslimAbi build flag for lean single-architecture sideload builds — handy when you just want to hand someone a small APK rather than the everything-everywhere universal one.
LuckyCoin's email numbers were fibbing
Over on LuckyCoin's Android side, the work was all about the email reporting and the growth agent that leans on it. The root issue was a MailerSend v2 webhook that wasn't extracting the recipient correctly, which quietly broke unique open/click tracking and the suppression logic that depends on it. With unique metrics unreliable, both the send report and the growth agent now fall back to raw open/click counts — and specifically that fallback stops one week's untracked opens from tripping a false hold on the automation. Less exciting but real: the news section came back to the email, trending names are fixed, the proof count respects its cap, news images now skip placeholders in favor of actual article photos, and the approve/regenerate confirmation page disables its button while working so you can't double-fire a regeneration by being impatient.
A tune-up for the tablet reminder app
remindme-tablet got a code-audit pass rather than new features. We committed an audit-driven TODO and a CLAUDE.md capturing the findings, then acted on some of them: shoring up WebView resilience and its lifecycle handling, cleaning up the manifest, adding credential detection and CI, and settling the MindUp branding question. It's the kind of week that doesn't add anything a user would notice but makes the next few changes safer to make.
Two parks apps swapping the same feature in opposite directions is a decent snapshot of where this all points: the family keeps converging, one port at a time.


