Limitations
Daylight makes deliberate tradeoffs to stay focused on local-first productivity. This page documents what Daylight doesn’t do—and why these are features, not bugs.
No built-in timers
Section titled “No built-in timers”What’s missing
Section titled “What’s missing”- Start/stop timer functionality
- Automatic time tracking
- Pomodoro-style sessions
- Timers assume uninterrupted work. Real work gets interrupted. A timer that needs babysitting adds friction, not clarity.
- Manual entry captures reality. You know better than a timer how long you actually worked on something, especially after context switches.
- Simplicity over features. Timer state would need to persist across app restarts, handle edge cases, and sync between devices. That complexity isn’t worth it.
Workaround
Section titled “Workaround”Use manual time entries. Daylight rounds to 15-minute increments by default, making estimates quick to enter. Log time at the end of a work session when you know how long it actually took.
Read-only calendar overlays
Section titled “Read-only calendar overlays”What’s missing
Section titled “What’s missing”- Creating calendar events from Daylight
- Editing existing events
- RSVP functionality
- Two-way sync with calendars
- Your calendars already work. Google Calendar, Outlook, and Apple Calendar are mature products. Daylight showing your schedule provides context without duplicating functionality.
- Write access is complex. OAuth flows, token refresh, API rate limits, and provider-specific quirks add significant maintenance burden.
- Conflict avoidance. Two-way sync between tasks and calendar events creates ambiguity about which is the source of truth.
Workaround
Section titled “Workaround”Create events in your native calendar app. Use Daylight’s calendar overlay to see your schedule while planning tasks.
No real-time collaboration
Section titled “No real-time collaboration”What’s missing
Section titled “What’s missing”- Shared task lists
- Collaborative editing
- Team features
- Assigning tasks to others
- Single-user by design. Daylight is a personal productivity tool, not a team workspace. Personal tools can be simpler and faster.
- No server, no real-time. Real-time collaboration requires a server to coordinate changes. Daylight has no server.
- Conflict complexity. Multi-user editing of the same task would require operational transforms or CRDTs—massive complexity for a personal tool.
Workaround
Section titled “Workaround”For household or small team coordination, use a shared Syncthing folder with clear conventions (e.g., prefix tasks with initials, use separate project tags). Accept that sync conflicts may occur if two people edit simultaneously.
No cloud sync
Section titled “No cloud sync”What’s missing
Section titled “What’s missing”- Built-in cloud storage
- Account/login system
- Managed cross-device sync
- Data ownership matters. Your tasks are your data. They shouldn’t live on someone else’s server.
- No vendor lock-in. If Daylight disappeared tomorrow, your tasks are still plain Markdown files.
- Privacy by architecture. There’s no server that could be breached because there’s no server at all.
Workaround
Section titled “Workaround”Use Syncthing for peer-to-peer sync (recommended), or any file sync service: Dropbox, Google Drive, iCloud, OneDrive, Nextcloud, etc.
See Sync & Conflicts for setup guidance.
No mobile widgets
Section titled “No mobile widgets”What’s missing
Section titled “What’s missing”- Home screen widgets
- Quick-add from notification shade
- Glanceable task counts
- Platform complexity. iOS and Android have completely different widget systems. Supporting both well would double the mobile development effort.
- Core app first. The main app experience is the priority. Widgets would divert focus.
- Battery tradeoffs. Widgets that stay updated require background processes, affecting battery life.
Workaround
Section titled “Workaround”Pin Daylight to your home screen for quick access. On Android, you can create a direct shortcut to add tasks.
No natural language input
Section titled “No natural language input”What’s missing
Section titled “What’s missing”- “Tomorrow at 3pm” parsing
- “Every weekday” interpretation
- “Next Friday” understanding
- Ambiguity is real. Does “next Friday” mean this coming Friday or the Friday after? It depends on context, and getting it wrong is worse than being explicit.
- Internationalization. Natural language date parsing varies by locale, language, and culture.
- Explicit is clearer. Typing a date takes a few extra seconds but removes all ambiguity.
Workaround
Section titled “Workaround”Use the date picker (fast and unambiguous) or type ISO dates directly (2026-01-31). For recurring tasks, use the recurrence editor which shows exactly what you’re setting up.
Scale limitations
Section titled “Scale limitations”Current limits
Section titled “Current limits”| Aspect | Practical limit | Why |
|---|---|---|
| Task count | ~10,000 tasks | All tasks load into memory at startup |
| File size | ~1MB per task | Large files slow parsing and sync |
| Time entries | ~1,000 per task | Array operations in YAML |
- File-per-task architecture. Each task is a separate file. Filesystems handle thousands of files well, but not millions.
- In-memory loading. For snappy UI, all tasks are loaded on startup. This trades memory for speed.
- No pagination. The current UI loads everything. Pagination would add complexity.
Workaround
Section titled “Workaround”- Archive completed tasks regularly (move to a separate folder)
- Use projects to segment large workloads
- For truly large scale, consider a database-backed tool
No attachments
Section titled “No attachments”What’s missing
Section titled “What’s missing”- File attachments on tasks
- Image embedding
- Document uploads
- Sync size. Attachments would bloat sync, especially on mobile with limited storage and bandwidth.
- Scope creep. Attachment handling (preview, search, versioning) is a large feature surface.
- File system works. Your files already exist on disk. Duplicating them inside tasks adds complexity without value.
Workaround
Section titled “Workaround”Add file paths or URLs in your task notes:
---title: Review contractstatus: active---
See: ~/Documents/contracts/2026-renewal.pdfOr: https://drive.google.com/...Summary
Section titled “Summary”| Feature | Status | Why | Alternative |
|---|---|---|---|
| Timers | Not planned | Complexity, interruption reality | Manual time entries |
| Calendar write | Not planned | API complexity, conflict risk | Native calendar apps |
| Collaboration | Not planned | Single-user tool, no server | Shared Syncthing folders |
| Cloud sync | Not planned | Privacy, data ownership | Syncthing, Dropbox, etc. |
| Widgets | Considering | Platform complexity | App shortcuts |
| NLP dates | Considering | Ambiguity, i18n | Date picker |
| Scale | Inherent limit | Architecture tradeoff | Archive regularly |
| Attachments | Not planned | Sync bloat, scope | External file links |
These constraints aren’t apologies—they’re choices. Every feature has a cost, and saying no to some things lets Daylight be great at what it does: personal task management that respects your data.
Related
Section titled “Related”- Architecture — Why Daylight is built this way
- Sync & Conflicts — Working with file sync
- Getting Started — Start using Daylight