Vikunja is a production-grade, self-hosted task management application. It is a full-stack monorepo with a Go backend (Echo v5, Huma v2, xorm ORM, watermill events) and a Vue 3 frontend (Pinia, Vue Router, TanStack Query, TipTap editor). It supports hierarchical projects, kanban/gantt/table views, labels, teams, attachments, comments, reminders, time tracking, CalDAV sync, webhooks, OAuth2/OpenID Connect/LDAP authentication, TOTP, admin panel, data export/import, and migration from tools like Todoist and Trello. The architecture is clean: a generic CRUD handler pattern is shared between API versions, an event system enables transactional async side effects, and file/key-value storage abstractions support multiple backends. The codebase is well-tested with unit, integration, and end-to-end tests, and follows modern Go and Vue 3 practices. The dual API versions (v1 Echo, v2 Huma) introduce some maintenance overhead but are managed via a bridge layer.
TaskNotes is a mature Obsidian plugin that transforms task management into a note-based system. Each task is a separate Markdown file with YAML frontmatter, providing full portability and no proprietary database. The plugin offers a comprehensive set of features: task lists, Kanban boards, calendar views (via FullCalendar), agenda view, mini calendar, Pomodoro timer, time tracking, recurring tasks (RRULE with per-instance completion), dependencies (F2F), custom statuses/priorities, user-defined fields, natural language input for task creation, and external calendar sync (Google Calendar, Microsoft, ICS/CalDAV). It also includes an HTTP API, CLI commands, webhooks, and MCP (Model Context Protocol) integration for AI agents. The architecture is event-driven, with a central plugin class that coordinates services, modals, editors, and views. Views are built on Obsidian's Bases system, allowing declarative configuration via .base files. The codebase is heavily tested with over 200 unit tests, many targeting specific GitHub issues, and a suite of Playwright e2e tests running against a real Obsidian vault. The project demonstrates strong engineering practices with modular design, reusable components (EventEmitter, VirtualScroller, DOMReconciler, RequestDeduplicator), and comprehensive i18n support (9 UI languages).
Plane is an open-source, self-hosted project management platform that provides issue tracking, sprint planning (cycles), modules, pages (wiki), views, analytics, and real-time collaborative editing. The repository is a monorepo containing a Django REST API backend with Celery workers, multiple React frontends (main web app, public space app, admin panel), and a Hocuspocus-based live collaboration server. The architecture follows a service-oriented pattern with shared packages for UI components, editor extensions, types, utilities, and state management via MobX. The codebase demonstrates strong engineering practices with a rich filter system, extensible permission model, and a clean exporter pattern, though it shows signs of ongoing migration from Next.js to React Router and some code duplication across apps.
Jotty (formerly rwMarkable) is a full-stack, self-hosted productivity application for managing notes, checklists, and Kanban boards. It uses Next.js 16 (App Router), React 19, and TypeScript with a file-based storage system (Markdown files with YAML frontmatter). Key features include rich text editing (TipTap with custom extensions for diagrams, callouts, mentions), drag-and-drop (custom DnD engine for Kanban, @dnd-kit for checklists), user management with multiple authentication methods (local, LDAP, OIDC), MFA (TOTP), encryption (PGP, XChaCha20), granular sharing with permission inheritance, version history via Git, full-text search using grep, audit logging, and a PWA with offline support. The architecture is server-first with Next.js server actions for all mutations and a WebSocket broadcast for real-time updates. The codebase is well-organized with a clear separation of concerns: global UI components, feature-specific components, server actions, types, utilities, and hooks. It has extensive test coverage (Vitest) across server actions, API routes, utilities, and security. While file-based storage imposes scalability limitations, the application demonstrates high craftsmanship in its modular design, custom drag-and-drop implementation, encryption handling, and sharing system. It is actively maintained with regular releases and community contributions.
Kanboard is a self-hosted, open-source project management application implementing the Kanban methodology. It provides a full web interface for managing tasks, projects, columns, swimlanes, subtasks, comments, tags, and time tracking, with drag-and-drop board interaction, automatic actions triggered by events, and extensive filtering/search capabilities. The architecture follows a custom MVC pattern with PHP controllers, models, and templates, using Pimple for dependency injection, PicoDb for database abstraction (supporting SQLite, MySQL, PostgreSQL, and MSSQL), and Symfony EventDispatcher for event-driven workflows. It includes a JSON-RPC API, CLI console commands, a plugin system, multiple authentication backends (LDAP, OAuth2, reverse proxy, TOTP), email notifications via SwiftMailer, and analytics (burndown, cumulative flow, lead/cycle time). The frontend uses jQuery and custom JavaScript components with charting via C3.js/D3.js. The codebase is well-structured with clear separation of concerns, extensive unit and integration tests, and a modular design that allows plugins to extend functionality. However, it is explicitly in maintenance mode (no new features, only bug fixes and community contributions), and several vendored libraries (SwiftMailer, PicoDb, JSON-RPC, etc.) may become outdated. The JavaScript layer relies on older patterns (jQuery, global namespace) and lacks a modern build pipeline. Configuration uses global constants rather than environment variables, and some areas show technical debt (e.g., mixed coding styles, deprecated PHP annotations). Despite these issues, the core architecture is solid, and many components (filter system, plugin installer, OAuth2 client, LDAP client, queue manager) are well-designed and potentially reusable in other PHP projects.
Hermes Desktop is a native macOS desktop application that serves as a companion for the Hermes AI agent framework. It provides a rich GUI for managing remote Hermes instances over SSH or local connections, including session browsing (chat transcripts), a full terminal emulator (via the vendored SwiftTerm library), Kanban board management, cron job scheduling, file editing, skill browsing, usage analytics, and workflow presets. The architecture is a monolithic SwiftUI + AppKit app with a service layer that communicates with the remote host by generating and executing Python scripts over SSH, parsing JSON responses. The app is designed to be a direct client without any intermediate backend, treating the remote Hermes host as the sole source of truth. It includes a custom design system (HermesUI), localization support (en, zh-Hans, ru), and comprehensive test coverage. While the codebase is well-structured and demonstrates strong SwiftUI and macOS development practices, it has some monolithic views and relies on fragile embedded Python scripts for remote operations.
Weft is a full-stack, AI-powered personal task management application built with React and Cloudflare Workers. It provides a Kanban-style board where users create tasks that can be executed by AI agents (Claude) using the Model Context Protocol (MCP) to interact with external services like Gmail, Google Docs, Google Sheets, and GitHub. The system features a sophisticated approval workflow: sensitive tool calls (e.g., sending email, creating PRs) require human approval with specialized UI components for reviewing diffs, documents, and spreadsheets. It supports scheduled task execution, real-time WebSocket updates, OAuth-based integrations, and a command palette for keyboard-driven navigation. The architecture leverages Cloudflare Durable Objects for stateful board management, Workflows for long-running agent execution, and a sandboxed environment for running untrusted code. The frontend is a single-page React application with a custom design system, while the backend is entirely serverless on Cloudflare's edge network.
Invoice Ninja is a full-featured open-source invoicing and billing platform designed for small to medium businesses. It handles the complete lifecycle of invoices, quotes, credits, purchase orders, payments, and expenses. The system supports multi-tenant SaaS and self-hosted deployments with per-company database isolation, and integrates with over 20 payment gateways (Stripe, PayPal, Mollie, GoCardless, etc.). It provides client and vendor portals for self-service, along with extensive reporting, CSV export, and e-invoicing capabilities (Peppol, Verifactu, France e-reporting). The application follows a monolithic MVC architecture built on a custom PHP framework (Illuminate) similar to Laravel. It uses an event-driven architecture with domain events and listeners for side effects (email, webhooks, activity logging). Background jobs are queued for async processing. The frontend uses Blade templates, Livewire components, and a separate React app for some admin panels. The API is RESTful with OpenAPI documentation. Key entry points are HTTP controllers under app/Http/Controllers, with request validation classes. Core data flows involve creating entities through factories, persisting via repositories, and triggering events that listeners handle. Payment flows go through abstract payment drivers that encapsulate gateway-specific logic. The system also includes extensive reporting, CSV export, and e-invoicing (Peppol, Verifactu, France e-reporting). External dependencies include a relational database (MySQL/PostgreSQL), Redis for caching and queues, Elasticsearch for search, and various third-party APIs for payment processing, tax calculation (ZipTax), bank integration (Nordigen, Yodlee), email delivery (Mailgun, Postmark, Brevo), and e-invoicing gateways (Storecove, Qvalia).
Kanri is an offline-first Kanban board desktop application built with Tauri (Rust backend) and Nuxt (Vue 3 frontend). It manages boards, columns, and cards with rich features including drag-and-drop, tags, due dates, subtasks, rich text descriptions, custom backgrounds, and multiple themes (dark, light, Catppuccin, custom). Data is persisted locally via Tauri's plugin-store as a single JSON file, with no cloud dependency. The application supports importing from Trello, KanbanElectron, GitHub Projects, and Kanri's own format, as well as full/partial export. It includes a sidebar for pinned boards, keyboard shortcuts, zoom adjustments, and a comprehensive settings page. The architecture is a monolith: the frontend runs in a WebView, communicating with the Rust backend via Tauri commands for file system access, dialogs, window state, and autostart. State management uses Pinia stores with debounced auto-save. The project is in maintenance mode, accepting only small fixes and no AI-generated contributions.
Vibe Kanban is a full-stack, dual-deployment application (local Tauri desktop app + remote cloud service) that combines Kanban-style issue tracking with AI coding agent workspaces. The local backend is a Rust Axum server backed by SQLite, while the remote backend uses PostgreSQL with ElectricSQL for real-time sync. The system allows users to create projects, manage issues, and launch coding workspaces where AI agents (Claude, Codex, Gemini, Copilot, etc.) execute tasks on isolated branches with preview servers, git operations, and automated code review. It includes a relay tunnel system for remote host pairing, a WebRTC transport for low-latency streaming, and an MCP server for external tool integration. The frontend is built with React, Tailwind CSS, and a shared component library, supporting localization in 7 languages. The project is officially sunsetting, as stated in the README, but the codebase remains a substantial example of a modern Rust/TypeScript monorepo with real-time collaboration, AI executor abstraction, and multi-platform delivery.
Focalboard is a self-hosted project management application offering board/card-based work organization similar to Trello. The architecture consists of a Go backend server providing REST/WebSocket APIs, a React/TypeScript frontend with Redux state management, and native desktop clients (macOS Swift, Windows WPF, Linux) that embed the web UI. Key features include boards with multiple views (table/kanban/calendar/gallery), customizable properties, real-time collaboration, import/export from external tools (Trello, Asana, Notion), sharing capabilities, and Mattermost plugin compatibility. Data is stored in SQL databases (SQLite/MySQL/PostgreSQL) with schema migrations. The repository exhibits a maintenance warning indicating the project is currently not maintained despite recent commits, suggesting stale status with potential dependency drift.