FeverBee
A privacy-first iOS app for tracking your kid's fever and medication doses, with zero servers involved.
- Swift
- SwiftUI
- CoreData
- CloudKit
- StoreKit 2
- Swift Charts
FeverBee started the way most useful software does: out of 2am frustration. Kid’s got a fever, I’m trying to remember when the last dose of paracetamol was, flipping between the Notes app and mental math. So I built the thing I actually wanted — a dead-simple app that logs temperature and medication per child, tells you when it’s safe to give the next dose, and otherwise stays out of your way.
Privacy wasn’t a bullet point I added later, it’s the whole design constraint. No account, no backend, no analytics. Everything lives in the user’s own private iCloud via CloudKit. I genuinely cannot see anyone’s data, which is exactly how a toddler’s health data should work.
Status
Status honestly: TestFlight, not the App Store yet. Partner sharing now actually works — it silently didn’t for a while, for the SwiftData reason below — and I’m mid-redesign on a friendlier visual layer (codename “Hive”: honeycomb overview, one page per child) before I’m comfortable calling it 1.0. The store release itself then waits in the same line as my other apps: VAT-UE paperwork, plus an RC Xcode I can’t install while my Mac runs beta macOS.
How it was built
It’s SwiftUI + CoreData under the hood, though it didn’t start that way. I built it on SwiftData first, because that’s the modern default — until I hit the wall that SwiftData’s CloudKit support tops out at a private database. There’s no way to mirror a CKShare into a SwiftData store, which is a dealbreaker when the entire point is letting two parents watch the same fever chart. So I migrated the whole persistence layer to NSPersistentCloudKitContainer with paired private/shared stores, keeping every field name byte-identical so existing testers didn’t lose their data on the way over. Not glamorous, but it’s the “boring and correct” I’d want from anything touching my kid’s health records.
Lessons learned
My own planning docs went stale faster than I expected once the redesign branch took off — description said “reports and sharing cut from v1.0” while the code already had both. Docs drift. Trust the source tree.