What is your developer-dependent CMS actually costing you? Calculate your costs and get a full report
What is your developer-dependent CMS actually costing you? Calculate your costs and get a full report
Introduction
Why Agility recommends Next.js and ASP.NET Core (.NET) for new projects, the benefits and trade-offs of each, and how to build with any other framework.
Agility CMS is headless, so your front end can be built with almost anything that can make an HTTP request. For new projects, though, we recommend one of two stacks: Next.js or ASP.NET Core (.NET). This article explains why, what each one is good at, where each one is weaker, and what to do if your team prefers something else.
We used to publish starters and guides for many frameworks. Over time most of them fell behind their framework's current major release. A starter that targets an out-of-support version is worse than no starter: it ships known security issues, its guides stop matching what developers see, and AI coding tools learn from the outdated code.
The honest reason for focusing is capacity. We can keep two starters current and secure. We can't do that for ten. Concentrating on two stacks lets us promise:
AGENTS.md conventions written for these stacks, the MCP server lets AI coding tools work with your Agility instance directly, and the Knowledgebase MCP server points them at current docs. An AI coding tool working in a maintained starter has accurate instructions and current examples to follow.This is not a judgment on other frameworks. Many of them are excellent, and plenty of Agility customers run production sites on them.
Next.js is a React framework, and it's the stack our own docs site is built with. The official starter uses the App Router, React Server Components, and our @agility/nextjs and @agility/content-fetch SDKs.
Performance and caching. The starter tags every content fetch with a cache tag. When an editor publishes, Agility calls the starter's revalidation webhook, and only the pages that use that content are refreshed. Pages stay statically fast without waiting for a full rebuild or a timed cache expiry. See Caching with Next.js and Agility.
Server components. Content is fetched on the server, close to the data, and your API keys never reach the browser. Components ship only the JavaScript they need to be interactive.
Preview and Web Studio. The starter is wired for preview mode and for in-context editing in Web Studio, so editors can click into a page and edit what they see. See Preview URL Lifecycle and Previewing in Web Studio.
Ecosystem. React and Next.js have a very large community, component library and hiring pool, and most AI coding tools are especially familiar with them.
Hosting options. Next.js is not tied to one host. You can deploy to Vercel, Netlify or Azure, run it as a self-hosted Node.js server, or package it in a container. Use a current Node.js LTS release (Node 24 is the active LTS today).
To get started, see Next.js and Agility CMS and Using the Next.js Starter.
ASP.NET Core is Microsoft's cross-platform web framework. The official .NET starter includes both ASP.NET Core MVC and Blazor versions, targets .NET 10 (LTS), and uses the Agility.NET.FetchAPI package to read content. For writing content, models and pages from code, the .NET Management SDK (version 2.0) is stable on .NET 10.
Enterprise and Microsoft shops. If your team already builds, secures and operates .NET applications, an Agility site fits into the same tooling, code review, CI/CD and security processes you use today. There's no second runtime to learn or govern.
Azure. .NET apps deploy naturally to Azure App Service and other Azure services, alongside the identity, monitoring and networking you already run there. See Deploy to Azure.
Strong typing. C# models for your content give you compile-time checks and editor tooling across the whole project, which helps on large teams and long-lived sites.
Predictable support. Microsoft publishes a regular release cadence with designated long-term-support (LTS) versions. Building on an LTS release gives you a known support window to plan upgrades around.
MVC or Blazor. Use MVC for classic server-rendered pages, or Blazor if your team prefers a component model in C#.
To get started, see Getting Started with .NET.
| If this describes you | We suggest |
|---|---|
| Your team writes JavaScript or TypeScript and React | Next.js |
| You want in-context editing in Web Studio with the least setup | Next.js |
| You want to host on Vercel or Netlify | Next.js |
| Your organization standardizes on Microsoft and C# | .NET |
| You deploy to Azure App Service and use Azure identity and monitoring | .NET (Next.js also runs on Azure) |
| You need long, predictable support windows for compliance or procurement | .NET |
| You want a component-based UI but in C# | .NET with Blazor |
| You're building a marketing site and want the largest pool of examples and AI tooling | Next.js |
Both are good choices. The best choice is usually the one your team can maintain confidently for years.
No stack is perfect. Here is the devil's-advocate view of each.
Next.js
.NET
You can. Agility is API-first, and everything you need is available to any stack:
If you build with an AI coding tool, the Vibe Coding with Agility section shows how to go from a use-case brief to a working, editable site on the framework of your choice, using the MCP server to create the content model as you go.
Our older framework guides remain online. The Angular, Astro, Eleventy and SvelteKit guides are archived, which means they carry a notice that they're no longer maintained, but every URL still works. The Nuxt guides are marked as outdated. These guides can still help with patterns, but check versions carefully before you build on their starters.
We'd like to hear what you're building with. If there's a framework you'd like us to support, or if you're running Agility on a stack that isn't covered here, tell us what you're using and what you'd need from us.
Email support@agilitycms.com with the subject "Framework request". Requests like yours help us decide where to invest next.