my-app/ Pick any file or folder on the left to see what it is, why it exists, when you add it and the mistakes people make with it. Switch the stage to watch the project grow.
Top level, at Growing .husky Git hooks managed by husky, created by npx husky init. .vscode Shared VS Code settings and recommended extensions. coverage Coverage reports written by vitest run --coverage. dist Production build output from vite build. e2e Playwright end-to-end tests, with their own tsconfig. node_modules Installed packages, created by npm install. public Files copied as-is to the site root. src All application code: plugins, router, layouts, features and shared pieces. .editorconfig Indentation, charset, line endings and a 100-character line length for editors. .env.example Lists the VITE_ variables the app needs, with placeholder values. Committed. .env.local Your local settings, such as the dev API URL. Ignored by the *.local rule. .gitattributes Normalises line endings to LF for text files. .gitignore Ignores node_modules, dist, coverage, *.local, .vscode except extensions.json, and Playwright output. .lintstagedrc.json Which commands lint-staged runs on staged files: Oxlint, ESLint fix, Prettier. .nvmrc Pins the Node.js version for nvm, fnm and CI. .oxlintrc.json Oxlint config. create-vue always adds Oxlint next to ESLint. .prettierrc.json Prettier settings: no semicolons, single quotes, 100-character lines. AGENTS.md Instructions for AI coding agents: layout, conventions and commands. CLAUDE.md One line, @AGENTS.md, so Claude Code reads the same rules. README.md Generated setup notes listing the scripts for your chosen features. commitlint.config.ts Enforces Conventional Commits (feat:, fix:, chore:) via the commit-msg hook. compose.yaml Starts the backend API and its database locally with docker compose up. env.d.ts Loads Vite client types so import.meta.env and asset imports are typed. eslint.config.ts ESLint flat config with Vue, TypeScript, Vitest, Playwright and Oxlint rules. index.html The single HTML page with the #app element. Vite uses it as the entry. package-lock.json Exact versions of every package, written by npm install. package.json Dependencies and scripts: dev, build, preview, test:unit, test:e2e, type-check, lint, format. playwright.config.ts Playwright settings: e2e folder, three browsers, base URL and the server to start. tsconfig.app.json TypeScript settings for src, with the @/* alias and noUncheckedIndexedAccess. tsconfig.json The root config that only references the node, app and vitest configs. tsconfig.node.json TypeScript settings for config files that run in Node: vite, vitest, playwright, eslint. tsconfig.vitest.json TypeScript settings for unit tests, with jsdom and Node types. vite.config.ts Vite config: the Vue plugin, Vue DevTools plugin and the @ alias to src. vitest.config.ts Vitest config merged from vite.config.ts, using jsdom and skipping the e2e folder.