Most TODO tools suck for power users:
- In your way: You have to go to them. They don't notify you, or embed into your workflow.
- Overkill: Many try to be wikis, calendars, or even programming platforms.
- Walled gardens: APIs locked behind subscriptions or bad docs.
- Hard to extend: Monolithic or closed-source.
- Stuck in files: Forcing you to setup/use cloud storage like Dropbox, iCloud, SyncThing just to keep your tasks in sync accross devices.
Rafta flips that:
- A simple gRPC server to store and sync tasks.
- A clean schema designed for anyone to build clients.
- No scope creep — task management, nothing more.
- Built for hackers — SQLite backend, no lock-in.
- Self-hosted Server Approach - Ensuring a common source of truth for all your devices
If you want a TODO system that stays out of your way and works wherever you work (Neovim, shell, mobile, etc.), take part in the development of rafta. I promise, I put a lot of thought into it before risking creating a new standard.
- API: gRPC, documented in
resources/schema.proto - Auth: JWT (via Auth endpoint)
- Quickstart:
docker-compose up - Client responsibility: All UI, notifications, etc.
flowchart LR
client(Rafta Client)
srv[Rafta Server]
db([SQLite DB])
client--gRPC-->srv
srv--query/update-->db
db--result-->srv
srv--response-->client
- Neovim Plugin: Like oil.nvim, but for tasks.
- Mobile App: Clean UI, simple UX, timely push notifications.
- iCal Client: Generate public/private calendar feeds from task filters.
- Orgmode / TodoTxt / Vimwiki: Fragile text parsing, sync requires all clients to support the specific cloud hosting you chose.
- Obsidian: Closed source, poor plugin interop.
- Todoist: Great UX, but API is paywalled.
- Apple Reminders: Locked to macOS/iOS.
Rafta is a thin server spec with an open schema. You bring the clients.
