Your personal operating system — tasks, gym tracking, and nutrition in one clean app.
- Next.js 14 (App Router) + TypeScript
- Tailwind CSS — clean & minimal design
- Firebase Firestore — real-time data storage
- NextAuth.js — Google OAuth authentication
- OpenAI GPT-4o — workout summaries & meal photo scanning
cd dailyos-app
npm installcp .env.local.example .env.localThen fill in your values in .env.local:
| Variable | Where to get it |
|---|---|
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET |
Google Cloud Console → APIs & Services → Credentials → OAuth 2.0 |
NEXTAUTH_SECRET |
Run openssl rand -base64 32 in terminal |
NEXTAUTH_URL |
http://localhost:3000 for dev; your domain for prod |
NEXT_PUBLIC_FIREBASE_* |
Firebase Console → Project Settings → Your apps → Web |
OPENAI_API_KEY |
platform.openai.com |
- Go to Firebase Console and create a project
- Enable Firestore Database (start in production or test mode)
- Enable Storage (for meal photos)
- Add these Firestore collections (they're created automatically on first write):
projects,tasks,workouts,bodyweight,meals,macroGoals
- Go to Google Cloud Console
- Create OAuth 2.0 credentials (Web application)
- Add authorized redirect URI:
http://localhost:3000/api/auth/callback/google - For production, add your domain's callback URL too
npm run dev- Create projects with custom colors
- Add daily and weekly to-dos per project
- Mark tasks complete with a single tap
- Clean project switcher with color coding
- Log exercises with sets, reps, and weight (kg / lbs / bodyweight)
- Log body weight daily with history
- Set workout duration
- AI Summary — tap "AI Summary" after logging to get a personalized GPT-powered report covering intensity, strengths, and improvement areas
- Full workout history with expandable sessions
- Set daily macro goals (calories, protein, carbs, fat)
- Log meals with full macro breakdown
- Visual macro progress bars per day
- Date navigation to view past days
- 📷 Meal Scanner — take a photo of your meal and GPT-4o estimates the macros automatically (review and edit before logging)
- Open the app in Safari on your iPhone
- Tap the Share button → "Add to Home Screen"
- DailyOS will behave like a native app with full-screen mode
npm run build
vercel --prodSet all environment variables in Vercel dashboard → Settings → Environment Variables.
Make sure to update NEXTAUTH_URL to your production domain.
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{collection}/{document=**} {
allow read, write: if request.auth != null &&
request.auth.token.email == resource.data.userId;
}
}
}