frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Tell HN: 2 years building a kids audio app as a solo dev – lessons learned

27•oliverjanssen•10h ago
Hi,

I started Muky in April 2024. Classic side project that got out of hand. We have two kids - the younger one is happy with the Toniebox, but our older one outgrew it. She started asking for specific songs, audiobooks that aren't available as figurines, and "the music from that movie."

We had an old iPad Mini lying around and already pay for Apple Music. Felt dumb to keep buying €17/$20 figurines for 30-45 minutes of content when we have 100 million songs.

Now at version 4.0 after ~20 updates. Some lessons:

On the hardware vs app tradeoff: Toniebox and Yoto are brilliant for little ones – tactile, simple, no screen needed. But they hit a wall once kids want more. And handing a 5-year-old Apple Music means infinite scrolling and "Dad, what's this song about?" Muky sits in between – full library access, but parents control what's visible.

On sharing: Remember lending CDs or cassettes to friends? Or kids swapping Tonie figurines at a playdate? I wanted that for a digital app. So I built QR code sharing. Scan, import, done. And unlike a physical thing – both keep a copy.

On onboarding: First versions: empty app, figure it out yourself. Retention was awful. Now: 4-step onboarding that actually guides you. Should've done this from the start.

On content discovery: 100 million songs sounds great until you have to find something. Parents don't want to search – they want suggestions. Spent a lot of time building a Browse tab with curated albums and audiobooks for kids. Finally feels like the app helps you instead of just waiting for input.

