Skip to content

Repository files navigation

planifie — timeline-based productivity & journaling

A local-first desktop planner where every task is a living timeline. 🌿

version Tauri React License


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.

✨ Features

  • 🧵 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).

🧰 Tech stack

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.

🚀 Getting started

Prerequisites

Install

npm install

Develop

# 🌐 Web preview (in-memory storage), fast iteration
npm run dev

# 🖥️ Full desktop app (SQLite persistence)
npm run tauri:dev

Build

npm run build        # type-check + Vite build
npm run tauri:build  # bundle the native desktop app

Test

npm run test:e2e        # Playwright E2E
npm run test:e2e:ui     # interactive runner
npm run test:e2e:report # last HTML report

🗺️ Project structure

src/
  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

📄 License

MIT — made with 💜 using Tauri + React.