A cross-platform task management application built on the Getting Things Done productivity methodology, with both a web interface and a native Windows desktop client powered by a shared .NET 8 backend. The GTD domain model organizes tasks along two independent axes — projects group related work, contexts group tasks by the conditions needed to complete them — with each view maintaining its own drag-and-drop sort order. Both clients stay synchronized through bi-directional background polling and manual sync triggers, reconciling task state across platforms. Released as a production application with a live web deployment and downloadable desktop installer.
[key features]
Users organize tasks following GTD methodology across web and desktop interfaces, with task assignments, ordering, and completions syncing automatically between platforms.
- GTD-inspired views — Inbox, Today, Projects, Contexts, and Completed — with per-view drag-and-drop ordering
- Bi-directional data synchronization between web and desktop clients via background polling and manual trigger
- Task lifecycle management with user-configurable intervals for automatic clean-up and eventual deletion
- JWT authentication with transactional email for address confirmation, password reset, and account management
- Cross-platform deployment: live Blazor web app and downloadable native Windows desktop client
[implementation details]
Cross-Platform Architecture
- Blazor Web Assembly frontend with MudBlazor component library for a responsive Material Design interface
- WPF desktop client following MVVM with Caliburn Micro for convention-based view binding and screen lifecycle management
- .NET 8 backend API with SQL Server and Entity Framework, serving both clients through a shared REST surface
Synchronization
- Background periodic sync with manual trigger option, reconciling task state across web and desktop clients
- View-relative ordering: every view maintains its own independent sort indices, synced alongside but separately from task data
Identity & Lifecycle
- ASP.NET Identity integration with JWT tokens, transactional email for address confirmation, and self-service account management (username, email, and password changes)
- Configurable task lifecycle: completed tasks remain visible in their source view for a user-defined interval before automatic cleanup to Completed, with a separate deletion interval — both exposed as user settings

