Aculix Technologies 756b4254b4 perf: drop lottie, remove splash, fix theme flash
Bundle goes from 337 kB to 52 kB, or 89 kB to 20 kB gzipped. Almost all of
it was lottie-web, imported at the top level to draw one decorative empty
state, so every visitor paid 305 kB whether they ever saw it or not. It's
an inline SVG now, and it respects prefers-reduced-motion.

The 500ms splash is gone. There was no async work behind it.

Dark mode is applied by a small script in the head before first paint, so
dark-mode users stop getting a white flash on load. The theme class moves
to <html>, and App.svelte reads its initial state from that class instead
of re-reading storage after mount.

publicDir moves from assets/ to public/, which stops shipping the 200 kB
README screenshot to everyone.
2026-08-16 00:02:30 +05:30
2025-10-16 14:16:01 +05:30

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.

Negotium Screenshot

💭 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

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:

  1. Clone the repository:
git clone <repository-url>
cd negotium
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. 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.

S
Description
No description provided
Readme MIT 584 KiB
Languages
JavaScript 49.8%
Svelte 28.6%
CSS 18%
HTML 2.6%
Dockerfile 1%