On going native: Went with Swift/SwiftUI instead of Flutter or React Native. No regrets - SwiftUI is a joy to work with and performance is great. Android users ask for a port regularly. No capacity for that now, but Swift for Android is progressing (https://www.swift.org/documentation/articles/swift-sdk-for-a...). Maybe one day. CarPlay is another one parents keep asking for – going native should make that easier to add, if Apple grants me the entitlement.

On subscriptions vs one-time: Started with one-time purchase. Revenue spikes at launch, then nothing. Switched to subscription – existing one-time buyers kept full access. Harder to sell, but sustainable.

Ask me anything about indie iOS dev or building for kids. App is at https://muky.app if you're curious.

Comments

cassiepaper•1h ago
Great niche!

Few questions: - Were you soloing the entire thing? What about ops/research/market analysis? What about the design?

- Did you think about it as product-first or technology-first? Other words, did you build a solution for scoped audio mgmt, or a music player for kids?

- What's your tests status? Full coverage? CI/CD?

- How did you approach the entire legal aspect? Single lawyer? Self? Not at all?

oliverjanssen•1h ago
Thanks!

Solo? Yes, everything. Design, code, marketing, support. No team, no outsourcing. Last few months Claude Code has been a huge help for brainstorming, copywriting, and rubber-ducking code problems.

Product or tech first? Product first, 100%. Started with the problem: my kid needs access to more music, but I don't want to hand over Apple Music. Tech decisions followed from there. SwiftUI because I wanted native performance, Realm for offline, etc.

Tests/CI/CD? Honestly, test coverage is thin. I have unit tests for critical parts (subscription logic, playback state) but not full coverage. No CI/CD - just manual builds and upload to TestFlight. Good enough for a solo project.

Legal? Self, mostly. Apple's standard EULA covers the basics. The app doesn't collect anything.

kreyenborgi•1h ago
Can you explain a bit more on how this is better than just using Spotify? Is the catalogue restricted somehow?
oliverjanssen•1h ago
Good question. Same catalog - Muky uses your Apple Music or Spotify subscription underneath.

The difference: Muky separates the audio player from the admin area. Kids get a locked-down player showing only playlists you created – big artwork, tap to play, nothing else. Parents manage everything in a separate admin area – create playlists, add content, adjust settings.

Spotify means infinite browsing, algorithm recommendations, and "Dad, how do I get back to my song?"

Plus with 4.0 there's a Browse tab with curated content for kids, so you don't have to search through millions of songs yourself.

Think of it as a "view" on top of your existing subscription. Parents curate in the admin area, kids see only what you want them to see.

mrashes•1h ago
Unsure if you're able to but can you speak to how many users you have? Have you done advertising? What rate do people sign up for it now that your on a subscription.
oliverjanssen•1h ago
Advertising: Zero paid advertising so far. All organic - App Store search, word of mouth, a few blog mentions. First HN post and review in German print Magazine helped a lot.

Subscription journey: Started with one-time payment, but hard to justify ongoing development time. Switched to subscription. Not everybody was amused.

First model was freemium – one playlist with max 10 tracks for free. Felt too limiting for new users trying to understand the app.

In December I changed it: all features free to explore, unlimited playlists, all content. Subscription only kicks in when you open the audio player – with 1 month free trial. Since then, good numbers daily with users worldwide. Feels more honest and converts better.

codeulike•1h ago
How much work was it to comply with Spotify's design and branding guidelines when using their content? https://developer.spotify.com/documentation/design#introduct...
oliverjanssen•1h ago
Straightforward. Use official assets, don't modify icons, show attribution.

Tech side: I use both iOS SDK and Web API. Users create their own Spotify app in the developer dashboard to connect – keeps me out of API quota issues.

Zigurd•1h ago
I'm currently using Flutter for a project. Considering I've been lead author or co-author on a few Android programming books, using a cross platform SDK was new for me. Dart is easy to learn, and Flutter makes attractive UI easy. I love to work on a big ambitious projects that really need platform specific implementations, but for the vast majority of cases a good cross platform SDK works well, and is a cost-efficient approach.

Well, not entirely not entirely a new experience: I had to use Xamarin on Android once because the client wanted a unified code base their existing Windows coders could maintain. It was an appropriate choice for that project, which was a piece of industrial equipment. I would not use Xamarin for mass market or even widely deployed enterprise apps.

oliverjanssen•1h ago
Makes sense. Flutter has a good reputation - I've heard mostly positive things.

For me, I had bad experiences with React Native in the past and already built another iOS app in Swift. Knew the ecosystem, liked SwiftUI, so sticking with native felt right. Less context switching, and I can use Apple frameworks directly – MusicKit for Apple Music integration and native offline playback would've been painful to wrap.

Cross-platform definitely makes sense for many projects – just wasn't the right fit for me this time.

Imustaskforhelp•24m ago
Recently Skip got open source, so perhaps you can even make an android application out of it?

Thoughts?

https://news.ycombinator.com/item?id=46706906

oliverjanssen•19m ago
Interesting, hadn't seen Skip before. SwiftUI to Android sounds promising.

Bookmarked – will look into it. Still hoping native Swift for Android matures, but Skip could be a good middle ground. Thanks for the pointer!

jackfranklyn•1h ago
The onboarding lesson is one I had to learn the hard way too. When you build something for yourself, you forget that nobody else has the mental model you do. "Figure it out yourself" feels fine when you're the user, but it's death for retention.

Also resonates with the "product first" approach. Starting with a real problem you actually have - and then following where the tech decisions naturally lead - seems to produce better outcomes than starting with "I want to build something in X framework."

The QR sharing feature is a nice touch. Physical sharing had something going for it that we lost when everything went digital - that friction-free "here, try this" moment. Recreating that digitally is harder than it sounds.

oliverjanssen•1h ago
Thanks!

Exactly. The mental model thing is brutal. You know every corner of the app, so everything feels obvious. Then you watch someone use it for the first time and they're completely lost. Need to do that more often, perfect way to learn.

And yes - QR sharing was about bringing back that "here, just take it" moment. Sending library export as JSON, explaining how to import... too much friction. Scan and done feels right.

stogot•1h ago
I like this idea, but I really don’t get it (maybe I haven’t read enough of your webpage) but how do you integrate with Spotify? Is this native or something they can block/ban. And is it possible to upload content (I have mp3s I let kids listen to on a dumb mp3 player)
oliverjanssen•58m ago
Spotify integration is all official - iOS SDK for playback, Web API for fetching playlists and tracks. Users connect their own Spotify account. Nothing hacky, so no ban risk. Same for Apple Music via MusicKit.

MP3s aren't supported right now – Muky only works with streaming content. But you're not the first to ask. Adding local files to the roadmap, maybe in the future.

bossyTeacher•59m ago
Mind sharing cashflow details? Is the business growing? Do you get a new user for every user that leaves? How do you handle converting free users into paid ones?
oliverjanssen•54m ago
Don't have precise churn numbers yet – changed the subscription model in December so it's still early.

Old model: freemium with 1 playlist, max 10 tracks. Paid unlocks more. Felt limiting.

New model: everything free to explore. Build your playlists, add all content. Subscription only kicks in when you open the audio player to hand it to your kid – 1 month free trial included.

Since then daily signups are solid, users worldwide. Feels more honest – people see the full value before paying. Still indie scale, but growing steadily.

holoduke•41m ago
Similar story here , but started mine when first Android phones were released. Had great success. And still have. Now with AI I have 2 max accounts with Claude and I don't touch any code anymore. I went full high risk cowboy style. All code. Server management, databases, security, upgrades, root access. Access to all my accounts, keys, hashes all goes into my prompts. Everything with ai. I don't even go to the Playstore site to publish. The only thing I touch is my terminal with Claude instances and opencode, Gemini or codex as backups.
oliverjanssen•38m ago
That's bold! Full AI-driven, including deploys and server access – respect for going all in.

Curious how you handle when AI makes mistakes on production systems?

grantc•11m ago
Great idea. The things available to give parents controlled access to music aren't great. Echo (Dot) + Kids+ seems to be the closest to meh on the speakers--the kids devices like Yoto are too limited (or require downloads) and the other voice speakers are worse than Echo/Alexa/Kids+. Which is mind-boggling because the Echo setup is wildly bad. I was thinking about how to lock an old iPad down to nothing but this app -- will need some time looking at parental controls again. Adding respect for Explicit tags might be a good feature if you don't have it. I have playlists that I'd love to share to them, but 5% of the songs need the radio edit or need to be elided.
oliverjanssen•8m ago
Thanks! For locking down the iPad – check out Guided Access (Settings > Accessibility). Locks the device to a single app, you need a PIN to exit. Works great with Muky, that's the main setup I recommend.

For speakers, I just got my daughter the Wonderboom 4 – pairs via Bluetooth, sturdy, sounds good. Combined with an old iPad it's a solid setup.

Explicit tag filtering is a good idea. Right now parents manually curate playlists, so you control what goes in. But auto-filtering based on explicit flags could help. Adding it to the list - thanks for the suggestion!

potatowaffle•7m ago
Love the idea.

If you don't mind sharing, besides producthunt launches, how have you promoted it?

oliverjanssen•3m ago
Thanks!

Honestly, still figuring this out. Tried social media (Instagram, Threads, Bluesky) and reaching out to blogs/reviewers. Gets some traction but reach is limited. A German print magazine review helped, and the first HN post brought a spike.

What's funny – parent to parent word of mouth has been really helpful. I get lots of emails from parents with ideas or bug reports. They found the app through friends or family. That feels more sustainable than any marketing trick.

But I still need to find better channels with more reach. Most growth so far has been organic via App Store search. Open to suggestions if anyone has ideas! ;)

