.NET React Templates
Getting Started

Project and application tour

Find the code and screens that own each part of the licensing experience.

Projects

ProjectOwns
MyAppASP.NET Core host, Identity, migrations, background workers, health checks and security configuration
MyApp.ClientNext.js static site: storefront, customer account and Operations Center
MyApp.ServiceModelRequest/response DTOs and database records
MyApp.ServiceInterfaceSigning, checkout, fulfillment, refunds, transfers, notifications and GitHub downloads
MyApp.Licensing.NET verifier (LicenseJwt) and optional refresh client (ActivationClient)
MyApp.Licensing.JavaScriptDependency-free Node/Electron verifier (license.mjs)
MyApp.Licensing.CoreShared entitlement, short-key and JSON primitives
MyApp.Licensing.ToolES256 key-pair generation
MyApp.SampleAppAvalonia desktop sample and offline CLI
MyApp.TestsBackend regression tests, .NET-to-Node compatibility and live database tests

MyApp.Licensing and MyApp.Licensing.Core also contain signed-document and update-manifest code from an earlier design. The server no longer publishes update feeds, and the simple JWT flow does not use that code.

Application pages

URLPurpose
/pricingOffers, registered details and checkout agreement
/download, /changelogPublished GitHub releases, platform downloads and Markdown notes
/eula, /privacyCurrent license agreement and privacy page
/accountLicenses, renewals, delivery email and order history
/account/settingsTransfers, email preferences and personal data
/adminOperations Center (Admin role)
/admin-uiServiceStack system administration

The Operations Center has separate pages for pricing, releases, licenses, orders, license terms and settings.

Server endpoints

EndpointPurpose
/api/{RequestDto}Typed ServiceStack APIs
/stripe/webhookStripe event intake
/licensing/refreshOptional license refresh for desktop apps
/up, /readyLiveness and sales readiness

Change API contracts in C#, then regenerate TypeScript DTOs. The client is a static export, so don't add request-time Next.js handlers or Server Actions.

Next: issue your first license.