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.
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.
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.
1. I bought her an "old school" mp3 player for Christmas, like an iPod. It's pretty good, but it's really missing the easy to use app similar to the original iTunes where she can load and manage songs by herself, without needing me to grab them from a folder, plug in the device, copy the songs across after it mounts, etc. Does Muky provide that functionaliy, like an iTunes for kids before everything went streaming and on-device?
2. She also loves audiobooks. You mention audiobooks, alongside Apple Music (I don't have Spotify). Does Apple Music support audiobooks? I would love a similar interface that promotes discover of songs, but for audiobooks.
Congrats on getting this out there. I truely believe there is a viable niche for kids music apps that sits between toddler and access to all-the-music-in-the-world-at-your-fingertips that becomes a huge time sink for kids who can't quite self regulate the shiny interface of modern streaming apps on mobile phones. I almost went down a rabbithole of building one myself, thinking, how hard can it be...thank you for saving me the 2 years to understand its hard! :-)
To your questions:
1. Unfortunately no – Muky only works with streaming content from Apple Music or Spotify. No local MP3 support or syncing to external devices. You'd still need something like the old iTunes workflow for that MP3 player. Local file support comes up often though, it's on the roadmap.
2. There's actually a lot of audiobook content on Apple Music – especially kids stuff. The new Browse tab in Mukychas curated audiobooks to help you discover them.
And yes – "how hard can it be" is a dangerous question. Found that out myself!
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.
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.
Thoughts?
https://news.ycombinator.com/item?id=46706906
Bookmarked – will look into it. Still hoping native Swift for Android matures, but Skip could be a good middle ground. Thanks for the pointer!
Also shout-out to flutter_rust_bridge and a video[0] on YouTube from a conference explaining how to fit it in, I get to use Flutter and Dart for the UI parts and everything else in Rust. Another great thing because of Flutter's hot-reload I get to avoid the sucky parts of waiting for Rust code to compile to see UI changes. I've also had good (not great) success getting Gemini 3 Pro to sketch out the initial UI and the boilerplate and that also allowed me to move a bit faster than I would've otherwise.
[0] https://youtu.be/yZ0XHRfU7Ao?si=JQXHS61ycxVSq9GF
Hot-reload is something I miss in native – SwiftUI previews help but not the same. For my use case native made sense, but I can see why Flutter wins for greenfield projects with multi-platform needs.
For my youngest, I installed Qobuz, which has all the music, but much fewer features. They reportedly pay artists more per stream than any of the other apps (I guess because they don't have so many expenses for social media app development). Your app UI looks much cleaner though :)
Give Muky a try if you want! Qobuz is nice – would love to add more services like Qobuz or Deezer at some point, as long as the API is good and offline listening is supported. And yeah, wish more services would adopt a user-centric payment model – would be so much better for artists.
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?
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.
Love the concept here and I would be a customer if you were still offering lifetime, but with so many things going subscription nowadays adding another at $40/year just feels a bit on the higher side. Definitely understand how that assists with cash flow for ongoing development though.
The pricing is tricky. One-time worked for users but not for ongoing development. $40/year sounds steep, but it's ~$3.30/month – less than a single Tonie figurine. Family plan can be shared with grandparents too.
That said, I hear you. Always evaluating the model.
As they age out of Yoto this would certainly be worth it at that point.
I've noticed a trend that most popular apps nowadays are the ones that serve this model.
How do you manage promotion? I have a moderate amount of success with Reddit Posts, there is always a spike in downloads. But, going for a specific niche (a scrollable feed notes app) https://apps.apple.com/gb/app/notesub/id6742334239 means that I am never sure where I can find people who may like my app.
I like the UI of your app btw.
What's worked so far: HN posts (like this one), App Store search/optimization, and surprisingly – just parents telling other parents. I get emails from people who found Muky through friends. Slow but it sticks.
Reddit I haven't cracked yet. Parenting subs can be weird about self-promo. What subs are working for you?
Your app looks good, too!
Very well executed product and posts, and congratulations on your success!
It really is, unless you want to draw outside the lines. If I want to do anything that isn’t explicitly in the SwiftUI model, it becomes Kludgeopolis, very quickly. There’s some things that can only be done with UIViewRepresentable, which I consider to be a bit of a “white flag.”
Also, because of the way that the rules are written, it’s difficult for me to segregate areas of functionality into extension blocks (like I do, with UIKit). I tend to have fairly long blocks of code, which is less than optimal.
But the performance really is excellent, and I can often get a lot done, with much less code, than UIKit.
Never worked with hybrid systems, like React, so the same might be true for them.
That may be a good thing for usability across apps but it feels like a low code platform sometimes.
Trade-off I'm willing to make though. For a solo project, fast iteration beats pixel-perfect control.
Wait until you work with a professional designer. They insist on perfection. Can drive me nuts.
But I have to admit; the projects that I’ve done with designers, are a lot more popular than the ones I did, myself.
I've had both experiences. Good designers push you to make things better. But some insist on details no user will ever notice. Finding the right balance is key.
Here’s the talk about it:
https://media.ccc.de/v/37c3-11993-toniebox_reverse_engineeri...
And the project website:
https://tonies-wiki.revvox.de/
There’s even a custom firmware that can send activity data to Home Assistant, can pull audio from a local server, etc.
What stood out to me was how much data gets tracked by the original firmware. Kind of eye-opening. The custom firmware fixing that is great for privacy-conscious parents.
I set a (very) old phone into child mode total lockdown with only YouTube music installed to make use of my family account and streaming playlists ... only to find it (the YTM app) wouldn't open due to the social media ban in Australia (legislation which I otherwise - controversially - completely support).
Interesting about Australia – sounds like the social media ban for under-16s now includes YouTube, but YouTube Music as a pure streaming service should be separate. The ban targets social platforms with feeds and interactions. Might be worth checking if YouTube Music specifically falls under it or if the device lockdown is catching it by accident.
Also regards the ban, from what I've read Google have included Music by choice. Potentially as a bargaining chip.
[0]https://github.com/cjlm/yoto-playlist-creator
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.
I was planning to make something that used rfid cards to play specific songs / albums so it worked more like yoto. But that would just make it even more niche!
Good luck you you!
And niche isn't bad – sometimes that's exactly where the best apps live.
Apple Music via MusicKit doesn't have that restriction – just works with the user's subscription.
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!
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.
I hope you are successful and eventually go after video content too. Imagine a Youtube app without infinite browsing or the algo and a "you can watch 3 videos this weekend"-counter/countdown.
Video is tempting but a different beast – streaming APIs, licensing, way more complex. Maybe someday. For now staying focused on audio.
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.
The harder part was deciding on the model. Freemium limits? Trial length? What to lock? I changed this multiple times. The code changes for each iteration were small, but the decisions took longer.
I have a sneaking suspicion they might steal your idea and release their own version before they do that. But maybe you get lucky and they don't do that, so definitely go for it. Best of luck!
Anyway I’m a newly minted dad and I’m bookmarking this for a few years out. Congrats! This is brilliant and feels inspired.
And yes – big tech seems to avoid this space. Maybe too niche, maybe too much liability with kids content. Works for me!
For now I'll keep building. Worst case, my kids still have a music player that works exactly how we want it. :)
If you don't mind sharing, besides producthunt launches, how have you promoted it?
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! ;)
By having users create their own developer app, each user has their own quota and I stay out of the approval process entirely. Works well for a niche app like this.
More context here: https://community.spotify.com/t5/Spotify-for-Developers/Upda...
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.
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.
Curious how you handle when AI makes mistakes on production systems?
Interesting that it handles server config well. I'm still hesitant on production systems, but maybe that changes over time. Getting locked out by misconfigured firewall rules sounds stressful though!