A simple, privacy-focused baby tracking application for monitoring feeding sessions and diaper changes. Built with SvelteKit and designed with parents' privacy in mind.
- Feeding Sessions: Track bottle size, amount consumed, and feeding patterns
- Diaper Changes: Quick logging of diaper changes with timestamps
- Visual Interface: Intuitive bottle interface with slider controls
- Statistics Dashboard: Monitor feeding efficiency, consumption patterns, and change frequency
- β No Email Required: Start tracking immediately without account creation
- β Zero Tracking: No analytics, cookies, or data collection
- β Auto-Cleanup: All data automatically deleted after 7 days of inactivity
- β Open Source: Transparent codebase available on GitHub
- π Internationalization: Multi-language support (English, German-Swiss)
- π± Responsive Design: Works seamlessly on desktop and mobile
- β‘ Fast Performance: Built with modern web technologies
- π Local Data Storage: Your data stays on your device
- Node.js (v18 or higher)
- pnpm (recommended) or npm
-
Clone the repository
git clone https://github.com/polaroidkidd/feedchange.git cd feedchange
-
Install dependencies
pnpm install
-
Set up environment variables
cp .env.example .env.local # Edit .env.local with your database configuration
-
Initialize the database
pnpm db:push:dev
-
Start the development server
pnpm dev
The application will be available at http://localhost:5173
pnpm dev
- Start development server with database setuppnpm build
- Build for productionpnpm preview
- Preview production build locallypnpm test
- Run unit testspnpm lint
- Run linting and formatting checkspnpm format
- Format code with Prettier
pnpm db:push:dev
- Push database schema (development)pnpm db:generate:dev
- Generate Prisma client (development)pnpm db:push:prod
- Push database schema (production)
- Frontend: SvelteKit 2, Svelte 5
- Database: SQLite with Prisma ORM
- Styling: Tailwind CSS 4, Flowbite UI components
- Deployment: Cloudflare Pages
- Languages: TypeScript
- Testing: Vitest, Playwright
- Internationalization: Paraglide JS
The application uses a simple SQLite database with two main entities:
- Baby: Stores baby information (name, weight, current bottle size)
- Event: Tracks feeding and diaper change events with timestamps
Data is automatically cleaned up after 7 days of inactivity to maintain privacy.
FeedChange supports multiple languages:
- English (en)
- German (Swiss) (de-ch)
To add a new language, add translation files in the messages/
directory and configure them in the Paraglide settings.
-
Build the project
pnpm build
-
Deploy to Cloudflare Pages
pnpm cf:deploy
FeedChange can be deployed to any platform that supports Node.js applications. Make sure to:
- Set up your production database
- Configure environment variables
- Run the build process
- Deploy the generated files
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
This project is open source and available under the MIT License.
Built with β€οΈ for parents who value privacy and simplicity in baby tracking.
FeedChange - Simple, private baby tracking without the complexity.