# Site & branding

Start in Admin → Settings → General:

- **Site:** name, canonical App URL, description, slogan, email verification, and registration onboarding.
- **Branding:** light and dark logos, favicon, social-sharing image, and login background.
- **Appearance:** theme switching, default theme, text direction, and page transitions.
- **Localization:** default language, language switcher, browser-language detection, and timezone.
- **Homepage:** public homepage behavior and post-registration redirect.
- **Notifications:** contact email and optional web push/VAPID keys.

Generate the customer-facing color theme in `Admin → Settings → Colors`. Keep sufficient contrast between the primary/gradient colors and text. Configure admin-specific logos and title under `Admin → Settings → Admin`.

## Language files

Customer-facing JSON translations are split by product area instead of being kept in one large locale file:

- `lang/areas/<area>/<locale>.json` contains the main interface copy. Every supported locale must have a file in each area with the same keys.
- `lang/<locale>/*.php` contains Laravel's grouped messages, including authentication, validation, passwords, and pagination.

When adding a language, register it in `config/app.php`, create its files in every area, and add it to `rtl_locales` when appropriate. Preserve placeholders such as `:name` and workflow expressions exactly. Changes are read directly without a build step; run `composer translations:check` to validate them. Browser pages automatically receive only the translations needed for the active language.

<Info>
Keep the App URL exact: include `https://`, use the final hostname, and avoid a trailing path. OAuth callbacks, webhooks, generated links, emails, and stored assets depend on it.
</Info>
