A clean, distraction-free web application for daily journaling and reflection. Built with vanilla HTML, CSS, and JavaScript using an earthy green and cream color scheme.
- Write and save daily reflections in a spacious, focused textarea
- Auto-save detection to prevent accidental data loss
- Simple, clutter-free interface for distraction-free writing
- Keyboard shortcut:
Ctrl+S(orCmd+Son Mac) to save quickly
- Add multiple tags to your entries (comma-separated)
- Organize reflections by themes, moods, or topics
- View all tags with entry counts
- Click on tags to filter entries by topic
- Duplicate tags are automatically removed
- Browse all your previous journal entries
- Filter entries by specific date
- View entry previews with tags
- Click on any entry to read the full text in a modal
- Entries are sorted by date (newest first)
- Export your journal in multiple formats:
- JSON: For data portability and backup
- CSV: For spreadsheet applications
- Text: For easy reading and printing
- Select custom date ranges for exports
- Full backup option to download all entries at once
- Earthy green (
#5a8f6c) and cream (#f5f1e8) color palette - Minimalist interface with smooth animations
- Responsive design (works on desktop, tablet, mobile)
- Accessible form controls and interactions
- Clone or download this repository:
git clone https://github.com/RecodeTheWorld/daily-journal.git
cd daily-journal- Open
index.htmlin your web browser:- Simply double-click
index.html, or - Use a local server (recommended):
# Using Python 3 python -m http.server 8000 # Then visit http://localhost:8000 # Using Node.js (if installed) npx http-server
- Simply double-click
daily-journal/
βββ index.html # Main HTML file
βββ assets/
β βββ styles.css # Styling with color scheme
β βββ app.js # Application logic
βββ README.md # This file
βββ LICENSE # MIT License
- Click "Today" in the sidebar
- Write your reflections in the text area
- (Optional) Add tags separated by commas (e.g., "grateful, reflection, growth")
- Click "Save Entry" or press
Ctrl+S - Success message confirms the save
- Type tags in the tag input field, separated by commas
- Press
Enteror click outside the field to add them - Tags appear as green pills above the save button
- Click the
Γon any tag to remove them - Tags are stored with each entry
- Click "Past Entries" in the sidebar
- All entries appear sorted by date (newest first)
- (Optional) Use the date picker to filter by a specific date
- Click any entry card to open it in a modal and read the full text
- Click "Tags" in the sidebar
- See all tags you've used with entry counts
- Click any tag card to view all entries with that tag
- Tag cards are sorted by frequency (most used first)
- Click "Export" in the sidebar
- Choose your export format:
- JSON: Machine-readable format (best for backup)
- CSV: Open in Excel/Sheets with columns: Date, Tags, Entry
- Text: Human-readable format (good for printing)
- (Optional) Set a date range using the date inputs
- Click "Export Data" to download
- Or click "Backup All Data" to save everything in JSON format
- All data is stored locally in your browser's localStorage
- Data persists between browser sessions
- No data is sent to any server
- Clearing browser data/cache will delete your entries
- Regular backups recommended - use the Export feature
| Shortcut | Action |
|---|---|
Ctrl+S / Cmd+S |
Save current entry (Today view) |
Esc |
Close modal |
Enter (in tags field) |
Add tags |
- Chrome/Chromium (60+)
- Firefox (55+)
- Safari (12+)
- Edge (79+)
- Mobile browsers (iOS Safari, Chrome Mobile)
- 100% local storage - all data stays on your device
- No tracking - no analytics or external services
- No login required - use completely offline
- Your data is yours - use the export feature anytime
Edit assets/styles.css and modify the CSS variables:
:root {
--primary-green: #5a8f6c; /* Main accent color */
--dark-green: #3d5f4f; /* Dark accent */
--light-green: #7da89e; /* Light accent */
--cream: #f5f1e8; /* Background */
--cream-dark: #e8e0d5; /* Light borders */
}Update the font-family in the body selector in assets/styles.css
- Check if localStorage is enabled in your browser
- Try clearing browser cache and reload
- Ensure JavaScript is enabled
- Check if you accidentally cleared browser storage
- Use the exported JSON backup to restore
- Note: Private/Incognito windows don't persist data
- Make sure you have entries to export
- Check if your browser allows file downloads
- Try a different export format
- Be consistent - Set a daily journaling habit
- Use tags strategically - Create meaningful categories for reflection
- Regular backups - Export your data monthly to preserve memories
- Reflect on patterns - Use the Tags view to identify themes in your reflections
- Write freely - This is your private space, write without judgment
Found a bug or have a feature suggestion? Feel free to open an issue or submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
- β Daily entry creation and editing
- β Tag management system
- β Past entries browsing with date filtering
- β Export in multiple formats (JSON, CSV, Text)
- β Full data backup capability
- β Responsive design
- β Local storage with no external dependencies
Made with π for mindful reflection
Start journaling today. Your future self will thank you.