Skip to main content
Joel MayJoel May

Mi Contpaqi — desktop hub for downloading and updating 20+ accounting products

EnterpriseFlutterDartSignalRC#
Central license lifecycle hub — download, update, renew across 20+ products

The Challenge

  • Melos monorepo: Coordinating 20 internal packages across Flutter desktop modules
  • Real-time license status: SignalR integration for live update and renewal license events
  • Windows-native UX: System tray (tray_manager), single-instance enforcement (windows_single_instance), window lifecycle management
  • Shared C# library: EF Core + SQL Server backing a .NET Standard 2.1 backbone used by multiple products

Solution Architecture

StatePackagesReal-timeInstallersFlutter Desktop AppBLoC + ProviderMelos MonorepoSignalR.NET Standard 2.1EF Core + SQL ServerAzure Blob Storage
System architecture diagram showing nodes and connections

Flutter Desktop

Windows-only Flutter app using webview_windows for embedded web content, system tray via tray_manager, and windows_single_instance for process enforcement.

State Management

flutter_bloc + Provider pattern for predictable state across license download, update, and renewal flows.

Monorepo

Melos monorepo with 20 internal Dart packages. Shared utilities, domain logic, and UI components coordinated via Melos commands.

Backend

Shared C#/.NET Standard 2.1 library (MiContpaqi_Lib) with EF Core 3.1, SQL Server, Azure Blob Storage for installers, and Application Insights for telemetry.

Results

20+

Products managed — license lifecycle

20

Melos internal packages in the monorepo

Real-time

License update status via SignalR

Mi Contpaqi — Desktop License Hub | Joel May