avedon

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.