Skip to content
Ratesoft
Platform · Plinth

A multi-tenant SaaS framework for .NET 10.

Every SaaS product needs authentication, authorization, multi-tenancy, error handling, observability and security before it needs anything of its own. Plinth is the foundation we build our products on.

Access
Tenancy
Notifications
Forms
Localisation
Files
Settings
Audit

Plinth core

identity · tenancy · outbox/inbox · telemetry · security

PostgreSQL
Service Bus
OpenTelemetry
What is in it

The parts every SaaS product ends up needing.

Built properly once, so each new product starts from a secure, observable, tenant-aware base.

Identity without passwords

Sign-in through Microsoft Entra External ID using OpenID Connect. No passwords stored and no self-hosted token server to run.

Layered authorization

Permission policies, tenant membership and resource-level checks, plus field-level rules for sensitive personal data.

Multi-tenant isolation

Row-level isolation with defence in depth: a global query filter, a SaveChanges interceptor and architecture tests that fail the build on a leak.

Reliable messaging

Transactional outbox, inbox deduplication, order-independent handlers and versioned contracts.

Observability

OpenTelemetry logs, metrics and traces with the tenant on every span, and RFC 9457 problem details with stable error codes.

Security by default

Security headers, per-tenant and per-IP rate limiting, and allow-list redaction in the audit trail.

Ready-made modules

Users and roles, tenants and settings, notifications, forms, localisation, files and an audit trail, usable from day one.

Admin console and scaffolding

A React admin console, and a generator that creates new modules with every convention already applied.

One host, one database

Each product brings its own host and database and composes the framework modules it needs, keeping boundaries real.

Rules that are checked, not remembered

Module boundaries and tenancy rules are enforced by architecture tests that fail the build. Integration tests run against a real PostgreSQL and cover the cases that matter: cross-tenant reads, duplicate event delivery, permission policies, suspended tenants and rate limits.

.NET 10ASP.NET CorePostgreSQLAzure Service BusAzure Blob StorageOpenTelemetry.NET AspireReactTypeScript

Built on Plinth

Reliefwise

Our EIS and SEIS compliance platform runs on Plinth, with every accountancy practice kept strictly separate from the others.

Read about Reliefwise

Building a SaaS product on .NET?

We can help you design the foundations, or build the product itself.

Get in touch