Open-source project
babybuddy/babybuddy avatar
babybuddy/babybuddy

Baby Buddy: Self-Hosted Baby Care Tracker with REST API and Home Assistant Integration

A :baby: buddy to help caregivers track sleep, feedings, diaper changes, tummy time and more to learn about and predict baby's needs without (as much) guess work.

2,902 stars403 forksPythonBSD-2-Clause

At a glance

What is it?
Baby Buddy is a self-hosted Django web application that helps caregivers track sleep, feedings, diaper changes, and tummy time to understand and anticipate a baby's patterns. It offers a REST API, a Model Context Protocol server for AI assistant logging, and integrations with Home Assistant, Alexa, and Android and iOS companion apps.
Who is it for?
Baby Buddy suits caregivers who want to keep their infant care data on their own infrastructure and who are comfortable managing a Django application with a PostgreSQL database. The REST API and the growing ecosystem of Home Assistant integrations, hardware keypads, and mobile companion apps make it more extensible than most commercial alternatives.
Can I use it commercially?
Yes. BSD-2-Clause is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 2 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Baby Buddy Tracks and Who It Is For

Baby Buddy is a Django-based web application that records the day-to-day events of infant care: sleep sessions, feedings, diaper changes, tummy time, pumping, and temperature measurements. The core idea is that caregivers who log consistently can identify patterns in a baby's needs and reduce the guesswork that comes with sleep deprivation and an infant who cannot communicate directly.

The application runs on a server the caregiver controls. This distinguishes it from commercial baby tracking apps that store data on vendor-managed servers. All logged data stays on the caregiver's own infrastructure, which some families prefer for privacy reasons or for long-term data ownership.

The project targets technically capable caregivers: parents, partners, and co-caregivers who are comfortable deploying a web application on a home server, a Raspberry Pi, or a cloud instance. It is not a polished consumer app. The interface is functional and documented, but it does not have the guided onboarding or animated UI of commercial alternatives.

A demo instance is available at demo.baby-buddy.net and resets every hour. Login credentials are admin and admin.

The Technical Stack and What the Application Includes

Baby Buddy is built on Django 5.2 with Django REST Framework for the API layer. The requirements.txt lists PostgreSQL support via psycopg2-binary, S3-compatible storage via django-storages with boto3, Plotly 6 for the built-in charts, and django-import-export for data export. The frontend uses Bootstrap 5, Masonry for the dashboard layout, and Plotly.js for interactive charts. The Node.js build system uses Gulp.

The application ships with multilingual support. The README lists translations into over 25 languages including Brazilian Portuguese, Chinese (simplified and traditional), German, French, Japanese, Korean, Russian, Ukrainian, and others. Language is set per user account from the settings page at /user/settings/.

The REST API is documented via an OpenAPI schema at openapi-schema.yml in the repository root. The API covers all logged events and allows external applications to read and write data. This is the integration point for Home Assistant, hardware keypads, and custom frontends.

Version 2.11.0 was released on 2026-09-19, and version 2.10.0 released on 2026-08-05. The project maintains an active release cadence.

Installation and Deployment

Full installation instructions are at docs.baby-buddy.net rather than in the README. The README is intentionally brief and directs readers to the documentation site for deployment steps.

The repository includes a Procfile for Heroku-style deployments, a nixpacks.toml for platforms like Railway or Render, a Terraform directory for infrastructure-as-code deployments, and a .do/ directory for DigitalOcean configurations. A devcontainer configuration allows one-click Codespaces development.

The Python dependencies are pinned in requirements.txt. The top-level dependencies include Django 5.2, Django REST Framework 3.18, Gunicorn 23 as the WSGI server, and python-dotenv for environment variable management. Node.js 24 and npm 11 are required for the frontend asset build step, as specified in package.json devEngines.

For local development using GitHub Codespaces, the README provides a direct Codespaces link. The documentation site covers Docker deployment, which is the most common community-reported approach for home server installations.

The REST API and MCP Server Integration

The REST API is one of Baby Buddy's most used features among technical users. It allows external systems to log events without going through the web interface. The Home Assistant integration uses this API to post diaper changes, feedings, and sleep events from automations or voice assistants. Hardware projects like the ESP8266 Quick Entry Keypad and the Baby Buddy Keypad (ESP32) also use the API for physical button-based logging, which reduces the friction of picking up a phone at 3 AM.

A Model Context Protocol server is available at a separate repository listed in the README as babybuddy/babybuddy-mcp. The MCP server allows AI assistants to log and query Baby Buddy data through natural language. The README links to MCP documentation at docs.baby-buddy.net/mcp/.

