# App Configuration Settings

> Core application settings exposed through appConfig and related env vars.

*Canonical: https://makerkit.dev/docs/tanstack-prisma/configuration/app-configuration*

---

Core app settings are validated in `apps/web/src/config/app.config.ts` and read from environment variables (Vite inlines `VITE_*` values via `import.meta.env`).

## Current Fields

```bash
VITE_PRODUCT_NAME="Your SaaS"
VITE_SITE_URL="http://localhost:3000"
VITE_DEFAULT_LOCALE="en"
VITE_DEFAULT_THEME_MODE="light"
VITE_APP_HOME_PATH="/dashboard"
```

These populate the exported `appConfig` object:

```ts
import { appConfig } from '#/config/app.config.ts';
```

(Inside `apps/web`, the `#/*` import alias maps to `./src/*`.)

## What They Control

- `name` - product name used in metadata and UI
- `url` - canonical site URL
- `locale` - default locale
- `theme` - default theme mode (`light`, `dark`, `system`)
- `appHomePath` - default authenticated landing path

## Locale Sources

The default locale value is read through `appConfig`, while the supported locale list and locale detection live in the i18n package and app i18n helpers:

- `packages/i18n/src/config.ts` (supported locales, `LOCALE_COOKIE`, `detectLocale()`)
- `apps/web/src/lib/i18n/i18n.functions.ts`

Locale is resolved from a cookie, not a URL path segment.

## Common Pitfalls

- `VITE_SITE_URL` must be HTTPS in production builds
- `VITE_APP_HOME_PATH` must start with `/`
- changing the home path requires updating any hard-coded redirects you added elsewhere

---

**Next:** [Environment Variables →](./environment-variables)
