About the App Project Structure

This article describes the structure of an app project that uses the Wix CLI for Apps. The project's main packages are @wix/cli and @wix/custom-extensions, described with the rest of its packages in package.json.

An app project centers on extensions and the extensions.ts file that registers them, together with backend endpoints and configuration. Unlike a headless project, it contains no frontend for a site of your own: every piece of UI belongs to an extension that renders inside Wix. Headless projects use a different structure, based on the Astro web framework, described in About the Headless Project Structure.

Project file structure

Copy

Note: The CLI creates some of these directories as you work. For example, dist/ and node_modules/ are created when you install dependencies or build and run your project.

Folders and files

Folder or fileWhat it's forDetails
.vscode/The Wix MCP configuration for VS Code, mcp.json, added only if you choose VS Code when the project creation command offers to configure Wix MCP.
.wix/Configuration and log files related to the Wix environment. This directory contains internal data. Don't edit it.
dist/Your project's production build output, created when you build the project.
node_modules/The npm dependencies installed for your project.
public/Static assets, served from your app's statics host and referenced with the {{BASE_URL}} placeholder, which resolves to that host at build time. Some extensions need an asset here, and wix app generate creates one: a site plugin gets a logo, and a custom element gets a preset thumbnail.
src/The source directory, with all the source code and core resources of your project.
src/api/Your backend HTTP endpoints, one route per file.src/api/
src/extensions/The default location for the extensions you generate, one folder per extension.src/extensions/
.env.localEnvironment variables for local development. The project creation command creates the file with your app's WIX_CLIENT variables, which the CLI manages, so don't edit them. wix app env pull adds the variables stored on Wix's servers. To set and use your own variables, see Manage Environment Variables in the CLI.
.gitignoreLists the paths Git excludes from version control.
.nvmrcThe version of Node.js the project uses, which Node Version Manager (NVM) reads when you run nvm use.
AGENTS.mdAn agent-instruction file that the CLI generates for your AI tools, along with others such as CLAUDE.md.
package.jsonYour project's dependencies and scripts.package.json
src/env.d.tsReferences the @wix/custom-extensions client types, which include the types for Vite-style asset imports. Without it, any file that imports a .module.css file or uses the ?url suffix stops typechecking.
src/extensions.tsRegisters all your project's extensions. It's the entry point the CLI reads to discover them.extensions.ts
tsconfig.jsonConfigures the TypeScript compiler, by extending @wix/custom-extensions/tsconfigs/base.
wix.config.mjsDefines the identifiers that connect your local code to your Wix app.wix.config.mjs

Last updated: 10 November 2026

Did this help?