Aero.Cms.Web.Core
0.0.9.2-alpha
dotnet add package Aero.Cms.Web.Core --version 0.0.9.2-alpha
NuGet\Install-Package Aero.Cms.Web.Core -Version 0.0.9.2-alpha
<PackageReference Include="Aero.Cms.Web.Core" Version="0.0.9.2-alpha" />
<PackageVersion Include="Aero.Cms.Web.Core" Version="0.0.9.2-alpha" />
<PackageReference Include="Aero.Cms.Web.Core" />
paket add Aero.Cms.Web.Core --version 0.0.9.2-alpha
#r "nuget: Aero.Cms.Web.Core, 0.0.9.2-alpha"
#:package Aero.Cms.Web.Core@0.0.9.2-alpha
#addin nuget:?package=Aero.Cms.Web.Core&version=0.0.9.2-alpha&prerelease
#tool nuget:?package=Aero.Cms.Web.Core&version=0.0.9.2-alpha&prerelease
Aero CMS βοΈ
Modern CMS without React. or any other SPA framework you need to learn
A server-rendered, modular, multi-site CMS built on ASP.NET Coreβdesigned for developers who want power without complexity.
π₯π₯π₯ ALERT π₯π₯π₯
β οΈ Pre-Beta Software β Aero CMS is in early development and not production ready. Use at your own risk. We welcome contributors!
Why Another CMS?
We looked at the landscape and kept running into the same problems:
- Commercial lock-in β expensive licenses, closed ecosystems
- Too big β monolithic systems that take over your entire application
- Too bloated β legacy code, unnecessary abstractions, decade-old patterns
- Massive learning curves β you need to read a book before you can ship a page
We built Aero because there wasn't a CMS that felt like it was designed for modern .NET development. Something that:
- Leverages the power of ASP.NET Core without fighting it
- Lets you ship fast without painting yourself into a corner
- Is modular by default, not as an afterthought
Aero stays out of your way. It runs inside your ASP.NET Core app β the one you control. We don't force you into doing things our way for your application.
But when it comes to how Aero was designed architecturally, we're very opinionated: no reflection, source generators over runtime discovery, PostgreSQL for persistence, Railway-oriented programming for business logic, and clean patterns that are baked in at the foundation.
π§ Razor + Scriban = The Best of Both Worlds
Most CMS platforms force you to choose:
- Razor β powerful but rigid
- Scriban (Liquid) β dynamic, sandboxed, and Liquid-compatible with some minor tweaks
Aero CMS gives you both:
- Razor for layouts, modules, and developer-owned UI β strongly typed, compiled, fast
- Scriban for dynamic, runtime-editable templates β flexible, sandboxed, safe
Strong typing where it matters, flexibility where it counts.
π₯ Dynamic Templates (That Don't Feel Like a Hack)
In most systems, "dynamic pages" are bolted on as an afterthought. In Aero, it's a core design pillar:
- Edit pages at runtime β no deploy required
- Scripting via HTMX / Scriban
- Safeguards for scripting
- No JS allowed
- Scriban Scripting guard rails
Real CMS flexibilityβ compile time safety without the flexibiity of dynamic programming (scripting).
π§© True Modular Architecture
We didn't fake modularity. Features ship as Razor Class Libraries (RCLs):
- Plug-and-play capabilities
- Clean separation between domains
- Build only what you need
- Extend without breaking everything
Each module is self-contained, independently versioned, and composed into the application.
π Multi-Site by Design
Not "multi-site-ish." Actually multi-site:
- Host-based site resolution
- site-specific database isolation
- Per-site themes, templates, and content
One platform β many sites β many customers.
β‘ HTMX + Alpine = Modern UX, Minimal JS
Instead of forcing a SPA framework:
- HTMX drives server-interactions β dynamic content without writing JavaScript
- Alpine.js adds lightweight client-side reactivity where you need it
No SPA required. No over-engineering. Just fast, responsive UI backed by server-rendered HTML.
π Safe by Default
Scriban templates run in a sandboxed execution environment:
- No arbitrary C# in templates
- Controlled extensibility via exposed C# functions
- Secure by design, not as an afterthought
Powerful templates with complete control over what runs where.
π§ Not Stuck in the Past
We designed Aero for the present and future of .NET:
- Built on modern ASP.NET Core patterns (minimal APIs, middleware, dependency injection)
- Designed for cloud, containers, and scale
- Clean architecture with vertical slices
- Event-driven ready with Wolverine + MartenDB
- OpenTelemetry observability out of the box
No legacy baggage. No unnecessary complexity. No decade-old hacks.
π‘ What Makes Aero Stand Out
| Capability | Aero CMS |
|---|---|
| βοΈ Razor + Scriban hybrid rendering | First-class support |
| π§© True modular system | RCL-based modules, not plugins |
| π First-class multi-tenancy | Host-based, per-site isolation |
| β‘ HTMX + Alpine interactivity | Server-driven UI, minimal JS |
| π Safe runtime templates | Sandboxed Scriban execution |
| π§ Modern .NET patterns | Clean architecture, vertical slices |
π The Vision
We're building a CMS that feels like:
"What ASP.NET Core would look like if it had a CMS built in from day one."
No hacks. No relics. No compromises.
Just a clean, modern platform you actually enjoy working with.
Tech Stack
| Layer | Technology |
|---|---|
| Backend | ASP.NET Core (.NET 10) |
| Service Layer | Orleans |
| Persistence | MartenDB + PostgreSQL |
| Messaging / Workflow | Wolverine |
| Background Jobs | TickerQ |
| ORM | Entity Framework Core (Npgsql) |
| Server UI | HTMX.NET, Razor, Scriban |
| Client UI | HTMX, Alpine.js, Preact (opt-in) |
| CSS | Tailwind CSS |
| Validation | FluentValidation |
| Telemetry | OpenTelemetry + Serilog + OpenObserve |
| Testing | TUnit, Playwright, Alba, Bogus, Shouldly |
Getting Started
Coming soon β the project is in active development.
License
This project is dual-licensed:
| Use Case | License |
|---|---|
| Non-commercial / OSS | Apache License 2.0 |
| Commercial / SaaS | GNU AGPL v3 |
In short: if you're building and selling a product or service on top of Aero, the AGPL applies to ensure community contributions remain protected. If you're using it for non-commercial purposes, the standard Apache 2.0 terms apply.
See the LICENSE file for the full text of both licenses.
π Important Notes
- NOTICE file β Aero includes a NOTICE file as required by the Apache 2.0 license. Redistributions must preserve this notice.
- Trademark β Aero is a trademark. The Apache 2.0 license grants you the right to use the code but does not permit using the project name to market competing services without permission.
- CLA β All contributors must sign a Contributor License Agreement before contributions are accepted. This ensures we can continue to offer both the open-source and commercial versions of the project.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Aero.Cms.Core (>= 0.0.9.2-alpha)
- Aero.Cms.Modules.Modules (>= 0.0.9.2-alpha)
- Aero.Cms.Shared (>= 0.0.9.2-alpha)
- Aero.Core (>= 0.0.9.1-alpha)
- Aero.EfCore (>= 0.0.9.1-alpha)
- Aero.Models (>= 0.0.9.1-alpha)
- Aero.Modular (>= 0.0.9.1-alpha)
- Aero.Services (>= 0.0.9.1-alpha)
- Aero.Web (>= 0.0.9.1-alpha)
- AeroDB (>= 0.0.8.1-alpha)
- Scrutor.AspNetCore (>= 3.3.0)
- Serilog.Extensions.Logging (>= 10.0.0)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Aero.Cms.Web.Core:
| Package | Downloads |
|---|---|
|
Aero.Cms.CookiePolicy
Package Description |
|
|
Aero.Cms.Modules.Abstraction
Package Description |
|
|
Aero.Cms.Modules.Meta
Meta-package that installs all Aero CMS modules in one reference. |
|
|
Aero.Cms.AspNetCore
Package-first ASP.NET Core integration facade for adding Aero CMS to new or existing web applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.0.9.2-alpha | 113 | 7/10/2026 |
| 0.0.9.1-alpha | 60 | 7/9/2026 |