my-app/
├── app/ ← All routes live here
│ ├── globals.css ← Global styles (Tailwind @import)
│ ├── page.tsx ← Root route (/)
│ ├── about/
│ │ └── page.tsx ← /about
│ └── posts/
│ └── [slug]/
│ ├── page.tsx ← /posts/:slug (client component)
│ └── page.server.ts ← Server functions for this route
├── public/ ← Static assets (images, fonts, etc.)
├── package.json
└── tsconfig.jsonKey conventions
page.tsx— React page componentpage.server.ts— Server functions (defineServerFn) for the route[param]folders — Dynamic route segmentsglobals.css— Imported on every page via the virtual/@alabjs/clientmodule
Build output
.alabjs/
├── dist/
│ ├── client/ ← Vite-bundled client assets
│ └── server/ ← Compiled server code