---
title: "Project structure"
description: "The files of a wervt app and what they do."
canonical_url: "https://wervt.app/getting-started/project-structure"
---
# Project structure

> The files of a wervt app and what they do.

```bash
my-app/
├── app.vue                     # the Vue app (or pages/, components/)
├── server/
│   ├── api/
│   │   ├── todos.post.ts       # API routes (nuxt/server)
│   │   ├── todos/[id].patch.ts
│   │   └── shapes/todos.get.ts # live data routes (proxyShape)
│   └── db/schema.ts            # Drizzle schema
├── drizzle/                    # generated migrations, commit them
├── drizzle.config.ts
├── nuxt.config.ts              # modules: ['@wervt/nuxt']
├── AGENTS.md                   # instructions for coding agents
└── vite.config.ts              # Vite+ (format, lint, type check)
```

## `nuxt.config.ts`

```ts
export default defineNuxtConfig({
  modules: ['@wervt/nuxt'],
  compatibilityDate: '2026-10-01',
})
```

The module sets the Deno build preset, adds the Node globals the isolate lacks, auto-imports
`useShape` and wires up local development. There is nothing else to configure.

## `AGENTS.md`

Every app ships instructions for coding agents: which APIs to use, how migrations and live data
work, and what doesn't run in an isolate. `CLAUDE.md` points to it. The same content is available as
an [agent skill](https://wervt.app/guides/agents).


## Sitemap

See the full [sitemap](https://wervt.app/sitemap.md) for all pages.
