# App Configuration Settings

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

*Canonical: https://makerkit.dev/docs/nextjs-drizzle/configuration/app-configuration*

---

Core app settings are validated in `apps/web/config/app.config.ts` and read from environment variables.

## Current Fields

```bash
NEXT_PUBLIC_PRODUCT_NAME="Your SaaS"
NEXT_PUBLIC_SITE_URL="http://localhost:3000"
NEXT_PUBLIC_DEFAULT_LOCALE="en"
NEXT_PUBLIC_DEFAULT_THEME_MODE="light"
NEXT_PUBLIC_APP_HOME_PATH="/dashboard"
```

These populate the exported `appConfig` object:

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

## 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 routing behavior live in the i18n package:

- `packages/i18n/src/locales.tsx`
- `packages/i18n/src/routing.ts`
- `apps/web/i18n/request.ts`

## Common Pitfalls

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

---

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