Taskora is a privacy-first, local-first productivity workspace combining an interactive Kanban board, a synchronized Pomodoro timer, and serverless peer-to-peer device synchronization.
All personal tasks and productivity analytics remain stored directly inside your browser storage. Devices connect directly over encrypted WebRTC data channels with zero intermediary cloud database.
I was looking for a tool to manage my daily to-do lists and track personal productivity, but could not find one that fit my needs. Most solutions were either locked behind paid subscriptions or severely restricted essential features behind limited-access tiers. I did not want to waste money on recurring software fees or compromise my workflow with artificial limitations, so I built Taskora: a free, open-source, local-first productivity workspace that provides full functionality with complete privacy and zero paywalls. It works cross-platform directly in any browser without needing an app install, keeping all your devices in real-time sync at the same time.
- Visual column workflow: Todo, In Progress, and Done.
- Drag-and-drop card reordering and column movement.
- Granular task details: Priority levels (Low, Medium, High), subtask checklists, due dates, due times, and custom tags.
- Search and filtering by status, priority, and text search.
- Quick action menu for status transitions, editing, and deletion.
- Three distinct session modes: Focus, Short Break, and Long Break.
- Wall-clock synchronization: Accurate down to the millisecond across devices with hardware clock skew elimination.
- Master-follower heartbeat synchronization to prevent ping-pong loops and interval drift.
- Background persistence: Continues running and ticking while navigating across board or analytics tabs.
- Visibility change recovery: Automatically recalculates elapsed time when tabs are refocused or phones are unlocked.
- Optional task linking to track completed Pomodoro cycles per task.
- Connect phone and laptop directly over WebRTC DataChannel.
- Quick pairing using a 4-digit PIN or QR code scan.
- Host authorization prompt: When a device attempts connection, the laptop displays an explicit authorization request (Accept or Decline) before exchanging data.
- Bidirectional conflict resolution: Merges tasks and history using timestamp-based updates and deletion tombstones.
- Live settings synchronization: Changes to Pomodoro durations or sound preferences sync in real time across paired devices.
- Zero cloud database: Data stays on your devices.
- Daily completed task totals and focus time records.
- Completion streaks and daily visual goal tracking.
- Visual breakdown of tasks by priority and category tags.
- Synthesized audio cues via Web Audio API for task completions, timer finishes, and pairing notifications.
- Celebratory multi-angle confetti cannon animation whenever a task is marked done.
- Offline-first operation with custom service worker caching.
- Installable on desktop, Android, and iOS home screens.
- Web push notification support for upcoming task deadlines.
| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack) |
| UI Library | React 19 |
| Language | TypeScript 5 |
| Styling | Tailwind CSS v4 |
| Icons | Lucide React |
| P2P Networking | PeerJS, WebRTC DataChannel |
| QR Code | qrcode |
| Particle Effects | canvas-confetti |
| Audio | Web Audio API Synthesizer |
| Storage | Browser localStorage with BroadcastChannel tab synchronization |
- Node.js 18.18.0 or newer
- npm, pnpm, yarn, or bun
-
Clone the repository:
git clone https://github.com/ShahbazCoder1/Taskora.git cd Taskora -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
Create an optimized production bundle:
npm run build
npm run start- On your laptop, open the Sync modal from the header and select Host.
- A unique 4-digit PIN and QR code will be generated.
- On your phone, open Taskora, go to Sync, and choose Connect.
- Enter the 4-digit PIN or scan the QR code using your phone camera.
- On your laptop, a prompt will appear: Allow connection from 'Phone'?
- Click Accept to establish an encrypted WebRTC data channel. Tasks, timer, and settings will synchronize automatically.
Taskora is built with a strict local-first philosophy:
- Zero tracking or user profiling.
- Tasks, reminders, and history are stored locally on your device.
- Device synchronization occurs peer-to-peer over WebRTC data channels.
- Backups can be exported and imported at any time as JSON files via the Settings tab.
This project is licensed under the MIT License. See the LICENSE file for details.