Negotium - Minimalist To Do App
A beautiful, minimal to-do list application featuring smooth animations, intelligent date management, and a modern design that helps you stay organized and productive.
💭 Why Negotium?
While powerful tools like Trello and Vikunja excel at managing complex projects and long-term planning, sometimes you just need a simple, focused space for your daily tasks. That's why I built Negotium, a straightforward to-do list for today and tomorrow. Nothing more, nothing less.
Built with Svelte for speed and simplicity. No overwhelming features, no endless project boards, no complexity. Just a clean interface for your daily workflow.
✨ Features
Core Functionality
- ✅ Add, complete, and delete tasks with smooth animations
- 📅 Today & Tomorrow lists - Plan ahead with separate task lists
- 🔄 Automatic task migration - Tomorrow's tasks automatically move to Today when a new day begins
- 🎯 Drag and drop reordering - Organize tasks by dragging them into position
- 💾 Persistent storage - All tasks saved locally in your browser
- 📊 Task statistics - See remaining and completed tasks at a glance
🚀 Getting Started
Quick Start with Docker (Recommended)
Pull and run the pre-built Docker image:
# Pull the image
docker pull ghcr.io/aculix/negotium:main
# Run the container
docker run -d -p 3000:80 --name negotium ghcr.io/aculix/negotium:main
Then open http://localhost:3000
in your browser.
To stop the container:
docker stop negotium
docker rm negotium
Manual Installation
If you prefer to run the application locally without Docker:
Clone the repository:
git clone <repository-url>
cd negotium
Install dependencies:
npm install
Start the development server:
npm run dev
Open http://localhost:3000
in your browser
Build for Production
npm run build
The optimized files will be in the dist
directory.
📖 How to Use
Managing Tasks
- Add a task: Type in the input field and press Enter
- Complete a task: Click the checkbox next to the task
- Delete a task: Hover over a task and click the delete icon
- Reorder tasks: Click and drag any task to a new position
- Clear input: Press Escape to clear the input field
Date Management
- Switch between Today and Tomorrow: Click the date button in the header
- Plan ahead: Add tasks to Tomorrow's list before you need them
- Automatic migration: When a new day begins, Tomorrow's tasks automatically become Today's tasks
- Separate lists: Today and Tomorrow maintain independent task lists
Theme Toggle
- Click the sun/moon icon in the header to switch themes
- Your preference is saved automatically and restored on reload
- Respects system dark mode preference on first visit
Keyboard Shortcuts
- Enter: Add task (when input is focused)
- Escape: Clear input field
- Space/Enter: Toggle task completion (when task is focused)
- Delete/Backspace: Delete task (when task is focused)
💾 Data Storage
All data is stored locally in your browser using localStorage:
- Tasks: Separate storage keys for each date (
negotium-tasks-<date>
)
- Theme: Your theme preference (
negotium-theme
)
- No server required: Everything runs entirely client-side
- Privacy first: Your data never leaves your device
📄 License
MIT License - Free for personal and commercial use.
🤝 Contributing
Contributions are welcome! Feel free to submit issues and pull requests.