v1.0 · packaged for the Microsoft Store

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.


// no backend

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.
terminal
$ 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

// how sync works

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.

device A device B CRDT merge

// what's inside

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.


// read this before inviting people

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.


// built with

A small, boring stack. On purpose.

No proprietary sync service, no custom protocol — just well‑understood, inspectable pieces.

React 18 TypeScript Tailwind CSS Yjs (CRDT) y-webrtc y-indexeddb Electron Zustand @dnd-kit electron-builder
// get started

Your next board doesn't need a server.

MIT licensed. Runs on your machine, syncs to theirs.