Is the market for baby tracking apps truly saturated, or are developers simply failing to address the core needs of sleep-deprived parents? For one developer, the answer was the latter, leading to the creation of PooPeeMilk, an app born not from a market analysis, but from the sheer, unadulterated chaos of welcoming premature twins.
The origin story is starkly unglamorous: a week of wrestling with clunky, feature-laden apps on the App Store, only to retreat to a paper notebook. Even that analog solution proved a disaster — lost, illegible at 4 AM, and ultimately, a casualty of a baby-related incident. Yet, the cognitive overhead of that messy notebook was still lower than the digital alternatives. This inefficiency, this pervasive friction for new parents, is what spurred the development of PooPeeMilk.
The directive for this app is simple, almost brutally so: logging an event takes one tap and zero thought. The current iOS version, with Android on the horizon, aims to strip away complexity, focusing on the four essential pillars: feeding (breast or formula, with volume), diapers (wet or dirty), weights, and milestone photos. From this minimalist data collection, the app generates a 24-hour ‘rhythm ribbon’ visualization and a PDF report for pediatricians.
While the core logging functionality is free, features like multi-baby support, shared caregiver access, photo storage, and PDF export are tucked behind a subscription. It’s a classic freemium model, designed to allow initial adoption without immediate financial commitment, a smart play for a solo developer validating a product.
The Stack: Pragmatism Over Hype
The technology choices for PooPeeMilk are, on the surface, what you’d expect from a modern indie developer in 2025: a blend of familiar, performant, and cost-effective tools.
- Mobile: Expo + React Native (new architecture enabled)
- Backend: Next.js App Router on Railway
- Database: Postgres via Prisma
- Photo storage: Cloudflare R2
- Marketing site: Separate Next.js app, also on Railway
- Auth: Passwordless email codes (Resend + JWT)
- Payments: RevenueCat
- Translations: GPT-4o-mini at build time
What’s compelling here isn’t just the list of technologies, but the rationale behind each selection, often a decisive rejection of a more complex or costly alternative.
Why Expo? It’s Not About Reinventing the Wheel
When it comes to mobile development, the choice between native development and a framework like React Native often hinges on development speed and maintainability for a solo operator. Expo, with its managed workflow and strong tooling, seems to be the clear winner here. The developer spent a mere day on this decision, recognizing that the burden of manually integrating Expo Modules (for image manipulation, file system access, localization, etc.) and managing Over-The-Air (OTA) updates would be immense for a single person. The new architecture in React Native, which Expo use, helps close any performance gaps that might arise with this approach for an application of this complexity. Furthermore, Expo’s free tier offers sufficient build minutes and OTA update capacity for an early-stage project.
Authentication: Simple, Secure, and Accessible
In the realm of authentication, the decision to eschew traditional username/password or even social logins for passwordless email codes is a telling one. Sleep-deprived parents, juggling multiple tasks and often exhausted, are unlikely to reliably remember complex passwords. Moreover, the need for easy onboarding for partners or grandparents invited as caregivers makes a frictionless email-based system far more practical. Universal links and their potential failure modes are avoided in favor of a strong, six-digit code system that “just works everywhere.” This choice highlights a deep understanding of the user’s context, prioritizing immediate usability over more complex security theatre.
Data Storage: The Egress Advantage
Cloudflare R2 emerges as the victor over services like AWS S3, primarily due to its free egress. For a baby tracker, the future prospect of parents wanting to export and compile photos for memory books makes outbound bandwidth charges a significant concern. Uploading directly to R2 via presigned URLs, bypassing the backend as a proxy, also streamlines the process and reduces server load. This pragmatic decision directly translates to lower operating costs and a better long-term experience for users who might eventually want to retrieve their precious memories.
Payments: Embracing the Indie-Friendly Path
The integration of RevenueCat is a critical decision for any indie developer launching a subscription-based app. The complexity of managing Apple’s StoreKit and Google Play Billing SDKs, with their myriad edge cases and silent failure modes, is a significant time sink. RevenueCat abstracts this away, offering a unified API and, crucially, an indie-friendly pricing model. The “free until you have revenue” tier is, as the developer puts it, “the whole pitch” for a solo creator who hasn’t yet validated the market extensively.
Infrastructure: Railway’s Unified Experience
Railway enters the picture as the chosen hosting platform for the backend, marketing site, and database. The appeal here lies in its integrated approach to deployment and management. Moving beyond a fragmented setup of Heroku, Vercel, and separate managed databases, Railway offers a cohesive experience where the app, database, environment variables, and logs all feel like part of a single, coherent product. For a solo developer, minimizing context switching is paramount, and Railway’s unified platform delivers on this promise.
Lessons Learned: The Wisdom of Hindsight
Even with a well-thought-out stack, the journey isn’t without its bumps. The developer offers two key pieces of advice:
- Write tests sooner. Not necessarily more tests, but earlier. As a solo developer iterating rapidly, regressions can creep into less-considered code paths. A handful of end-to-end tests on core flows (sign-in, logging, viewing data, payment prompts) could have caught several bugs during the TestFlight phase.
- Think harder about the data shape before the schema. The current
Eventtable, which handles feeds, wet diapers, and dirty diapers through optional columns, is efficient for writing data but less so for statistical queries. A polymorphic schema would have been cleaner—a realization that often comes only after the initial implementation.
Is PooPeeMilk a Revolution or Just a Good Idea?
Calling PooPeeMilk a “revolutionary” product might be an overstatement. However, its genius lies in its brutal simplicity and laser focus on user pain points. It’s a masterclass in identifying a problem—the cognitive burden of existing baby trackers—and architecting a solution that prioritizes a single, critical user action: logging an event with minimal effort. The tech stack, while standard, is applied with a clear understanding of resource constraints and user experience, making it a compelling case study for indie developers and a welcome alternative for parents drowning in digital noise.
Why Does This Matter for Developers?
The PooPeeMilk story underscores a fundamental truth in software development: the most successful products often solve a genuine, tangible problem for a specific user group. The developer didn’t build this because the market data showed a gap; they built it because they lived the problem. This human-centered approach, combined with pragmatic technology choices and a focus on cost-efficiency, is a blueprint for indie success in a crowded application landscape. It’s a reminder that sometimes, the most elegant solutions are the ones that remove complexity, rather than add features.
🧬 Related Insights
- Read more: Intel NPU Linux Driver Adds Frequency Limits — Power Reality Check for AI Chips
- Read more: One Developer’s VS Code Extension Just Made Committing Secrets a Lot Harder to Mess Up
Frequently Asked Questions
What does PooPeeMilk actually do? PooPeeMilk is a baby tracking app designed for simplicity, allowing parents to log feeding, diaper changes, weights, and milestones with a single tap. It also generates a daily pattern view and exportable reports for pediatricians.
Is PooPeeMilk free to use? The core logging features of PooPeeMilk are free. Advanced features like multi-baby support, shared caregivers, photo storage, and PDF export require a subscription.
What technology is PooPeeMilk built with? PooPeeMilk uses Expo with React Native for the mobile app, Next.js for the backend and marketing site, Postgres for the database, Cloudflare R2 for photo storage, and RevenueCat for payment processing.