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.
Kuro is an Electron-based desktop client for Microsoft To-Do that wraps the web interface in a native application shell. It provides desktop-specific features like system tray integration, global keyboard shortcuts, auto-launch capabilities, and theme customization while maintaining compatibility with the Microsoft To-Do web service. The architecture follows a standard Electron pattern with main and renderer processes, using IPC communication for desktop features and electron-store for persistent settings. The application injects custom CSS to theme the Microsoft To-Do interface and adds platform-specific enhancements.