planifie turns each task into a chronological feed of blocks — quick notes, focus timers, and rich-text documents — organized across color-coded workspaces. ✨
Everything lives on your machine in a local SQLite database; nothing leaves your computer. Export any task or document to Markdown or PDF whenever you need to share it.
- 🧵 Timeline-based tasks — Each task is a stream of timestamped blocks instead of a flat checklist.
- 🧱 Three block types
- 📋 Notes — fast, plain-text jottings.
- 🕐 Timers — focus/stopwatch sessions with presets, pause/resume, and a persistent action bar that follows you across tasks.
- 📄 Documents — full rich-text editing powered by BlockNote, openable in a fullscreen editor.
- 🗂️ Workspaces & tags — Group tasks into color-coded workspaces and tag them for quick filtering.
- 📤 Export — One task or a single document, out to Markdown or PDF.
- 🔒 Local-first — Data is stored in SQLite via the Tauri SQL plugin; runs entirely offline.
- 🌗 Light & dark themes — with a custom type system (Hanken Grotesk, Newsreader, JetBrains Mono).
| Layer | Tools |
|---|---|
| 🖥️ Desktop | Tauri 2 (Rust) |
| 🎨 UI | React 18 + TypeScript + Mantine 8 |
| ✍️ Editor | BlockNote |
| 🐻 State | Zustand |
| 💾 Storage | SQLite (tauri-plugin-sql) |
| ⚡ Build | Vite 6 |
| 📦 Export | jsPDF + marked |
| 🧪 E2E tests | Playwright |
💡 The app runs in two modes: inside the Tauri shell it persists to SQLite; in a plain browser (e.g.
npm run dev) it falls back to an in-memory adapter, which is handy for development and E2E tests.
npm install# 🌐 Web preview (in-memory storage), fast iteration
npm run dev
# 🖥️ Full desktop app (SQLite persistence)
npm run tauri:devnpm run build # type-check + Vite build
npm run tauri:build # bundle the native desktop appnpm run test:e2e # Playwright E2E
npm run test:e2e:ui # interactive runner
npm run test:e2e:report # last HTML reportsrc/
components/ UI: sidebar, timeline, blocks, modals, action bar
stores/ Zustand stores (tasks, workspaces, tags, timer, presets, UI, theme)
db/ Storage adapters (SQLite + in-memory) behind a common interface
lib/ Helpers (time, colors, markdown, export, ids)
types/ Shared domain types
src-tauri/ Rust/Tauri desktop shell
MIT — made with 💜 using Tauri + React.