
# Démarrage rapide

Ce guide vous mène d'un fichier vide à une application Sovrium opérationnelle. Choisissez l'approche qui correspond à votre flux de travail : un fichier YAML piloté par le CLI, ou un projet TypeScript pour un typage complet.

## Choisissez votre approche

Sovrium prend en charge deux formats de configuration. Le YAML reste simple ; le TypeScript ajoute un typage complet et l'autocomplétion.

### Option A : YAML + CLI

La voie la plus simple. Installez le CLI Sovrium, rédigez une configuration YAML et démarrez le serveur :

1. **Installer le CLI** — Installez le binaire Sovrium pour obtenir la commande `sovrium`. Homebrew, Docker et Scoop sont également disponibles sur la page [Installation](/fr/docs/installation).

   ```bash
   curl -fsSL https://sovrium.com/install | sh
   ```

2. **Créer un fichier de configuration** — Créez un fichier `app.yaml` avec la configuration valide la plus simple : juste un nom.

   ```yaml
   name: my-app
   ```

3. **Ajouter des tables de données** — Définissez vos modèles de données avec des champs typés, des options et de la validation.

   ```yaml
   name: my-app

   tables:
     - id: 1
       name: tasks
       fields:
         - id: 1
           name: title
           type: single-line-text
           required: true
         - id: 2
           name: status
           type: single-select
           options: [To Do, In Progress, Done]
   ```

4. **Démarrer le serveur** — Lancez le serveur de développement et rendez-vous sur `http://localhost:3000` pour voir votre application.

   ```bash
   sovrium start app.yaml
   ```

:::callout
**Enrichissez au fur et à mesure.** Commencez petit avec uniquement des tables. Puis ajoutez progressivement le thème, l'authentification, les pages et l'analytique à mesure que vos besoins grandissent.
:::

### Option B : TypeScript

Vous préférez le typage ? Rédigez la configuration en TypeScript avec une autocomplétion complète, puis exécutez-la avec le même CLI :

1. **Ajouter les définitions de types** — Installez le paquet sans dépendance `@sovrium/types` comme dépendance de développement, uniquement pour l'autocomplétion dans l'IDE.

   ```bash
   bun add -d @sovrium/types
   ```

2. **Créer `app.ts`** — Enveloppez votre configuration dans `defineConfig()` comme export par défaut, en commençant par un simple nom.

   ```typescript
   import { defineConfig } from '@sovrium/types'

   export default defineConfig({
     name: 'my-app',
   })
   ```

3. **Ajouter des tables de données** — Enrichissez la configuration avec des champs typés, des options et de la validation, avec une autocomplétion complète.

   ```typescript
   import { defineConfig } from '@sovrium/types'

   export default defineConfig({
     name: 'my-app',
     tables: [
       {
         id: 1,
         name: 'tasks',
         fields: [
           {
             id: 1,
             name: 'title',
             type: 'single-line-text',
             required: true,
           },
           {
             id: 2,
             name: 'status',
             type: 'single-select',
             options: ['To Do', 'In Progress', 'Done'],
           },
         ],
       },
     ],
   })
   ```

4. **Démarrer le serveur** — Lancez le même CLI sur votre fichier `app.ts` et rendez-vous sur `http://localhost:3000` pour voir votre application.

   ```bash
   sovrium start app.ts
   ```

:::callout
**Pourquoi TypeScript ?** TypeScript offre l'autocomplétion pour chaque propriété et la validation des types de champs à la compilation. Idéal pour les développeurs qui préfèrent le code aux fichiers de configuration.
:::

## Et ensuite ?

Maintenant que votre application est opérationnelle, explorez la référence du schéma pour ajouter davantage de fonctionnalités :

- [Concepts fondamentaux](/fr/docs/concepts) : l'anatomie d'une application Sovrium
- [Vue d'ensemble du schéma](/fr/docs/overview) : les 18 propriétés racine expliquées
- [Vue d'ensemble des tables](/fr/docs/tables-overview) : 49 types de champs, permissions, index
- [Thème](/fr/docs/theme) : couleurs, polices, espacement et jetons de design
- [Vue d'ensemble des pages](/fr/docs/pages-overview) : environ 80 types de composants pour des pages rendues côté serveur
