C#.NET 8SQL ServerBlazor Web AssemblyMudBlazorWPFCaliburn Micro

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