Configuration

Vuesion builds on the configuration mechanisms provided by Nuxt, Prisma, and the surrounding tooling.

Rather than introducing another custom configuration layer, Vuesion follows the conventions of the technologies it is built on.

This makes the project immediately familiar to developers already working with the Nuxt ecosystem while keeping configuration predictable.

Configuration layers

Configuration is typically divided into three categories:

Text
Environment
     │
     ▼
 Framework
     │
     ▼
  Project

Each layer has a different responsibility.

  • Environment variables contain secrets and deployment-specific values.
  • Framework configuration customizes Nuxt and its modules.
  • Project configuration controls the development tooling used throughout the repository.

Environment variables

Environment variables configure values that differ between environments or contain sensitive information.

Typical examples include:

  • Database connections
  • Session secrets
  • API keys
  • OAuth credentials
  • Storage configuration
  • Branding information

Vuesion intentionally keeps these values outside the source code.

For example:

Environment
DATABASE_URL=...
NUXT_SESSION_PASSWORD=...
RESEND_API_KEY=...

Required and optional variables

Some environment variables are required for every installation.

Examples include:

  • DATABASE_URL
  • NUXT_SESSION_PASSWORD

Others only become necessary when a particular feature is enabled.

For example:

  • GitHub OAuth requires:
    • NUXT_OAUTH_GITHUB_CLIENT_ID
    • NUXT_OAUTH_GITHUB_CLIENT_SECRET
  • Email delivery requires:
    • RESEND_API_KEY
  • Supabase storage requires:
    • NUXT_SUPABASE_URL
    • NUXT_SUPABASE_SERVICE_ROLE_KEY
    • NUXT_SUPABASE_STORAGE_BUCKET
    • NUXT_PUBLIC_CDN_URL

This keeps local development lightweight while allowing production installations to enable additional services as needed.

Branding

Several environment variables customize the product branding without modifying the application itself.

Examples include:

  • Brand name
  • Brand URL
  • Logo URL
  • Default sender address

This allows the same application to be reused across different products while maintaining consistent branding.

Nuxt configuration

The central application configuration lives inside:

Text
nuxt.config.ts

This file configures:

  • Nuxt modules
  • Runtime configuration
  • Aliases
  • Auto imports
  • Build configuration
  • Internationalization
  • Routing
  • Application plugins

Whenever possible, Vuesion follows the standard Nuxt configuration patterns instead of introducing project-specific alternatives.

Runtime configuration

Values required by the browser are exposed through Nuxt's runtime configuration.

Server-only values remain private.

This separation prevents secrets from accidentally becoming available on the client while still allowing browser code to access public configuration when necessary.

Tool configuration

Most development tools manage their own configuration.

Examples include:

Text
eslint.config.ts
stylelint.config.mjs
vitest.config.mts
playwright.config.ts
prisma.config.ts
content.config.ts

Each tool follows its own standard configuration format.

Keeping configuration close to the corresponding tool makes updates easier and avoids introducing another abstraction layer.

Project conventions

Vuesion intentionally follows the conventions of the underlying ecosystem.

Instead of introducing custom configuration formats, the project uses the configuration mechanisms already established by:

  • Nuxt
  • Prisma
  • Vitest
  • Playwright
  • ESLint
  • Stylelint
  • Storybook

Developers familiar with these tools should therefore immediately recognize where configuration belongs.

Local development

A typical local setup requires only a small number of environment variables:

  • Database connection
  • Session password

Additional integrations such as email delivery, OAuth providers, or cloud storage can be configured when they become relevant for the project.

This keeps the first local setup straightforward while allowing production environments to enable additional capabilities.

Deployment

Vuesion does not prescribe a particular deployment platform.

Because it is built on Nuxt, it can be deployed anywhere supported by Nuxt.

Deployment strategies differ significantly between projects and are therefore intentionally left outside the scope of this documentation.

Refer to the official Nuxt deployment documentation for platform-specific guidance.

Why this approach?

Configuration should feel familiar.

Rather than introducing another layer of project-specific configuration, Vuesion builds upon the conventions already established by the tools it uses.

This provides:

  • Less project-specific knowledge
  • Easier onboarding
  • Predictable configuration
  • Simpler upgrades
  • Better compatibility with the surrounding ecosystem

The result is a project that feels like a well-organized Nuxt application rather than a framework built on top of Nuxt.

Next steps

Continue with Database to learn how Vuesion organizes its Prisma schema, migrations, and data model.