Docs
Getting started
-
Introduction
avedon is a TypeScript-first full-stack web framework for building apps with colocated UI, styles, and server logic.
-
Quick start
Create a new avedon app, run it locally, and produce a production build.
-
Project structure
After pnpm create avedon-app, your app looks like this:
-
CLI
The avedon package provides the commands you use inside an app. Scaffolding is also available as create-avedon-app.
Tutorial
-
Tutorial
Build a small notes-style page: a list route with server load, a detail route with a param, and a form action that increments a counter. Start from a scaffol…
Concepts
-
Components
A .ave file is a page or layout unit: markup, styles, client logic, and optional server logic live together. The compiler splits client and server so server …
-
Routing
avedon uses explicit route tables. There is no file-based route discovery: you declare paths in src/routes.ts with defineRoutes.
-
Loading data
Server code in a .ave file provides data for the page, handles form posts, and can expose JSON APIs — all colocated with the UI.
-
Rendering
Each route selects how HTML is produced via the render field on defineRoutes.
-
Reactivity
Client interactivity in avedon uses @avedon/runtime: signal, computed, and effect.
Guides
-
Middleware
Route-agnostic request middleware runs before route matching and guards. Use it for logging, CORS, and rate limiting.
-
Session and cookies
avedon provides cookie helpers on every server LoadEvent and optional sealed session cookies (Web Crypto AES-GCM).
-
Security
Practical notes for keeping avedon apps safe.
-
Configuration
App-level configuration lives in avedon.config.ts at the project root (created by the scaffold).
-
Deployment
Production today targets Node via @avedon/adapter-node.