Nara Baby introduced paid plans, so I tried building our own baby tracker with Claude Code
We have two kids and had been using Nara Baby for more than two years. I liked it. When they announced paid plans, I started wondering how difficult it would be to build something for us instead. My reasoning was roughly: why pay another subscription when I can pay Apple $99 a year for a developer account and build my own app? Add the Claude subscription I already pay for and all the time I spent on it, and this becomes a fairly questionable way to save money. But it was a good excuse to try. I made a few basic iPhone apps about ten years ago, using Cordova, HTML and JavaScript. I had never written Swift. For this one I used Claude Code. I described what we liked about the old app, what annoyed us and what we wanted to add. Proper Apple Watch support was important to me. So was letting both parents see the same entries and running timers. After a few days we had a version we could use on our phones. Getting it ready for the App Store took about two weeks. It's called Bober. The biggest surprise for me was CloudKit. I asked how we could share data between two parents without running our own backend. We started with a small Python server while my Apple developer account was inactive, then moved to CloudKit. The baby records are stored locally, and family sharing uses an iCloud zone shared between our Apple IDs. I don't have a server to maintain. The first version worked surprisingly well, but it had that familiar AI look: different font styles, buttons everywhere, too much going on. What helped was explaining more precisely what I wanted each screen to look like and how I wanted to use it. Consistent typography and controls, fewer things competing for attention, Liquid Glass for navigation rather than on every surface. Claude was surprisingly good at working out how to get there once I'd described the result I wanted. I also gave it screenshots of Apple's own system apps as design references and used these skills: Paul Hudson's SwiftUI Pro Paul Hudson's SwiftData Pro Liquid Glass for iOS Those helped with modern SwiftUI and SwiftData practices and using the native Liquid Glass components. The design still isn't perfect, but I'm very happy with how it turned out. It's all native, feels fast, and we actually use it every day. Some of my favourite parts are the small system integrations. I can log things on the Apple Watch, see a running timer in a watch-face complication, and have Live Activities on the lock screen and Dynamic Island. There are widgets for quick access too. Having all of that in an app I helped put together is still pretty cool to me. There were real bugs too. One crash kept happening when my wife joined the family. Claude suggested several plausible causes, but the actual TestFlight crash log was what finally got us to the right fix. I also had it review the import, sync and deletion paths before release. An app like this needs to keep the old entries safe. Then I renewed my Apple account and found my old apps still sitting there, untouched for more than ten years: a Swiss speeding-fine calculator, a national anthem app, a law reader and an army-ranks app. I gave Claude screenshots of those old apps and had it rebuild them in SwiftUI, with expanded features. That used up my weekly limit, but it got me interested in making apps again. Bober is free, with no ads, subscription, in-app purchases or tracking. There is no separate Bober account. I made it for our family and published it because other parents might find it useful too. It can import Nara Baby CSV exports, so we could keep our existing history. App Store Happy to go into more detail about the CloudKit setup or how I worked with Claude Code.