A beautiful, lightweight digital diary app built with pure HTML, CSS, and JavaScript.
# Start local server
python -m http.server 8000
# Open browser
http://localhost:8000- 📝 Create and edit diary entries
- 😊 Mood tracking with emojis
- 📅 Calendar view with mood indicators
- 🔥 Daily streak tracking
- 📊 Year heatmap visualization
- 🎨 5 beautiful pastel themes
- 🌙 Dark mode support
- 🔐 Google Sign-In & Email/Password authentication
- 💾 Offline persistence with Firestore
DearMe/
├── index.html # Main HTML file
├── css/
│ └── styles.css # All styles
├── js/
│ ├── app.js # App initialization
│ ├── auth.js # Authentication
│ ├── config.js # Firebase configuration
│ ├── entries.js # Entry CRUD operations
│ ├── router.js # Client-side routing
│ ├── theme.js # Theme management
│ ├── components/
│ │ └── navbar.js # Navigation bar
│ └── pages/
│ ├── login.js # Login page
│ ├── dashboard.js # Dashboard
│ ├── editor.js # Entry editor
│ └── calendar.js # Calendar view
└── firestore.indexes.json # Firestore indexes configuration
The app is already configured with Firebase. If you need to use your own Firebase project:
- Go to Firebase Console
- Create a new project
- Enable Authentication (Google + Email/Password)
- Create Firestore Database
- Copy your config and update
js/config.js:
export const firebaseConfig = {
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_AUTH_DOMAIN",
projectId: "YOUR_PROJECT_ID",
storageBucket: "YOUR_STORAGE_BUCKET",
messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
appId: "YOUR_APP_ID"
};When you first run the app, you may see an error about missing indexes:
- Click the link in the error message
- Click "Create Index" in Firebase Console
- Wait 1-2 minutes for the index to build
- Refresh the app
The app will work with fallback queries while indexes are building.
- Pure HTML5, CSS3, JavaScript (ES6+)
- Firebase Authentication
- Cloud Firestore
- ES6 Modules
- No build tools or frameworks required
- Sign In - Use Google or create an account with email/password
- Write Entry - Click "Write Today's Entry" button
- Select Mood - Choose how you're feeling with emoji buttons
- Rich Text - Use the toolbar to format your text (bold, italic, lists)
- Save - Your entry is automatically saved to Firestore
- View Calendar - See all your entries organized by date
- Track Streak - Keep your daily writing streak going!
Choose from 5 beautiful color schemes:
- 🌸 Pastel Pink (default)
- 🌙 Midnight Blue
- 🌻 Soft Yellow
- 🍃 Mint Green
- ☁️ Cloud White
Toggle dark mode for comfortable night-time journaling.
- Click the link in the error message
- Click "Create Index" in Firebase Console
- Wait 1-2 minutes
- Refresh the app
- Verify Firebase Authentication is enabled
- Check Google Sign-In is configured in Firebase Console
- Ensure your Firebase config is correct in
js/config.js
- Make sure you're running a local server (not opening HTML file directly)
- ES6 modules require HTTP/HTTPS protocol
MIT License
Made with 💖 and a lot of journaling
