Skip to content

Repository files navigation

TaskFlow

Premium local productivity desktop app for Windows. Fast, fully offline, and private — every task, project, tag and analytic lives in a local SQLite database on your machine. No account, no sync, no telemetry.

Built with Electron · React 19 · TypeScript · Tailwind CSS · SQLite (sql.js).


Features

  • Task management — create, edit, complete, star, pin, duplicate, archive
  • Projects — group work with deadlines, progress and notes
  • Categories & tags — unlimited colour-coded organisation
  • Smart filters — Today, Upcoming, Overdue, High priority, Completed, Starred
  • Instant search — indexed, sub-20 ms queries
  • Command paletteCtrl+K, Linear-style keyboard-first navigation
  • Analytics — completion trends, streaks and productivity insights
  • Focus mode & Pomodoro — distraction-free work with a session-tracking timer
  • Light & dark themes — persisted, toggle with Ctrl+D
  • About page — live system information (versions, environment, platform)
  • Auto backup — rotating local backups with one-click recovery

Keyboard shortcuts

Shortcut Action
Ctrl + N New task
Ctrl + F Focus search
Ctrl + K Command palette
Ctrl + D Toggle light / dark theme
Ctrl + / Open settings

Quick start

cd taskflow
npm install
npm run dev

Requires Node.js 20+ (developed on Node 24) and Windows 10/11.

Scripts

Script Description
npm run dev Launch the app with hot reload (electron-vite)
npm run build Type-safe production build to out/
npm run typecheck tsc --noEmit — zero errors expected
npm test Run the Vitest suite
npm run dist Build a Windows NSIS installer
npm run dist:portable Build a portable Windows .exe

Configuration & secrets

TaskFlow is 100% local — it needs no environment variables, API keys or secrets to build or run. There is intentionally no .env file. The .gitignore still excludes .env*, *.pem, *.key, *.db and build output so nothing sensitive or machine-specific is ever committed.

Where your data lives

Item Path
Database %APPDATA%/taskflow/data/taskflow.db
Backups %APPDATA%/taskflow/data/backups/ (last 10 kept)

The database is created and seeded with sample data on first launch. Deleting the data folder resets the app.


Architecture

electron/
  main/            # Node/Electron main process
    database/      # sql.js adapter, schema, snapshot persistence, backups
    services/      # task/project/category/tag/analytics/settings/system + validation
    ipc/           # typed IPC handlers
  preload/         # contextBridge API (window.taskflow)
src/               # React renderer
  components/  views/  stores/  hooks/  lib/  types/
  • Process isolationcontextIsolation: true, nodeIntegration: false. The renderer only talks to the main process through a typed, whitelisted preload bridge.
  • Service layer owns all database access; the UI never touches SQL.
  • Input validation — everything crossing the IPC boundary is sanitized (services/validation.ts) before reaching parameterized SQL.
  • Persistence — sql.js (SQLite compiled to WASM) runs in-memory and writes a full database snapshot to disk on each mutation, with rotating backups for crash recovery.

See docs/ARCHITECTURE.md, docs/DESIGN_SYSTEM.md, docs/DEPLOYMENT.md and docs/PERFORMANCE.md for details, and CHANGELOG.md for the recovery/enhancement history.

Testing

npm test        # 22 tests: schema integrity + input validation
npm run typecheck

License

MIT © TaskFlow. See open-source library credits on the in-app About page.

About

TaskFlow X — premium local, fully-offline productivity desktop app. Electron + React + TypeScript + SQLite (sql.js).

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages