1. Backend
  2. .NET

Before I built SaasFrontends, I built netcoresaas.com, a SaaS backend boilerplate with a Vue2 frontend app.

With SaasFrontends you can also pick Vue3, React and Svelte and use this same backend.

Clean Architecture

  • "Layers": Domain, Application, Infrastructure, WebApi, IntegrationTests, UnitTests
  • Repositories: Every entity has its own repository interface and implementation
  • Unit of Work: You can control if an entity belongs to a tenant or in the master database

Unit and Integration Tests

Almost every controller method has its own integration test.

  • +130 Tests: Tests for Authentication, Users, Tenants, Subscriptions, Transactions...
  • Stripe customers: Include your 'testing' keys, and each test will create new stripe customers
  • Stripe products/subscriptions: Test how your subscription mechanism will work against a real world API

Multi-organization/workspace

Each user can create its own organizations (tenants) and each organization has its own workspaces.

  • Owner: The owner of the organization can update general settings
  • Admin: Can manage members and update subscription
  • Member: You decide!

Multi-tenancy

Decide if you want only one database or one database per tenant.

  • Standalone App: You only have one database, and a tenant column of your core models
  • Database per Tenant: Each tenant will have its own database for data isolation

Multi-database

  • PostgreSQL
  • MySQL

Stripe

  • Stripe Customers
  • Stripe Subscriptions

Emails

  • Postmark Emails

ORM

  • Entity Framework