A modern, elegant to-do list app for your home or office—no login, no cloud, just you and your tasks. DoDash offers a beautiful dark mode UI, multiple color-coded lists, and a seamless experience on both desktop and mobile.
- Multiple Lists: Create, edit, and delete unlimited to-do lists
- Custom Colors: Choose a unique color for each list (with color picker)
- Dark Mode: Always-on, elegant dark theme with soft gradients
- Drag & Drop: Reorder tasks within lists by drag & drop
- Task Completion: Mark tasks done, see them grayed out and strikethrough
- Clear Completed: One-click to clear all completed tasks
- Instant Sync: Real-time UI updates and auto-save
- Responsive Design: Looks perfect on desktop, tablet, and phone
- No Accounts, No Cloud: 100% local, for your personal or family use
- Dockerized: Runs in a single container, accessible via your LAN
Frontend:
- React 18 (with Hooks, Functional Components)
- TypeScript (strict typing)
- TailwindCSS (utility-first styling)
- React Beautiful DnD (drag & drop)
- React Colorful (color picker)
- Heroicons (SVG icons)
Backend:
- Node.js + Express (API, static serving)
- Data Storage: Simple JSON file (no database, no browser cache)
- Container: Docker for easy deployment
dodash/
├── src/ # Frontend source code
│ ├── components/
│ │ ├── AddListButton
│ │ ├── ListSelector
│ │ ├── TaskItem
│ │ └── TaskList
│ ├── types/
│ ├── App.tsx
│ └── index.tsx
├── server/ # Backend code (Express)
│ └── index.js
├── public/ # Static assets
├── data/ # JSON data persistence
│ └── todos.json
└── docker/ # Docker config
git clone https://github.com/Ddave82/DoDash.git
cd DoDash
npm install
- Backend:
cd server node index.js
- Frontend: (in a new terminal)
npm start
App runs at: http://localhost:8080
npm run build
docker build -t dodash .
docker run -p 8080:8080 -v $(pwd)/data:/app/data dodash
Access DoDash at http://localhost:8080 or your local network IP (e.g., http://192.168.1.10:8080
).
- All data is stored in
/app/data/todos.json
inside the container. - Data is persisted via Docker volume, safe across restarts.
- Backup: Copy the
data/
folder to save your lists/tasks.
JSON structure:
{
"lists": [
{
"id": "string",
"name": "string",
"color": "string (hex)",
"tasks": [
{
"id": "string",
"text": "string",
"completed": "boolean"
}
]
}
]
}
- Chrome / Edge (latest 2 versions)
- Firefox (latest 2 versions)
- Safari (latest 2 versions)
- Mobile browsers (iOS, Android)
Contributions are welcome! Open an issue or submit a PR—feedback and improvements are appreciated.
Ready to get things done?
Star the repo, run DoDash in your LAN, and enjoy next-level productivity—beautifully simple, 100% yours.