DispatchTodoApp
Dispatch is a self-hosted task app that you'll love using
Install / Use
/learn @nkasco/DispatchTodoAppREADME
<p align="center"> <img src="./docs/assets/dispatch-dashboard-latest.png" alt="Dispatch dashboard screenshot" /> </p> <p align="center"><em>Clean dark UI, fast keyboard flow, project rollups, deadline focus, and daily dispatch planning in one screen.</em></p>
Why It Feels Great
| | |
| --- | --- |
| Runs locally (Docker/Node) with SQLite on the host. | Next.js + Node server runtime with SQLite data persisted on the host (dispatch.db) or Docker volume. |
| One workspace for everything | Tasks, projects, notes, and dispatches stay connected. |
| Keyboard-friendly UX | Fast actions, global search, and shortcut support keep flow uninterrupted. |
| Built for real execution | Deadline focus, progress rollups, and upcoming work are always visible. |
Runtime and Storage Model
Runs locally (Docker/Node) with SQLite on the host.
- Dispatch requires a server runtime (Next.js + Node) to function.
- Data is stored in a SQLite database file on the host machine (or Docker volume when containerized).
- The browser acts as a client only.
- Dispatch does not use IndexedDB or browser-based primary storage, and it is not a purely client-side PWA.
Feature Tour
Dashboard: instant visibility into active tasks, notes, dispatches, deadlines, and project activity.Tasks: status + priority + due dates + project links.Projects: progress rollups and scoped task lists.Notes: markdown editing, preview, and export.Dispatch: daily planning surface with rollover support.Personal Assistant (Beta): streaming AI chat powered by Vercel AI SDK, with in-app actions via a local MCP (Model Context Protocol) tool server.Search: global search across tasks, notes, and dispatch records.Recycle Bin: restore or permanently remove archived items.Auth: GitHub OAuth and local development credentials.
Tech Stack
<p align="center"> <img alt="Next.js" src="https://img.shields.io/badge/Next.js-16-black?style=for-the-badge&logo=next.js" /> <img alt="React" src="https://img.shields.io/badge/React-19-0f172a?style=for-the-badge&logo=react" /> <img alt="TypeScript" src="https://img.shields.io/badge/TypeScript-5-1d4ed8?style=for-the-badge&logo=typescript&logoColor=white" /> <img alt="SQLite" src="https://img.shields.io/badge/SQLite-Local-0ea5e9?style=for-the-badge&logo=sqlite" /> <img alt="Tailwind" src="https://img.shields.io/badge/Tailwind-v4-0891b2?style=for-the-badge&logo=tailwindcss&logoColor=white" /> </p>Quick Start
Docker Setup (Recommended)
Dispatch includes production launchers that create/update .env.prod and run Docker Compose.
Prerequisites:
- Docker Desktop (Windows/macOS) or Docker Engine + Compose plugin (Linux)
dockeravailable on yourPATH, with Docker running before setup- Internet access to pull the default image (
ghcr.io/nkasco/dispatchtodoapp:latest)
Use one of the following:
.\dispatch.ps1 setup
./dispatch.sh setup
GitHub Auth in Docker:
- During setup, choose
Enable GitHub OAuth sign-in?and provideAUTH_GITHUB_ID/AUTH_GITHUB_SECRET. - Set
NEXTAUTH_URLto the public URL users will open in the browser. - If this runs on a dedicated server in your home/lab network, use the server hostname or LAN IP in
NEXTAUTH_URLinstead oflocalhost. - In GitHub OAuth app settings, set the callback URL to:
<NEXTAUTH_URL>/api/auth/callback/github- Example:
http://dispatch-server:3000/api/auth/callback/github
Local Development - Prerequisites
Use this section only if you are running Dispatch locally with Node.js (npm run dev, npm run build, npm run start).
- Node.js
20.9+(LTS recommended).
Node includes npm, which is required for local development commands. - Git (recommended for pulling updates).
- If native module install fails (for
better-sqlite3), install platform build tools:- Windows: Visual Studio Build Tools (C++ workload)
- macOS: Xcode Command Line Tools (
xcode-select --install)
Manual Setup (Alternative)
1. Install
npm install
2. Configure env
Create .env.local (local Node.js/dev runtime only):
Docker setup uses
.env.prod, not.env.local.
# Required for NextAuth
AUTH_SECRET=your_random_secret
NEXTAUTH_URL=http://localhost:3000
# GitHub OAuth (optional)
AUTH_GITHUB_ID=your_github_oauth_client_id
AUTH_GITHUB_SECRET=your_github_oauth_client_secret
# Optional (defaults to ./dispatch.db)
DATABASE_URL=./dispatch.db
3. Migrate database
npm run db:migrate
4. Run app
npm run dev
Open http://localhost:3000.
npm run dev starts both services:
- Next.js app on
http://localhost:3000 - Dispatch MCP server on
http://localhost:3001(used by Personal Assistant tool calling)
Dev Login (Optional)
- Seeded account:
test@dispatch.local/test- Run
npm run db:seedfirst to create the seeded account.
- Run
Dispatch is an independent open-source project and is not affiliated with any other software using the name Dispatch.
<p align="center"> <img src="https://capsule-render.vercel.app/api?type=waving&height=120§ion=footer&color=0:0a1020,35:12244a,70:1d4ed8,100:7c3aed" alt="footer" /> </p>
Related Skills
node-connect
339.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.8kCommit, push, and open a PR
