A self-hosted, open-source baby tracking application designed for privacy-conscious parents.
πΈ See the full visual showcase Β» β dashboard & AI insights, one-tap logging, milestones, and medical reports.
- π± Mobile-first PWA with native mobile app support (iOS & Android)
- π Self-hosted for complete data privacy
- π€ Local AI-powered insights via Ollama
- π Offline-first with automatic sync
- π Comprehensive tracking: feeding, sleep, diapers, growth, milestones, health
- π Dark mode for nighttime use
- π One-handed operation optimized
- π¨βπ©βπ§ Multi-caregiver support with handoff notes
- π Growth charts and developmental milestone tracking
- π Health records including vaccinations and medications
- π Smart reminders for feeding, medications, and appointments
| Component | Technology |
|---|---|
| API | NestJS, Prisma, PostgreSQL, Redis |
| Web | Next.js 15, React 19, TailwindCSS |
| Mobile | Expo, React Native, NativeWind |
| AI | Ollama (local LLM) |
| Infrastructure | Docker, Kubernetes (Helm) |
| Monorepo | Turborepo |
babynest/
βββ apps/
β βββ api/ # NestJS backend API
β βββ mobile/ # Expo/React Native mobile app
β βββ web/ # Next.js web frontend
βββ packages/
β βββ tsconfig/ # Shared TypeScript configurations
β βββ eslint-config/# Shared ESLint configurations
β βββ types/ # Shared TypeScript interfaces
β βββ validators/ # Shared Zod validation schemas
βββ infra/
β βββ docker/ # Docker Compose deployment
β βββ helm/ # Kubernetes Helm charts
βββ turbo.json # Turborepo configuration
- Node.js >= 20.0.0
- npm >= 10.5.0
- Docker & Docker Compose (for containerized deployment)
# Clone the repository
git clone https://github.com/keyurgolani/BabyNest.git
cd BabyNest
# Install dependencies
npm install
# Run development servers
npm run dev
# Build all packages
npm run build
# Run tests
npm run test
# Lint code
npm run lint# Copy environment file
cp infra/docker/.env.example infra/docker/.env
# Start development stack with watch mode
npm run docker:dev
# Or start without watch
npm run docker:dev:up
# View logs
npm run docker:dev:logs
# Stop services
npm run docker:dev:down# Copy and configure environment
cp infra/docker/.env.example infra/docker/.env
# Edit infra/docker/.env with production settings
# Pull and start production images
npm run docker:prod:pull
npm run docker:prod
# With AI (Ollama)
npm run docker:prod:ai
# View logs
npm run docker:prod:logs
# Stop services
npm run docker:prod:downImages are available from both GitHub Container Registry and Docker Hub:
# GitHub Container Registry
docker pull ghcr.io/keyurgolani/babynest-api:latest
docker pull ghcr.io/keyurgolani/babynest-web:latest
# Docker Hub
docker pull keyurgolani/babynest-api:latest
docker pull keyurgolani/babynest-web:latestcd infra/helm
helm dependency update
helm install babynest . -f values.yamlSee infra/helm/README.md for detailed Kubernetes deployment instructions.
Pre-built Android APKs are available in GitHub Releases.
cd apps/mobile
# Install dependencies
npm install
# Start Expo development server
npm start
# Build Android APK locally
npx expo prebuild --platform android
cd android && ./gradlew assembleRelease| Variable | Description | Default |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Required |
REDIS_HOST |
Redis host | localhost |
JWT_SECRET |
JWT signing secret | Required |
OLLAMA_BASE_URL |
Ollama API URL | http://localhost:11434 |
| Variable | Description | Default |
|---|---|---|
NEXT_PUBLIC_API_URL |
API base URL | http://localhost:3000/api/v1 |
See infra/docker/.env.example for all configuration options.
The API provides RESTful endpoints for all tracking features:
/api/v1/auth- Authentication (register, login, refresh)/api/v1/babies- Baby profiles management/api/v1/feeding- Feeding logs (breast, bottle, solid)/api/v1/sleep- Sleep tracking/api/v1/diaper- Diaper changes/api/v1/growth- Growth measurements/api/v1/milestones- Developmental milestones/api/v1/health- Health records, vaccinations/api/v1/reminders- Scheduled reminders/api/v1/insights- AI-powered insights/api/v1/dashboard- Dashboard summaries
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License - see LICENSE for details.
Keyur Golani - GitHub

