Sift
Collaborative lists with real‑time voting and ranking. Create a room, share the link, add ideas, and sort them together with upvotes, downvotes, or vetoes.

Why Sift?
- Real‑time collaboration: everyone sees changes instantly
- Simple ranking: upvote, downvote, or veto; items auto‑sort by score
- Veto with care: vetoed items fall to the bottom and dim
- Bulk input: paste many lines at once; quick brainstorms welcome
- Keyboard‑friendly: j/k navigate • 1/2/3 vote • e edit • Del delete • ? help • Ctrl/Cmd+Z undo
- Clean UI: light/dark themes, responsive, reduced‑motion friendly
- Easy sharing: rooms are just links; optional room titles for context
Quick start
Run the server (Deno required):
deno run \
--allow-net=:8294 \
--allow-read=./static/,./lists.db,$HOME/.cache/deno/plug \
--allow-write=./lists.db,$HOME/.cache/deno/plug \
--allow-env \
--allow-ffi \
server.ts
Then open http://localhost:8294 in your browser.
CLI options
--host <hostname>— Bind to specific interface (default:localhost, use0.0.0.0for all interfaces)--port <port>— Listen on specific port (default:8294)
Example binding to all interfaces on port 3000:
deno run \
--allow-net=:3000 \
--allow-read=./static/,./lists.db,$HOME/.cache/deno/plug \
--allow-write=./lists.db,$HOME/.cache/deno/plug \
--allow-env \
--allow-ffi \
server.ts --host 0.0.0.0 --port 3000
Note: Update --allow-net permission to match your chosen port.
How it works (for users)
- Create a room and share the link, or join an existing room by code
- Add items one‑by‑one or paste multiple lines
- Vote: 1 = up, 2 = down, 3 = veto; Enter also upvotes the selected item
- Edit or delete items inline; reset votes when starting a new round
- Optionally set a room title to keep context
Tip: You can deep‑link into a room via ?room=CODE.
Notes on privacy & safety
- No accounts or authentication; rooms are protected only by knowing the ID
- Treat rooms as shared spaces—don’t post sensitive information
License
- Code: AGPL‑3.0‑or‑later → see LICENSES/AGPL-3.0-or-later.txt
- Docs/assets: CC0‑1.0 → see LICENSES/CC0-1.0.txt
- This project follows REUSE best practices