A modular monolith framework for .NET 10. Roslyn source generators discover your modules at build time. React 19 + Inertia.js frontend. Full-stack type safety.
A complete framework with compile-time safety, full-stack type generation, and batteries-included modules.
Roslyn source generators scan your modules at build time. Endpoints, DTOs, and menus are auto-registered with generated code you can inspect.
Build modern React frontends with server-driven navigation. Each module ships its own pages bundle, dynamically loaded by the host app via Blazor SSR.
Each module gets its own database schema, permissions, settings, and menu entries. Cross-module communication happens through contracts and events.
C# DTOs marked with [Dto] automatically generate TypeScript interfaces. Full IDE
autocomplete across the stack.
Scaffold projects, modules, and features with the
sm CLI. Built-in
doctor command validates your project structure and auto-fixes issues.
SQLite for development, PostgreSQL or SQL Server for production. Schema isolation per module with automatic table prefix management.
Define modules and endpoints with minimal boilerplate. The source generator handles the wiring.
// BlogModule.cs
[Module("Blog", RoutePrefix = "blog")]
public class BlogModule : IModule
{
public void ConfigureServices(
IServiceCollection services,
IConfiguration config)
{
services.AddDbContext<BlogDbContext>();
services.AddScoped<IBlogContracts,
BlogContracts>();
}
}
// Endpoints/Blog/Browse.cs
public class Browse : IViewEndpoint
{
public static void Map(IEndpointRouteBuilder app)
{
app.MapGet("/", async (
BlogDbContext db,
HttpContext http) =>
{
var posts = await db.Posts
.OrderByDescending(p => p.CreatedAt)
.ToListAsync();
return Inertia.Render(
"Blog/Browse",
new { Posts = posts });
});
}
}
// C# — BlogPost.cs
[Dto]
public class BlogPostDto
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public DateTime CreatedAt { get; set; }
}
// TypeScript — auto-generated
export interface BlogPostDto {
id: string;
title: string;
content: string;
createdAt: string;
}
Ship faster with 9 built-in modules covering authentication, administration, and common application concerns.
System administration and management panel
User management and profile handling
Role-based access control (RBAC)
Analytics and overview widgets
Activity tracking and audit trail
Runtime-configurable app settings
Local, Azure Blob, and S3 providers
OpenID Connect & OAuth 2.0
Dynamic page composition
A single deployable host discovers and wires modules at compile time.
Four commands to go from zero to a running modular monolith.
dotnet tool install -g SimpleModule.Cli
sm new project MyApp
cd MyApp && sm new module Blog
npm run dev
Start building your modular .NET application today. Open source, MIT licensed.