33 Languages, Two New Android Apps, and One Fix Shipped Everywhere
- Projects
- 18
- Commits
- 63
- Lines
- +251k / −17k
- Files
- 1280
- Claude time
- 20h
- Tokens
- 30.9M
Commits by day
Where the work went
LuckyCoin34%
Lucky RNG18%
PoultryPal17%
Park'd17%
Price Guide14%
This was a week about the edges of the portfolio: the web companions that sit in front of the apps, the Android ports still catching up to iOS, and one small purchase bug that turned out to live in nearly every app we ship.
RandomNum learns 33 languages
The single largest chunk of the week, by a wide margin, went into RandomNum. Every tool and every homepage got localized into 33 languages, and while we were in there we added a hub grid to each homepage so the tools link to each other instead of dead-ending. On top of that came 12 long-tail landing pages, the soft-404 fixes that were quietly telling search engines those pages weren't worth crawling, and the same 33-language treatment applied to the new pages. It's a lot of generated files — the diff is enormous — but the practical upshot is that a site that only spoke English now speaks to most of the people who might land on it, and search engines can actually find the pages. We also pointed the footer's "Stuck at Home, LLC" back at the studio site, which is the kind of one-line change you notice was missing only after you fix it.
Two more apps show up on Android
The Android catch-up got two new arrivals. PriceGuide-Android landed as an initial import — 265 files of scaffolding to bring the app onto the platform at all. Parkd went further in the same week: we scaffolded it (Compose, Firebase, RevenueCat, Room, maps-compose), built out the data and user layers against the NPS repository, ported every UI surface over from iOS — Map, Explore, Stats, Settings, park detail, paywall, onboarding — then ran a parity audit to catch the insets and legacy-library gaps, and finished by matching the iOS premium page down to the crown icon and gradient button. That's roughly the whole arc of getting an app to parity, compressed into a few days, and it's another two names moving toward the both-platforms column.
LuckyCoin on the web starts acting like the app
The LuckyCoin web companion got a steady push toward matching what the app already does. Coin of the Day now runs the app's exact algorithm — the Numista pool plus the same Knuth hash — so the pick on the web is the same pick you'd see in the app, and it draws from the most-collected pool. My Coins became a searchable collection view mirroring the app's owned-coins grids, and we added CSV export with a settings UI to go with it. Silver articles now show live melt floors using the same floor logic as the coin pages, so the numbers don't disagree with themselves across the site. Around all that: several content waves of value guides (Buffalo nickel, Morgan and Franklin charts, Sacagawea and Susan B. Anthony dollars, Bicentennial quarter, silver Kennedys, the 1943 steel cent with its actual photo), a premium-page redesign, and tracked store CTAs so we can finally see when the web sends someone to install the app.
One fix, shipped almost everywhere
The least glamorous and most widespread work: a RevenueCat entitlement heal plus a live customerInfoStream listener, meaning if a paying customer's subscription state gets out of sync the app now reconciles it instead of leaving them locked out of what they paid for. We wrote it once as a best practice in StuckAtHomeKit and then applied it across the fleet — LuckyCoin, LuckyFind, LuckyGame, LuckyNote, LuckySale, LuckyStrike, LuckyVinyl, NationalParks, PriceGuide, and CoinIdentifier. This is the quiet advantage of a shared kit: find one purchase bug, fix it in ten-plus apps in an afternoon.
The rest
LuckyCoin proper got a batch of parity and paywall tuning: the leaderboard now pins "Your Ranking" at the top to match Android, duplicate-email accounts resolve to the most-active document, achievements that need more than ten countries stay hidden until the catalog can back them, and the paywall got a less-frequent cadence with engagement-based offer targeting. On Android, LuckyCoin picked up an in-app newsletter opt-in card (localized into 9 locales) wired to a new MailerSend sender.
Behind the scenes, the studio's own support tooling grew a Support inbox at /studio/support with a needs-you badge, the ability to send replies straight from the dashboard, an AI rewrite step in the catch-up flow, and a customer context panel showing lifetime value, an outdated-build flag, and repeat-contact history — the beginnings of answering support without leaving our own tools. And PoultryPal got its own marketing and SEO site from scratch, with a breed explorer, guide cover images, an exploded-UI landing redesign, and clean screenshots in phone frames.
A week that mostly lived outside the apps themselves — the sites in front of them, the platforms they don't fully cover yet, and the plumbing they all share.





