DailyNotes
App for taking notes and tracking tasks on a daily basis
Install / Use
/learn @djedi/DailyNotesREADME
DailyNotes: Daily tasks and notes in Markdown
<p align="center"> <!-- Font-Awesome book-open --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" width="200px"> <path style="fill:#6abfb0" d="M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"/> </svg> </p>In Loving Memory of Joe Ipson
This project is dedicated to Joe Ipson, the original creator of DailyNotes, who passed away in the summer of 2025 after a courageous battle with cancer.
Joe was a kindred spirit who believed in the simple power of writing things down. He built DailyNotes to bring the mindful experience of a physical planner into the digital world. His vision was to create something personal, self-hosted, and beautifully simple.
This project continues in his memory. Every commit, every feature, every bug fix is a small tribute to a dear friend whose spirit lives on in the code he wrote and the ideas he shared.
Rest easy, Joe. We'll take it from here.
About
The idea for this app came from using my Hobonichi Techo planner every morning to write down what I needed to accomplish that day & using it for scratching down random thoughts and notes as the day went on. The closest thing I've seen to an app for replacing this system is Noteplan, but I don't use a Mac or an iOS device, and it's not self-hostable, so I decided to write my own.
To check your current version, open Settings in the app and look in the About section.
Since I had the need for keeping track of to-dos throughout the day, regular Markdown didn't work for me since it doesn't natively support tasks. So as an alternative I'm using Github Flavored Markdown (GFM). I really wanted it to feel like an actual text editor and not just a textbox, so I decided to use CodeMirror to handle all the input. Fira Code is used to provide font ligatures. Some other nice features include code highlighting, text/code folding, and a task list where you can toggle the status of any task from any date or note.
Features
Joe had a vision for what DailyNotes could become before calling it a 1.0 release. I've done my best to interpret and implement those features, along with feature requests from GitHub issues that Joe was considering. Here's what makes DailyNotes a powerful daily planning tool:
Core Experience
- GitHub Flavored Markdown — Full GFM support with task lists (
- [ ]/- [x]), tables, code blocks, and more - CodeMirror Editor — A real text editor experience with syntax highlighting, code folding, and keyboard shortcuts
- Fira Code Font — Beautiful font ligatures for a polished writing experience
- Auto-save — Never lose your work with optional automatic saving
- Data Encryption — All notes encrypted at rest with AES encryption
Organization & Search
- Powerful Search — Syntax-based search with
tag:,project:, and full-text queries - Nested Tags — Hierarchical tag organization (e.g.,
work/meetings,home/family) - Kanban Board — Visual task management with drag-and-drop columns
- Task List — View and toggle tasks within each note with one-click status updates
Preview & Visualization
- HTML Preview — Live markdown preview with
Cmd+K V(side-by-side) orShift+Cmd+V(full screen) - Mermaid Diagrams — Create flowcharts, sequence diagrams, ERDs, and more directly in your notes
- Themes — Light, Dark, and System themes to match your environment
Calendar Integration
- Calendar Feed (ICS) — Subscribe to your notes in Google Calendar, Apple Calendar, or any ICS-compatible app
- External Calendar Support — Display events from external ICS feeds alongside your daily notes
Self-Hosted & Private
- Self-hosted — Your data stays on your server, under your control
- Docker Ready — Easy deployment with Docker and Docker Compose
- Multi-user Support — Multiple users with separate, encrypted data
- No Vendor Lock-in — Export all your notes as markdown files anytime
Account Security
- Password Recovery — Reset your password via email if forgotten
- Magic Link Sign-in — Sign in with a secure email link instead of a password
- Email Management — Add or update your email in Settings to enable these features
Password Recovery & Magic Link
DailyNotes supports password recovery and passwordless sign-in via email. These features require SMTP configuration (see Environment Variables).
Setting Up Your Email
- Click the menu icon (⋮) in the header
- Select Settings
- In the Account section, enter your email address
- Click Add Email
Once configured, you can use password recovery and magic link sign-in.
Forgot Password
If you forget your password:
- Go to the login page
- Click Forgot password?
- Enter your email address
- Check your email for a reset link (valid for 1 hour)
- Click the link and enter your new password
Magic Link Sign-in
Sign in without entering your password:
- Go to the login page
- Click Sign in with email
- Enter your email address
- Check your email for a sign-in link (valid for 15 minutes)
- Click the link to automatically sign in
Security Features
| Feature | Description | | ---------------------------- | ----------------------------------------- | | Secure tokens | Cryptographically random, SHA-256 hashed | | Rate limiting | 3 requests per email per hour | | Short expiration | Reset: 1 hour, Magic link: 15 minutes | | Single-use tokens | Each token can only be used once | | Email enumeration prevention | Same response whether email exists or not | | Encrypted email storage | Email addresses encrypted at rest (AES) |
SMTP Configuration Examples
Gmail (with App Password):
SMTP_HOST: smtp.gmail.com
SMTP_PORT: 587
SMTP_USER: your-email@gmail.com
SMTP_PASSWORD: your-app-password # Generate at myaccount.google.com/apppasswords
SMTP_FROM_NAME: DailyNotes
APP_URL: https://your-dailynotes-instance.com
Mailgun:
SMTP_HOST: smtp.mailgun.org
SMTP_PORT: 587
SMTP_USER: postmaster@your-domain.mailgun.org
SMTP_PASSWORD: your-mailgun-password
SMTP_FROM_EMAIL: noreply@your-domain.com
APP_URL: https://your-dailynotes-instance.com
Amazon SES:
SMTP_HOST: email-smtp.us-east-1.amazonaws.com
SMTP_PORT: 587
SMTP_USER: your-ses-smtp-username
SMTP_PASSWORD: your-ses-smtp-password
SMTP_FROM_EMAIL: noreply@your-verified-domain.com
APP_URL: https://your-dailynotes-instance.com
Important Notes:
- Gmail requires an App Password, not your regular password
- The
APP_URLmust match the URL users access DailyNotes from (for email links to work) - If SMTP is not configured, password recovery and magic link features are automatically disabled
- Users can still sign in with username/password even without email configured
Themes
DailyNotes supports Light, Dark, and System themes to match your preferred working environment.
Theme Options
| Theme | Description | | --------- | ------------------------------------------------------------------ | | 🌙 Dark | Default dark interface, optimized for low-light environments | | ☀️ Light | Clean, bright interface with light backgrounds | | 💻 System | Automatically follows your operating system's color scheme setting |
How to Change Themes
- Click the menu icon (⋮) in the header
- Select Settings
- In the Appearance section, click your preferred theme
- The theme changes instantly and is saved for future sessions
The System option automatically switches between light and dark themes based on your OS settings (e.g., macOS Dark Mode, Windows Dark Theme). This is perfect if you prefer dark mode at night and light mode during the day.
Mermaid Diagrams
DailyNotes supports Mermaid diagrams in the markdown preview, allowing you to create flowcharts, sequence diagrams, class diagrams, and more directly in your notes.
Creating Diagrams
Use a fenced code block with mermaid as the language:
```mermaid
graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Do something]
B -->|No| D[Do something else]
C --> E[End]
D --> E
```
Viewing Diagrams
Diagrams are rendered in the HTML preview:
- Side-by-side: Press
Cmd+K V(Mac) orCtrl+K V(Windows/Linux) - Preview only: Press
Shift+Cmd+V(Mac) orShift+Ctrl+V(Windows/Linux)
Supported Diagram Types
Mermaid supports many diagram types. Here are some examples:
| Diagram Type | Use Case | Example Syntax |
| ------------------- | ------------------------ | ------------------------ |
| Flowchart | Process flows, decisions | graph TD or graph LR |
| Sequence | API calls, interactions | sequenceDiagram |
| Class | Object relationships | classDiagram |
| State | State machines | stateDiagram-v2 |
| Entity Relationship | Database schemas | `e
