Professional bilingual task management for teams & managers - Kanban, roles, analytics, one self-hosted app
π¬π§ English Β· πΈπ¦ Ψ§ΩΨΉΨ±Ψ¨ΩΨ©
- What is TaskBoard?
- Roles & Permissions
- Quick Start
- Commands
- Environment Variables
- Features
- VS Code Extension
- Tech Stack
- Project Structure
- Roadmap
- Contributing
- Security
- Changelog
- License
TaskBoard is a free, open-source task management system for bilingual teams - built natively in English and Arabic (full RTL layout) and written to fix the root problems found in hosted tools. No per-seat pricing, no external services, no lock-in.
| Problem | Hosted Tools | TaskBoard |
|---|---|---|
| Arabic is an afterthought | β Broken RTL, untranslated fields | β Bilingual everywhere - titles, descriptions, reports |
| Per-seat subscriptions | β Monthly cost per user | β Self-hosted, MIT licensed |
| External database services | β Managed DB required | β Embedded SQLite - zero dependencies |
| Weak role separation | β Everyone sees everything | β Server-enforced leader / member / client scopes |
| No native reporting | β Export behind paywalls | β Bilingual PDF reports built in |
| Role | Scope | Can Do |
|---|---|---|
| leader | Everything | Manage projects, sections, tasks, users, prices - full CRUD everywhere |
| member | Assigned tasks only | View assigned tasks, update their status, work on their own kanban items |
| client | Own projects only | Track project progress, edit tasks inside their projects, join the team view |
All permissions are enforced server-side on every API route - the UI simply mirrors what the backend allows. Task prices (assigneePrices) are visible to leaders only and stripped from every other response.
git clone https://github.com/red-shadows-rs/task-board.git
cd task-board
npm install
cp .env.example .env.local
npm run devOpen http://localhost:3000 in your browser.
On an empty database the first account created is auto-promoted to leader (bootstrap mode). After that, only leaders can create and manage users from the Team page.
npm run build
npm startRequirements:
- Node.js >= 20
- npm >= 10
| Command | Description |
|---|---|
npm run dev |
Start dev server with Turbopack |
npm run build |
Production build |
npm start |
Start production server |
npm run lint |
Run ESLint |
npm run lint:fix |
Auto-fix lint issues |
npm run format |
Format with Prettier |
npm run format:check |
Check formatting |
npm run type-check |
TypeScript type checking |
npm run validate |
Full validation (format + lint + types) - required before every commit |
Copy .env.example to .env.local before first run:
| Variable | Required | Default | Description |
|---|---|---|---|
SESSION_SECRET |
Yes | β | HMAC-SHA256 signing key for sessions - random string of at least 32 characters |
TRUST_PROXY |
No | unset | Set true only behind a trusted reverse proxy to enable per-IP rate limiting |
The app refuses to boot without a strong SESSION_SECRET (generate one with openssl rand -base64 48).
|
|
|
|
Manage your tasks without leaving the editor. The extension in vscode-extension/ is built 100% on native VS Code APIs β no webviews β and mirrors the web app's permission model.
- Activity Bar container with three native panels: Account (user, role, server, stats, dashboard shortcut), My Tasks (assigned tasks grouped by status), and Projects (full Projects β Sections β Tasks tree with progress).
- Quick actions β change task status via Quick Pick, create tasks, open anything in the browser (inline buttons on hover).
- Status bar badge with your open task count; auto-refresh option.
- Secure by default β session token in VS Code SecretStorage, Bearer-token API auth, cleartext-HTTP warning.
cd vscode-extension
npm install && npm run build
# Press F5 to launch an Extension Development Host, or:
npm run package && code --install-extension taskboard-vscode-0.2.0.vsixFull documentation in vscode-extension/README.md.
| Category | Technology | Purpose |
|---|---|---|
| Framework | Next.js 16 | App Router + Turbopack |
| UI | React 18 + Radix UI | Component primitives |
| Styling | Tailwind CSS 3 | Utility-first CSS |
| Language | TypeScript 5 | Type safety |
| Database | better-sqlite3 | Embedded SQLite |
| Auth | bcryptjs + HMAC-SHA256 | Sessions |
| Drag & Drop | dnd-kit | Kanban reordering |
| Rich Text | Tiptap | Task descriptions |
| Forms | React Hook Form + Zod | Validation |
| State | Zustand | Global UI state |
| Charts | Recharts | Analytics |
| jsPDF + jspdf-autotable | Export | |
| Animations | Framer Motion | Transitions |
| Notifications | react-hot-toast | Toast alerts |
| Dates | date-fns + react-day-picker | Date handling |
| Icons | Lucide React | Iconography |
| VS Code Client | VS Code Extension API | vscode-extension/ |
| Linting | ESLint 9 (flat config) | Code quality |
| Formatting | Prettier | Code style |
TaskBoard/
βββ data/ # SQLite database + attachment images (runtime)
βββ public/
β βββ fonts/ # IBM Plex Sans Arabic (PDF)
β βββ locales/ # i18n modules (en/ar)
β βββ manifest.json # PWA manifest
βββ src/
β βββ app/
β β βββ api/ # REST API routes
β β β βββ auth/ # Login, logout, session
β β β βββ images/ # Authenticated attachment serving
β β β βββ locales/ # Locale module listing
β β β βββ projects/ # Project CRUD + reorder
β β β βββ sections/ # Section CRUD + reorder
β β β βββ tasks/ # Task CRUD + reorder + images
β β β βββ users/ # User CRUD + reorder
β β β βββ shared/ # Rate limiting, validators, responses
β β βββ dashboard/ # Tasks, projects, analytics, team
β β βββ login/ # Authentication page
β β βββ profile/ # User profile
β βββ components/
β β βββ common/ # Shared logic (kanban, tasks, charts)
β β βββ layouts/ # Navbar, footer
β β βββ pages/ # Page-level components
β β βββ ui/ # UI primitives (shadcn/ui-style)
β βββ contexts/ # Language + Zustand store
β βββ lib/
β β βββ auth.ts # Session signing, RBAC guards
β β βββ db.ts # SQLite schema + data layer
β βββ types/ # TypeScript interfaces
β βββ utils/ # PDF export, pricing
βββ scripts/ # Locale parity checker
βββ vscode-extension/ # Native VS Code extension (own package)
βββ .github/ # Issue/PR templates, CI, release workflow
βββ CHANGELOG.md # Release history
βββ LICENSE # MIT
βββ README.md # This file
- Embedded database (SQLite via better-sqlite3)
- Native VS Code extension
- Email notifications for task assignments
- OAuth2 / social login support
- WebSocket real-time updates
- Docker deployment configuration
- Unit and integration tests
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes
- Push to the branch
- Open a Pull Request
Full workflow, commit convention and release process in CONTRIBUTING.md.
To report a security vulnerability, please follow the Security Policy. Do not open a public issue.
See CHANGELOG.md for a detailed version history. This project follows Semantic Versioning.
| Version | Date | Highlights |
|---|---|---|
| v4.2.0 | 2026-08-27 | Security audit fixes, native VS Code extension, dead-code cleanup |
| v4.1.1 | 2026-08-27 | Unified docs style across all markdown, SVG logo banner, kebab-case repo references |
| v4.1.0 | 2026-08-27 | SQLite storage, server-side RBAC, hardened sessions, GitHub scaffolding |
| v4.0.6 | 2026-05-15 | Updated author username, set GitHub repo topics |
| v4.0.5 | 2026-05-14 | Fixed drag-and-drop on desktop, fixed metadata icons |
| v4.0.4 | 2026-05-14 | Removed ESLint disable comments, removed console logs |
| v4.0.3 | 2026-05-14 | Fixed repo links, updated branding, version bump |
| v4.0.2 | 2026-05-14 | Restored original icon, added .env.example |
| v4.0.1 | 2026-05-14 | Documentation overhaul, Arabic README, data cleanup |
| v4.0.0 | 2026-05-14 | Analytics, PDF export, PWA, bilingual, dark/light theme |
| v3.0.0 | 2026-04-01 | Project/section management, task CRUD, user roles |
| v2.0.0 | 2026-03-01 | Kanban board UI, statuses/priorities/tags, dashboard |
| v1.0.0 | 2026-02-01 | Initial setup: Next.js App Router, login, Tailwind |
Distributed under the MIT License.
Built by Shadow-x78 Β· RED SHADOWS | RS Β· Changelog
Β© 2026 TaskBoard