# Configuration

Configuration is the values your app reads from its environment, such as a
database address or an API key, and the languages it speaks: its locales,
and its text translated for the people reading it.

Dates and times are in the reference under Values and types. Start at
[Time types](/docs/time-types.md) for the current time, dates and time zones, and
showing them to people.

Two rules run through the page:

- **Your code never reads the environment or the system clock itself.**
  Settings arrive as typed `config.<field>` values, checked before the app
  starts. The time arrives as `clock.now`, which stays the same for the
  whole operation.
- **Values for machines and text for people never mix.** An `Instant` is
  stored and compared. A formatted date is only shown.

| Page | What it covers |
|---|---|
| [Settings and secrets](/docs/settings-and-secrets.md) | The values an app reads when it starts: settings, secrets, connection URLs and signing keys. |
| [Languages and translations](/docs/languages-and-translations.md) | The languages your app speaks, and how its text is translated and checked. |

[What is built](/docs/configuration-and-time-built.md) says which of this works today.