Take potentially dangerous PDFs, and convert them to safe PDFs

https://github.com/freedomofpress/dangerzone
26•dp-hackernews•1h ago•7 comments

Show HN: ChartGPU – WebGPU-powered charting library (1M points at 60fps)

https://github.com/ChartGPU/ChartGPU
478•huntergemmer•9h ago•142 comments

Claude's new constitution

https://www.anthropic.com/news/claude-new-constitution
268•meetpateltech•8h ago•253 comments

Golfing APL/K in 90 Lines of Python

https://aljamal.substack.com/p/golfing-aplk-in-90-lines-of-python
38•aburjg•5d ago•7 comments

Show HN: RatatuiRuby wraps Rust Ratatui as a RubyGem – TUIs with the joy of Ruby

https://www.ratatui-ruby.dev/
41•Kerrick•4d ago•4 comments

Skip is now free and open source

https://skip.dev/blog/skip-is-free/
254•dayanruben•9h ago•97 comments

Letting Claude play text adventures

https://borretti.me/article/letting-claude-play-text-adventures
65•varjag•5d ago•23 comments

The WebRacket language is a subset of Racket that compiles to WebAssembly

https://github.com/soegaard/webracket
85•mfru•4d ago•20 comments

Challenges in join optimization

https://www.starrocks.io/blog/inside-starrocks-why-joins-are-faster-than-youd-expect
37•HermitX•7h ago•8 comments

