# Site, branding & languages

Start in Admin → Settings → General:

- **Site:** name, App URL, description, slogan, whether new accounts must confirm their email.
- **Branding:** light and dark logos, favicon, social-sharing image, social profile links.
- **Appearance:** whether people can switch themes, the default theme, text direction, page transitions.
- **Localization:** the default language, the language switch, following the browser's language, and the platform timezone. Each workspace also has its own timezone for Insights.
- **Homepage:** the landing page, an example docs site shown on it, or a redirect to an address of your own.
- **Code & Ads:** custom CSS and JavaScript for the platform, and an optional ad slot in the docs sidebar (an HTML snippet from Carbon Ads, EthicalAds or similar).

Make the platform's colour theme in **Admin → Settings → Colors**, and set the admin panel's own logos and title in **Admin → Settings → Admin**.

<Info>
Keep the App URL exact: `https://`, the final hostname, no trailing path. Custom domains, Git webhooks, sign-in with Google, emails and generated links all depend on it.
</Info>

### Languages

The app ships in English and Romanian. To add a language, copy `lang/en.json` to `lang/xx.json` and translate the values; the language then appears in the language menus and as a default language. Laravel's own messages live in `lang/xx/*.php`.

Published docs have their own words ("On this page", the search box, Ask AI, ratings, about 200 texts). **Reader packs** in `lang/reader/` translate only those, in German, Spanish, French, Italian, Japanese, Portuguese (Brazil) and Chinese (Simplified). A site picks its reader language in Customize → Configure, or follows each reader's browser. To add a pack, copy one and name it after the language's code.

```bash
php artisan translations:check
```

The command lists missing texts, texts the code no longer uses, and broken translations (a lost placeholder, a changed tag, the wrong number of plural forms).
