Features
A clean-architecture .NET 10 API, an Angular 22 web app and an optional .NET MAUI mobile app, generated with dotnet new. Optional parts are switched on with template options or feature flags.
Authentication and access
- Email and password sign-in, refresh tokens in HttpOnly cookies
- Two-factor authentication (authenticator app, email or SMS codes)
- External sign-in providers
- Roles and fine-grained permissions, enforced on the server
- API keys, login history and active sessions
Admin and operations
- Angular admin area: users, roles, settings, feature flags
- Audit log of changes, with export
- Health checks, rate limiting, security headers
- Structured logging (Serilog) and OpenTelemetry
- Localization of the UI and messages
SaaS building blocks
- Multi-tenancy: tenant isolation in the data layer, shared or dedicated databases
- Stripe billing: plans, Checkout, subscriptions, invoices, signed webhooks
- Email through SMTP or SendGrid, with templates
- File storage on disk, Azure Blob Storage or S3
- Real-time notifications and chat with SignalR
Developer experience
- .NET Aspire app host: one command starts the API, client and databases
- PostgreSQL with EF Core migrations
- Background jobs (Hangfire), caching (Redis), messaging (RabbitMQ), all optional
- Optional gRPC and GraphQL APIs
- Unit tests, Docker images and GitHub Actions workflows
- Landing pages prerendered to static HTML for search engines
Template options
| Option | What it does | Default |
|---|---|---|
| --multitenancy | Tenants with isolated data | true |
| --billing | Stripe billing | false |
| --mobile | .NET MAUI mobile app | false |
| --database | Database provider (PostgreSQL) | postgres |
| --licenseKey | Writes your licence key into the app | (none) |