Show HN: Rails UI

https://railsui.com/
97•justalever•5h ago•62 comments

Stevey's Birthday Blog

https://steve-yegge.medium.com/steveys-birthday-blog-34f437139cb5
13•throwawayHMM19•1d ago•3 comments

Jerry (YC S17) Is Hiring

https://www.ycombinator.com/companies/jerry-inc/jobs/QaoK3rw-software-engineer-core-automation-ma...
1•linaz•2h ago

TrustTunnel: AdGuard VPN protocol goes open-source

https://adguard-vpn.com/en/blog/adguard-vpn-protocol-goes-open-source-meet-trusttunnel.html
46•kumrayu•7h ago•10 comments

Waiting for dawn in search: Search index, Google rulings and impact on Kagi

https://blog.kagi.com/waiting-dawn-search
208•josephwegner•6h ago•132 comments

Mystery of the Head Activator

https://www.asimov.press/p/head-activator
12•mailyk•3d ago•1 comments

Three types of LLM workloads and how to serve them

https://modal.com/llm-almanac/workloads
28•charles_irl•8h ago•1 comments

An explanation of cheating in Doom2 Deathmatch (1999)

https://www.doom2.net/doom2/cheating.html
16•Lammy•4d ago•1 comments

Setting Up a Cluster of Tiny PCs for Parallel Computing

https://www.kenkoonwong.com/blog/parallel-computing/
23•speckx•5h ago•10 comments

SIMD programming in pure Rust

https://kerkour.com/introduction-rust-simd
43•randomint64•2d ago•14 comments

Can you slim macOS down?

https://eclecticlight.co/2026/01/21/can-you-slim-macos-down/
162•ingve•16h ago•201 comments

Tell HN: 2 years building a kids audio app as a solo dev – lessons learned

27•oliverjanssen•10h ago•24 comments

Nested code fences in Markdown

https://susam.net/nested-code-fences.html
182•todsacerdoti•11h ago•61 comments

Scientists find a way to regrow cartilage in mice and human tissue samples

https://www.sciencedaily.com/releases/2026/01/260120000333.htm
242•saikatsg•6h ago•65 comments

Slouching Towards Bethlehem – Joan Didion (1967)

https://www.saturdayeveningpost.com/2017/06/didion/
52•jxmorris12•6h ago•4 comments

Open source server code for the BitCraft MMORPG

https://github.com/clockworklabs/BitCraftPublic
28•sfkgtbor•7h ago•9 comments

I finally got my sway layout to autostart the way I like it

https://hugues.betakappaphi.com/2026/01/19/sway-layout/
18•__hugues•15h ago•4 comments

JPEG XL Test Page

https://tildeweb.nl/~michiel/jxl/
158•roywashere•7h ago•109 comments

Without benchmarking LLMs, you're likely overpaying

https://karllorey.com/posts/without-benchmarking-llms-youre-overpaying
132•lorey•1d ago•70 comments

Show HN: TerabyteDeals – Compare storage prices by $/TB

https://terabytedeals.com
57•vektor888•3h ago•49 comments

Show HN: Company hiring trends and insights from job postings

https://jobswithgpt.com/company-profiles/
35•sp1982•6h ago•4 comments