How to choose a .NET SaaS template
A .NET SaaS template comparison of AppointMe, FullStackHero, ABP and the Clean Architecture template, by tenancy model, auth, frontend, licensing, deploy, docs and maintainers.
- Compared
- AppointMe, FullStackHero, ABP, Clean Architecture
- Decide first
- Tenancy model, auth model, license
- Common ground
- .NET 10 and EF Core 10
- Prices
- Linked, not quoted; they change
Pick by situation
Section titled “Pick by situation”Start from what you’re building; each option is the right answer for a different team.
| Your situation | A good pick | Why |
|---|---|---|
| B2B SaaS where staff work for several companies, on Azure and SQL Server | AppointMe | Per-request company switching, Keycloak and Entra External ID auth, Bicep deploy |
| You want auditing, files, webhooks and chat already built, on PostgreSQL | FullStackHero | 10 modules and 1,600+ backend tests, MIT |
| You want vendor support, editions, a CRUD generator, or Angular or Blazor UIs | ABP | Free Angular and Blazor UIs. Volosoft support, the SaaS module and ABP Suite need a commercial license. |
| One application with no tenants, or you’re learning Clean Architecture | Clean Architecture template | Four layer projects, a Todo sample, few moving parts |
| Some tenants need their own database from day one | FullStackHero or ABP | Per-tenant connection strings. ABP’s management UI is in its PRO SaaS module. |
| Subscription payments must work at launch | ASP.NET Zero, or ABP’s PRO Payment module | AppointMe’s Stripe billing is planned for PRO, not released |
| A Blazor team | ABP or BlazorPlate | Both ship Blazor UIs |
What to evaluate
Section titled “What to evaluate”Seven questions separate these templates; ask them before you look at feature lists.
| Check | Ask | How the four differ |
|---|---|---|
| Multi-tenancy model | Shared database or one per tenant? Can one user belong to several tenants? Does the tenant reach raw SQL, jobs and messages? | AppointMe: shared database, users in many companies. FullStackHero and ABP: shared or per-tenant databases. CA: no tenancy. |
| Auth | Does the app issue its own tokens, or delegate to an OIDC provider? Where do two-factor and password reset live? | FullStackHero and CA use ASP.NET Core Identity in the app; ABP adds an OpenIddict server. AppointMe delegates to Keycloak or Entra External ID. |
| Frontend | Which framework, and is the API client generated or hand-written? | AppointMe: React, orval client. FullStackHero: two React apps, hand-written client. ABP: MVC, Angular, Blazor; React for license holders. CA: Angular or React, NSwag client. |
| Licensing | Is everything you need under the open-source license, including dependencies? | AppointMe and FullStackHero: MIT. ABP: LGPL-3.0 core with commercial modules. CA: MIT, but its MediatR and AutoMapper versions are dual-licensed. |
| Deploy | Is there infrastructure as code for your cloud? | AppointMe: Azure Bicep. FullStackHero: Terraform for AWS and Docker Compose. CA: azd up to Azure. ABP: general guidance. |
| Docs | Do the docs explain why, not only what? Do they match the code you cloned? | ABP: versioned docs. FullStackHero: 93 pages. CA: about 20 pages and ADRs. AppointMe: about 50 pages. |
| Maintenance and bus factor | Who maintains it, how many people, for how long, and can you pay for support? | ABP: a company team since 2016. FullStackHero: a lead maintainer and more than 50 contributors since 2021. CA: Jason Taylor since 2019. AppointMe: one main maintainer since June 2026. |
Why compare the tenancy model first?2 min · optional
The tenancy model is the hardest choice to change later. A shared database with a tenant column shapes every query, index, migration and background job. Database-per-tenant shapes provisioning, connection handling and how you run migrations across tenants.
Auth is second. Moving users from an in-app ASP.NET Core Identity store to an external OIDC provider, or back, means migrating accounts and passwords. Frontend and deploy choices are easier to change once the backend is stable.
The options
Section titled “The options”Four open-source starting points, plus a couple of commercial ones, cover most .NET SaaS projects.
AppointMe
Section titled “AppointMe”An MIT modular monolith on .NET 10 and React 19, with shared-database tenancy, OIDC auth (Keycloak locally, Entra External ID on Azure), Wolverine messaging and Dapper reads. It’s young (public since June 2026) with one main maintainer, and it has a live demo. A PRO add-on with Stripe billing, notifications, Terraform for Azure and AWS, and CI/CD templates is planned.
FullStackHero
Section titled “FullStackHero”An MIT .NET 10 modular monolith with ten modules, two React 19 apps, Finbuckle tenancy and an AWS Terraform deploy. It has the broadest free feature set of the three MIT options and a large test suite. See AppointMe vs FullStackHero.
An application framework from Volosoft: an LGPL-3.0 core with free modules, plus commercial licenses for PRO modules, themes, templates, ABP Suite and support. It’s the most complete and the most opinionated option. See AppointMe vs ABP.
Clean Architecture template
Section titled “Clean Architecture template”Jason Taylor’s MIT solution template: one application in four layers, with Angular or React and a choice of three databases. It isn’t a SaaS foundation: there’s no tenancy, and you’d add permissions and messaging yourself. See AppointMe vs Clean Architecture.
Others worth a look
Section titled “Others worth a look”ASP.NET Zero is a commercial starter from the team behind ABP, with multi-tenancy, Stripe and PayPal subscriptions, and Angular, React or MVC UIs. BlazorPlate, from Binary Plates, is a multi-tenant SaaS template with a Blazor WebAssembly UI. Check its site for license terms.
Licensing, without the prices
Section titled “Licensing, without the prices”Prices change, so this table describes each licensing model and links to the vendor’s own page.
| Option | License | What costs money | Pricing |
|---|---|---|---|
| AppointMe | MIT | A PRO add-on, planned, sold as a one-time purchase | appointme.dev/#pricing |
| FullStackHero | MIT | Nothing. It takes sponsorship through Open Collective. | opencollective.com/fullstackhero |
| ABP | LGPL-3.0 framework | Perpetual, per-developer licenses for PRO modules, themes, templates, ABP Suite and support | abp.io/pricing |
| Clean Architecture | MIT | Nothing for the template. MediatR 14 and AutoMapper 16 are RPL-1.5 or commercial, with a free Community license for eligible organizations. | mediatr.io |
| ASP.NET Zero | Commercial | Perpetual license with full source and a year of updates | aspnetzero.com/pricing |
Sources
Section titled “Sources”Competitor facts come from each project’s own repository, docs and pricing pages, accessed Nov 2026; the detail pages list them in full.
| Source | Used for |
|---|---|
| fullstackhero/dotnet-starter-kit and fullstackhero.net | Modules, stack, tests, docs, funding |
| abpframework/abp, abp.io/pricing, abp.io/faq and the Payment module | License, tiers, modules, UI options, Stripe subscriptions |
| jasontaylordev/CleanArchitecture and its docs | Options, stack, deploy |
| mediatr.io | MediatR and AutoMapper licensing |
| aspnetzero.com and aspnetzero.com/pricing | Features and license model |
| Introducing BlazorPlate, by a Binary Plates co-founder | Positioning only: multi-tenant, Blazor WebAssembly. blazorplate.net blocks automated access, so its license terms weren’t checked. |
AppointMe facts are from bravodev-hub/appointme at commit 2ccbe87.