A self-hosted task manager with a web app, an Android app and real-time sync
Lists, smart views, sharing, natural language quick-add, offline queue and push
| Folder | What it is |
|---|---|
backend/ |
Bun + Hono + Postgres API, WebSocket sync, web push |
frontend/ |
React + Vite + Tailwind PWA |
android/ |
Native Kotlin app (Jetpack Compose, Room, Hilt) |
mcp/ |
MCP server so Claude Code can read and edit your tasks |
- Lists with icons and colors, plus smart views (today, week, overdue, assigned, all)
- Share a list with anyone, roles for owner, editor and viewer
- Quick-add that parses text like
report friday 5pm high priority - Recurring tasks via RRULE
- Real-time sync over WebSocket, offline queue that flushes on reconnect
- Web push and native Android push (FCM)
- Command palette, keyboard shortcuts, light and dark themes
- Personal API keys and outgoing webhooks for n8n, Zapier or your own scripts
- Import from Google Keep (Google Takeout export)
- GitHub trackers for issues, pull requests and security alerts, synced into a GitHub list
- Scratchpads for plain notes with basic formatting
git clone https://github.com/Orang-Studio/OrangTask
cd OrangTask
cp backend/.env.example backend/.envFill in backend/.env, at minimum DATABASE_URL, REDIS_URL and SESSION_SECRET.
OAuth, email and push are all optional, the app runs without them.
docker compose up -dOr run it directly:
cd backend && bun install && bun run src/index.ts
cd frontend && bun install && bun run devnginx.example.conf has a reverse proxy config that handles the /ws upgrade.
Open android/ in Android Studio and run. For native push, drop your Firebase
google-services.json into android/app/ and apply the Google Services plugin.
Without it the app still builds, push is simply inert.
Community translations are managed in Weblate. English is the source locale for both clients. To pull a published locale into the web and Android trees:
cd frontend
WEBLATE_LOCALES=lt npm run i18n:pullmcp/ is an MCP server that exposes your tasks over the personal API key. See
mcp/README.md for setup.
- Bun 1.1+ (or Node 18+)
- PostgreSQL 14+
- Redis 6+
- JDK 17 and Android SDK 34 for the Android app
GPL-3.0 licensed
Made with Love ❤️