Analog: a Vite and Nitro meta-framework for Angular applications
The fullstack meta-framework for Angular. Powered by Vite and Nitro.
At a glance
- What is it?
- Analog brings file-based routing, server routes and hybrid SSR/SSG to Angular on top of Vite and Nitro. The README describes the feature set; the docs at analogjs.org carry the detail, and the repository is still moving.
- Who is it for?
- Analog fits Angular teams who want file-based routes, server routes and SSR without assembling a build pipeline by hand, and who are comfortable reading analogjs.org because the README itself stops at scaffolding. Teams on Angular versions outside the range in the repository's package.json should check the docs before committing, and anyone whose deployment target is not covered by Nitro should confirm that first.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Analog adds to a plain Angular application
Angular ships a component model, a router and a CLI. It does not ship a convention for where a page lives on disk, how a server endpoint is declared, or how a request is rendered on the server before it reaches the browser. Analog supplies those conventions. The README describes it as "the meta-framework for building applications and websites with Angular" and places it alongside Next.JS, Nuxt, SvelteKit and Qwik City, which is a fair description of the category: the framework sits above the UI library and owns routing, rendering and deployment.
The audience is therefore narrower than "Angular developers". It is Angular developers who have decided their application needs server rendering, static generation, or an API surface that lives in the same repository as the front end, and who would rather adopt a convention than wire Vite plugins and a Node server together themselves. A team building an internal dashboard behind a login gains little from server rendering. A team building a marketing site, a content site or an application where first paint and indexability matter gains a great deal.
File-based routing, server routes and the Vite and Nitro split
The feature list in the README is the clearest statement of the architecture: Vite powers the build and development server, Nitro powers "server and deployment integrations", and on top of those sit file-based routing, server-side data fetching, markdown content routes, integrated API/server routes and hybrid SSR/SSG.
The practical consequence of the Vite and Nitro split is that the two halves of an Analog application have different deployment stories. The client half is a Vite build, so it behaves like any other Vite project, with the plugin ecosystem that implies. The server half is a Nitro build, which means the output is a server bundle that Nitro can target at different runtimes rather than a fixed Node process. That is the same arrangement Nuxt uses, and it is why the README can list deployment integrations as a feature rather than a set of instructions.
File-based routing is the part that changes daily work most. Instead of maintaining a route array that has to stay in sync with a folder of components, the folder structure is the route table. Server routes are declared the same way, in the same tree, which is what "integrated API/server routes" means: a request handler is a file next to the page that calls it, not a separate service with its own build. Markdown files can serve as content routes, so a documentation or blog section does not need a CMS or a hand-written parser.
Hybrid SSR/SSG is worth reading carefully. The README presents it as a single feature, but it is really a per-route decision: some routes are rendered on each request, others are rendered once at build time. Which routes fall into which bucket is a configuration question the README does not answer, and the docs are where that belongs.
Scaffolding an Analog project and starting the dev server
The README gives one install path per package manager and nothing else. The npm form is the one most readers will run. It is an interactive scaffolder: the README says to "follow the prompts to scaffold the project and start the development server", so expect questions about the project name and setup before anything is written to disk.
npm create analog@latestThe pnpm, Bun and Yarn equivalents are listed in the README and differ only in the create command. Note that Yarn drops the `@latest` suffix.
pnpm create analog@latest
bun create analog@latest
yarn create analogOnce the prompts finish, the repository's own scripts show the shape of a generated workspace: `nx serve` is wired to `dev` and `start`, and `nx run-many --target build --all` is wired to `build`. Those scripts come from the Analog monorepo's own package.json, not from a scaffolded application, so treat them as a description of how the project is developed rather than a contract for your project.
npm run dev
npm run buildThe repository declares its toolchain expectations explicitly. The `engines` field requires Node `^22.22.3 || ^24.15.0 || ^26.0.0` and pnpm `^11.0.0`, and a `preinstall` script runs `npx only-allow pnpm`. That last one is a contributor guard on the Analog repository itself. It tells you the project is developed with pnpm, and it is also a warning: if you clone the repository rather than scaffolding an application, npm and Yarn installs will be rejected before they start.
Where Analog is the wrong choice
The README is a landing page, not a manual. It names nine features in a bullet list and then sends you to analogjs.org for everything else. There is no route convention table, no example of a server route file, no explanation of how data fetching is wired into a component, and no deployment guide. If your evaluation depends on reading a single document end to end, Analog will not satisfy it. That is a documentation trade-off, not a defect, but it shifts real work onto the reader.
Version compatibility is the sharper constraint. The repository's package.json pins Angular packages at `^22.1.5` and requires Node 22.22.3 or newer, or Node 24, or Node 26. A team on an older Angular release, or on a Node version that predates the 22.22 line, cannot assume the current beta tracks their setup. The README says nothing about supported Angular versions, so the version range in the repository is the only signal available here, and it describes the framework's own development environment rather than a published support matrix.
The default branch is `beta`, and the most recent releases are v2.7.1 alongside v2.7.1-beta.2 and v2.7.1-beta.3. The last push was on 2026-08-26. Development is clearly ongoing, but the branch name and the release pattern are worth noticing: if you need a stable line with a long support window, you are adopting something that publishes betas frequently. Finally, if your application is a client-rendered SPA with no SEO requirement and no server-side data needs, the meta-framework layer is overhead. Angular's own router and CLI already cover that case.
Analog compared with Next.js and Nuxt
The README names Next.js, Nuxt, SvelteKit and Qwik City as the comparison set, and the honest difference is the UI layer underneath. Next.js is built around React, Nuxt around Vue, SvelteKit around Svelte, Qwik City around Qwik. Analog is built around Angular, and that is the entire reason it exists. If your team already writes Angular components, dependency injection and RxJS, the alternatives require replacing the application, not just the routing layer.
The mechanism differs in one further respect. Next.js and Nuxt each ship their own build and server stack, whereas Analog is explicit that it is "powered by Vite" and that server and deployment integrations come from Nitro. Those are third-party projects with their own release cycles. That is a genuine advantage when you want Vite plugins you already use, and a genuine coupling when Vite or Nitro makes a breaking change. Nuxt made the same bet on Nitro, so the trade-off is well understood in the ecosystem, but it is still a bet.
Against Angular's own tooling, the difference is convention. The Angular CLI gives you a build and a router; you decide where pages live and how the server is assembled. Analog decides those things for you and adds SSG and server routes on top. Choosing between them is choosing between flexibility and a smaller set of decisions.
Licence, maintenance and what an upgrade costs
Analog is MIT licensed, and the repository's package.json carries `"license": "MIT"`. MIT permits commercial use, modification and redistribution provided the copyright notice and permission notice are retained. That is a permissive arrangement with no copyleft obligation on your own code, but it says nothing about the licences of the Vite, Nitro and Angular packages you will actually ship. Those need checking separately, and this is not legal advice.
The maintenance picture from the repository is active: the last push was on 2026-08-26, the same day as the v2.7.1 release, with v2.7.1-beta.2 and v2.7.1-beta.3 landing earlier in the same month. The repository is not archived. A project releasing a patch and two betas inside nine days is moving quickly, and that cuts both ways: fixes arrive fast, and so do changes you have to absorb.
Upgrade cost is the part the README does not address. It documents no migration guide, no deprecation policy and no rollback procedure. The repository does keep a CHANGELOG.md and uses conventional commits, with a `changelog` script that runs conventional-changelog, so a release-by-release diff is available even without a migration document. The dependency versions in package.json are the other thing to watch: Angular at `^22.1.5` and a Node floor of 22.22.3 mean an Analog upgrade can pull an Angular upgrade behind it. Pin your Angular version deliberately rather than letting the range float.
Editorial conclusion
Analog fits Angular teams who want file-based routes, server routes and SSR without assembling a build pipeline by hand, and who are comfortable reading analogjs.org because the README itself stops at scaffolding. Teams on Angular versions outside the range in the repository's package.json should check the docs before committing, and anyone whose deployment target is not covered by Nitro should confirm that first.
Frequently asked questions
What is Analog, the Angular meta-framework?
Analog is a meta-framework for building applications and websites with Angular, powered by Vite with server and deployment integrations from Nitro. The README places it in the same category as Next.js, Nuxt, SvelteKit and Qwik City.
How do I install Analog?
The README gives one command per package manager, starting with npm create analog@latest. It then says to follow the prompts to scaffold the project and start the development server.
Does Analog support server-side rendering and static generation?
Yes. The README lists hybrid SSR/SSG support, server-side data fetching, integrated API/server routes and markdown content routes among the features. Which routes render per request and which are generated at build time is not covered in the README.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/analogjs-analog)