A calendar kept your way. Built with Next.js, Firebase, and Tailwind CSS.
- Google sign-in via Firebase Authentication
- Cloud-synced events, categories, and settings with Cloud Firestore
- Monthly calendar grid with recurring event support
- Agenda panel for the selected day
- In-browser reminder alerts
- JSON import/export backups
- One-time migration from the original localStorage
index.htmlversion - PWA support (installable)
- Next.js 15 (App Router)
- TypeScript
- Tailwind CSS + shadcn/ui
- Firebase Auth + Firestore
- date-fns
npm install
npm run devCreate a .env.local file with your Firebase config:
NEXT_PUBLIC_FIREBASE_API_KEY=
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=
NEXT_PUBLIC_FIREBASE_PROJECT_ID=
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=
NEXT_PUBLIC_FIREBASE_APP_ID=
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=
FIREBASE_PROJECT_ID=
FIREBASE_CLIENT_EMAIL=
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n"Build with:
npm run buildDeploy to Vercel and add the environment variables in the Vercel dashboard.
- Enable Authentication with Google provider.
- Enable Cloud Firestore and publish these security rules:
match /users/{userId}/{document=**} { allow read, write: if request.auth != null && request.auth.uid == userId; } - Add your Vercel domain to Authentication → Settings → Authorized domains.