Stuck at Home LLC logo
← All posts
3 min read

HiveLog from Zero, Plus a Toolkit to Build the Next One

hivelogstuckathomekitluckycoin
Projects
4
Commits
43
Lines
+5.7k / −664
Files
61
Claude time
19h
Tokens
16.6M

Commits by day

MTWTFSS

Where the work went

  • LuckyCoin100%

This week had two heads on one body: we built an entirely new app, HiveLog, and while doing it we kept yanking the genuinely reusable bits out into a shared kit so the next new app starts further down the road. One-person studio math — every hour spent on plumbing for app number fourteen should pay off on number fifteen.

HiveLog: a whole app, more or less in a sitting

HiveLog is a beekeeping log — hives, inspections, the works — and it's the first app we've built start-to-finish through what we've been calling the cookbook pipeline. The commit history reads like time-lapse footage: the foundation lands, then a demo-data seeder and a recent-activity card, then the missing CRUD (you could create things but not, you know, edit or delete them — which is a problem for a logging app), then the features that actually justify charging money.

The substance: inspections now carry photos, auto-fetched weather (Open-Meteo, so no API key or entitlement to babysit), and custom inspection templates. There are colony-health and harvest-trend charts via Swift Charts, CSV and PDF export to back the paywall promise, reminders and notifications as the retention hook, and an on-device voice-to-structured-fields assist for logging an inspection without typing. Analytics goes through Apple's own App Analytics rather than dragging in Firebase — one fewer dependency to carry for years. We also did CloudKit sync prep so your hives can eventually follow you across devices.

Then there's the part that's hard to put in a changelog: making it not look like a stock SwiftUI template. A big chunk of the week was a design-language pass — a honey gradient hero, a honeycomb texture that bleeds all the way up through the status-bar strip, a honeycomb hive grid on the dashboard, twirling bees, a springy animated ring, haptics. Stock nav bars got replaced everywhere with custom honey sheet headers. Somewhere in there we also fixed a temperature field cheerfully displaying "°F °F" and softened some shimmer that read as blocky. None of this is essential to logging a bee, and all of it is the difference between an app that feels alive and one that feels like a school project.

We added a unit test target too, which immediately earned its keep by catching a parser bug. Funny how that works.

StuckAtHomeKit: the parts we never want to write twice

The more interesting long-game story is StuckAtHomeKit, which got its first modules this week — and not by accident, since HiveLog was the proving ground for all of them. The kit now holds typed analytics (a real event taxonomy plus a sink), onboarding, review prompts, purchases (with a testable store seam, so paywall logic can be tested without hitting StoreKit), a canonical paywall with a single trigger rule and automatic funnel logging, an "Enjoying it?" feedback gate, and an achievements engine with a trophy screen and unlock toasts.

You can see the two repos handing work back and forth: a kit module lands, then HiveLog wires it up — SAHFeedback gets a form, SAHAchievements gets its trophy screen and unlock toasts. The point is that the next app shouldn't have to reinvent paywalls, review prompts, or feedback gates. We've written those by hand across a dozen apps; now there's one place to fix a bug in all of them.

LuckyCoin: quieter, mail-shaped work

LuckyCoin got two smaller but real changes. On the web side, the newsletter's second tier got hardened: signup rate-limiting, admin token refresh, and resend plus some mobile UX cleanup. On Android, the mailer went provider-agnostic — SES by default with Resend as a fallback — so a single email outage doesn't mean nobody hears from us. Not glamorous, but the kind of thing you're glad you did the day a provider has a bad afternoon.

The week adds up to one new app shipped-shaped and a shared foundation that should make the one after it cheaper. That's the bet, anyway.