Installation
Create a new Avalon project and get up and running in minutes.
Requirements
- Bun 1.0 or later
- Node.js 18+ (if not using Bun)
Create a new project
The fastest way to get started is with the create avalon scaffolder:
bun create avalon my-app
This creates a new directory my-app/ with a minimal project structure.
Project setup
cd my-app
bun install
bun run dev
Your site is now running at http://localhost:3000.
Project structure
my-app/
├── src/
│ ├── islands/ # Interactive components (hydrated on client)
│ ├── layouts/ # Layout wrappers
│ └── pages/ # File-system routes
├── public/ # Static assets
├── routes/ # API routes
├── nitro.config.ts
└── vite.config.ts
Manual installation
If you prefer to set up manually, install the core package:
bun add @useavalon/avalon
bun add -d vite nitro
Then create a vite.config.ts:
import { defineConfig } from 'vite';
import { avalon } from '@useavalon/avalon/vite';
export default defineConfig(async () => {
const plugins = await avalon({
pagesDir: 'src/pages',
integrations: ['preact'],
});
return { plugins };
});