A board that drifts
straight to your team.
Driftboard is a Kanban app with no backend at all, built for security. Every board is a CRDT that lives on your machine and syncs peer‑to‑peer, over WebRTC, directly with the people you invite.
Nothing to sign up for. Nothing to trust.
Two peers with the app open exchange board data directly over a WebRTC data channel, encrypted end‑to‑end with a passphrase generated on your device. The only outside help either of you needs is a brief signaling handshake to find each other.
- ● No accounts, no email. Create a workspace and you're already in it.
- ● Works fully offline. Every board persists locally and syncs the moment a peer is reachable.
- ● Invite by link, code, or QR. Whoever holds it can read and write — treat it like a shared password.
$ npm install
$ npm run electron:dev
# two peers, one workspace
✓ workspace created driftboard-8f2a
✓ invite code RQ7-K2M-91X
$ peer joins with code
✓ WebRTC channel open, encrypted
✓ synced 14 cards, 3 lists — 210ms
Every edit is a CRDT. Conflicts resolve themselves.
Lists and cards live in a Yjs document. Any peer can edit any field concurrently — Yjs merges the changes automatically, with no server arbitrating who's right.
Everything a board needs. Nothing it doesn't.
Board, table, calendar
Drag and drop between lists, switch to a spreadsheet view, or lay cards out by due date.
Works offline, always
IndexedDB keeps a full local copy. Close your laptop mid‑edit — nothing is lost.
QR code invites
Point a phone at the screen, or share a short room code out loud.
Checklists & comments
Attachments, due dates, labels, and assignees, merged conflict‑free across every peer.
Dark mode
The whole interface, tuned for long sessions and low light.
MSIX for the Store
Signed, packaged, and ready for the Microsoft Store — or run it straight from source.
An invite is full access. Forever.
There's no per‑person permission system
An invite link or code is read‑write access to that workspace, for whoever holds it, for as long as they hold it. That's inherent to a serverless CRDT — everyone with the key is a full replica, and there's no way to revoke a single peer once they've synced.
To remove someone going forward: start a fresh workspace and re‑share the new code with
everyone else. Their existing local copy of the old board still works — this isn't a
perfect revoke, just the honest limit of the design. Treat an invite like a shared password.
A small, boring stack. On purpose.
No proprietary sync service, no custom protocol — just well‑understood, inspectable pieces.
Your next board doesn't need a server.
MIT licensed. Runs on your machine, syncs to theirs.