AnalogJS — conventions for AI coding assistants
SkillFiles & storageGives your agent the conventions for writing code in an AnalogJS app, like file-based routes and server functions.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the AnalogJS — conventions for AI coding assistants skill
About this capability
Conventions for working in an AnalogJS app (an Angular meta-framework powered by Vite) — file-based routing with `.page.ts` files, `RouteMeta`, server and API routes on Nitro/h3, page load functions and server functions in `.server.ts` files, markdown content routes, and the modern Angular style Ana
What this skill tells your AI
The instructions your AI receives, as published by analogjs/analog in packages/platform/skills/analogjs/SKILL.md and read by ahel’s review.
This skill ships with @analogjs/platform and documents how to work in an AnalogJS app (an Angular meta-framework, powered by Vite). It mirrors the AGENTS.md published alongside it, so the guidance stays in sync with the installed version.
Commands
npm start/npm run dev— start the dev server (Vite)npm run build— production buildnpm test— run unit tests (Vitest)npm run preview— run the built server locally
Project structure
src/app/pages/— file-based routes (see Routing below)src/app/— components and app config (app.config.ts,app.config.server.ts)src/server/routes/— server and API routes (Nitro + h3)src/main.ts/src/main.server.ts— client and server bootstrapvite.config.ts— Vite + Analog plugin and Vitest config
Routing
Routes are file-based. A file in src/app/pages/ ending in .page.ts becomes a route, and it must export default a standalone Angular component.
index.page.ts→/about.page.ts→/aboutproducts/index.page.ts→/productsproducts/[productId].page.ts→/products/:productId(dynamic segment)(auth).page.ts+(auth)/*.page.ts→ pathless layout:(auth).page.tsrenders a<router-outlet />and wraps its child routes (e.g.(auth)/login.page.ts→/login,(auth)/signup.page.ts→/signup) without adding a path segment[...not-found].page.ts→ catch-all / 404
Read route params with inject(ActivatedRoute) from @angular/router.
Define per-route metadata (title, meta tags, guards, resolvers) by exporting a RouteMeta:
import { RouteMeta } from '@analogjs/router';
export const routeMeta: RouteMeta = {
title: 'Products',
};
Server & API routes
Server routes live in src/server/routes/ and use h3. API routes are conventionally under src/server/routes/api/.
import { defineEventHandler } from 'h3';
export default defineEventHandler(() => ({ message: 'Hello World' }));
Filenames encode the HTTP method and params: hello.get.ts, users.post.ts, users/[id].get.ts.
Data fetching
- Page load functions: add a sibling
.server.tsloadfunction and read its result in the page withinjectLoadfrom@analogjs/router. - Server functions: define functions in
.server.tsfiles and call them from the client withinjectServerFn.
Content routes
Markdown content is supported via @analogjs/content: injectContent / injectContentFiles to load content, and MarkdownComponent (analog-markdown) to render it. Content files live in src/content/.
Conventions
- Use modern Angular: standalone components,
inject(), signals, and the built-in control flow (@if,@for,@switch). - Page components are default-exported.
- Tests are colocated as
*.spec.tsand run under Vitest (jsdom environment). - Prefer existing Angular and Analog APIs over hand-rolled equivalents.
More
Full documentation: https://analogjs.org/docs LLM-friendly docs index: https://analogjs.org/llms.txt
Signals
- GitHub stars
- 3k
- Forks
- 333
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
analogjs- Source
- github.com/analogjs/analog