The OpenAPI schema at openapi-schema.yml in the repository root defines all available endpoints. Third-party developers building integrations can use this schema to generate client code rather than hand-writing HTTP calls.

Home Assistant and the Third-Party Ecosystem

The README lists a substantial ecosystem of third-party integrations. For Home Assistant, there is both a Home Assistant Addon (for running Baby Buddy directly on a Home Assistant installation) and a Home Assistant integration (for monitoring and logging from within Home Assistant automations). The README also lists an Alexa skill.

Mobile companion apps are available separately. An iOS app, Baby Buddy Companion for iOS, is on the App Store. An Android app, Baby Buddy for Android, is on the Play Store. Both are third-party projects listed in the README, not official Baby Buddy releases. iOS shortcuts are also available via GitHub Discussions.

Hardware projects documented in the README include a bottle scale using ESPHome and a BabyPod remote control for new parents. A Grafana dashboard configuration is available via GitHub Discussions for caregivers who want to visualise trends beyond what the built-in Plotly charts provide.

This ecosystem of integrations is substantial for an open-source project. It reflects the usefulness of a self-hosted REST API: once the data is in Baby Buddy, it is accessible to any tool that can make HTTP requests.

Baby Buddy vs Commercial Alternatives

The most commonly searched alternative to Baby Buddy is Huckleberry. Huckleberry is a commercial mobile-first tracking app marketed primarily at parents who want AI-based sleep schedule predictions and a polished consumer interface. It operates as a subscription service with data stored on Huckleberry's servers, which is the core difference from Baby Buddy's self-hosted model.

Sprout Baby, another alternative that appears in search data, follows a similar commercial mobile-first pattern. These apps are easier to start with: download the app, create an account, and begin logging. The tradeoff is data portability (migration out of a commercial app may lose history) and data sovereignty (a third party holds all logged events).

Baby Buddy's advantage is full data ownership, a documented API, and an extensible integration ecosystem. Its disadvantage is that it requires maintaining a server. The README notes that contributions and sponsorship are welcome, with sponsorship available through GitHub Sponsors and Open Collective.

Limitations and Cases Where Baby Buddy Is Not the Right Choice

Baby Buddy has no official mobile app maintained by the project. The web interface is mobile-friendly, but a caregiver who primarily logs from a phone during night feeds will find a dedicated native app more convenient than a browser-based interface, even a responsive one.

The application requires ongoing server maintenance. Django security updates, Python version upgrades, and database migrations must be applied by the caregiver. The README lists the last push as 2026-09-27, indicating active development, but each upgrade may require attention to compatibility between the Python runtime, Node.js version, and pip-pinned dependencies.

The project is under BSD-2-Clause licence, which is permissive and imposes minimal restrictions on use or modification. The MCP server is in a separate repository and may lag behind the core application's API changes.

Caregivers sharing care responsibilities with non-technical family members or childcare providers will find that asking others to log into a self-hosted web app creates friction that commercial apps with simpler onboarding do not.

Editorial conclusion

Baby Buddy suits caregivers who want to keep their infant care data on their own infrastructure and who are comfortable managing a Django application with a PostgreSQL database. The REST API and the growing ecosystem of Home Assistant integrations, hardware keypads, and mobile companion apps make it more extensible than most commercial alternatives. The tradeoff is that setup and ongoing maintenance require technical knowledge. Caregivers who want a polished mobile-first experience without any server management will find a commercial app like Huckleberry easier to start with, though Baby Buddy stores all data locally rather than on a third-party server. Check the documentation at docs.baby-buddy.net before deploying to confirm the current Python and Node.js version requirements. The last push was on 2026-09-27 and version 2.11.0 was released on 2026-09-19.

Frequently asked questions

what is baby buddy

Baby Buddy is a self-hosted, open-source Django web application for tracking infant care events including sleep, feedings, diaper changes, and tummy time. It stores all data on the caregiver's own server and provides a REST API for third-party integrations.

baby buddy alternative

The closest alternatives to Baby Buddy are commercial mobile apps like Huckleberry and Sprout Baby. Those apps offer polished mobile interfaces and AI sleep predictions but store data on their own servers. Baby Buddy is the main self-hosted alternative that keeps data on your own infrastructure and offers a documented REST API.

Does Baby Buddy work with Home Assistant?

Yes. The README lists both a Home Assistant Addon for hosting Baby Buddy directly on a Home Assistant installation and a separate Home Assistant integration for logging and monitoring from within Home Assistant automations. Both are third-party projects listed in the official README.

Official sources

  1. babybuddy/babybuddy on GitHub
  2. License: BSD-2-Clause
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/babybuddy-babybuddy.svg)](https://hysenlabs.com/projects/babybuddy-babybuddy)