A household chore tracking app for two users. Track when chores were last done and see what needs doing next based on flexible time windows.
- Priority queue showing most urgent chores first
- Flexible intervals (min/max days) for each chore
- Track who completed each chore (solo or together)
- One-time tasks support
- Skip/snooze for severely overdue chores
- Real-time sync between users
- Works on mobile and desktop
- Go to Firebase Console
- Create a new project
- Enable Authentication > Sign-in method > Google
- Create a Firestore Database (start in test mode, then apply rules)
- Go to Project Settings > Your apps > Add a Web app
- Copy the Firebase config values
Copy .env.example to .env and fill in your Firebase config:
cp .env.example .envEdit .env:
VITE_FIREBASE_API_KEY=your_api_key_here
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
- Sign in to the app with both users (you and your partner)
- Find your UIDs in Firebase Console > Authentication > Users
- Update
firestore.ruleswith both UIDs:function isHouseholdMember() { return request.auth != null && request.auth.uid in ['YOUR_UID', 'PARTNER_UID']; }
- Deploy rules via Firebase Console or CLI:
firebase deploy --only firestore:rules
npm install
npm run dev- Push to GitHub
- Go to Settings > Secrets > Actions
- Add your Firebase config as secrets (same names as
.envvariables) - Go to Settings > Pages > Source > GitHub Actions
- Push to
mainbranch to trigger deploy
src/
├── components/ # React components
├── hooks/ # Custom hooks for Firebase
├── lib/ # Types, Firebase config, priority logic
├── App.tsx # Main app component
└── App.css # Global styles
- React + TypeScript
- Vite
- Firebase (Firestore + Auth)
- date-fns