# Quickstart

This page takes you from nothing to a live site: create an account, connect GitHub, create a project and follow its first release. Allow about ten minutes, build included. The same thing can then be done from the command line or by an agent, at the end of the page.

## What you need

- An email address you can read.
- A Git repository containing a web application. A public GitHub repository is enough; a private one needs Bastide's GitHub app, installed in step 3.
- A browser. The console journey needs no commands.

> **Note.** Bastide is in beta. The beta is free, asks for no payment method and makes no availability commitment: host applications that are not critical. The terms are at `https://console.bastide.app/beta`.

## 1. Create your account

1. Open `https://console.bastide.app/creer-un-compte` (or "Créer un compte" (Create an account) below the **Connexion** (Sign in) form).
2. Enter your email address and the name of your organization (your company or team, 2 to 100 characters; it can be changed later).
3. Tick the beta terms box, then "Recevoir le lien" (Get the link).
4. Open the email you receive. The link is valid for seven days and works once; it leads to the **Ouvrir un compte** (Open an account) page (`/ouvrir-un-compte`).
5. Choose your password (at least 12 characters), tick the terms, then "Ouvrir le compte" (Open the account).

The account and the organization are created together, and you are its **Owner**. The console signs you into the organization; if it cannot, sign in with your address and password.

> **Tip.** Nothing after a few minutes? Check your spam folder. If an account already uses that address, no link is sent: sign in, or request a new password. Details are in [Account](account.md).

## 2. Set up a second factor

Open **Compte** (Account), "Sécurité" (Security) section, and add an authenticator app or a passkey. Keep the ten recovery codes shown at the end: they will not be shown again. It is not required to put a site online, but writing SQL, running schema migrations and managing backend keys require it, and an organization can enforce it. See [Account](account.md).

## 3. Connect GitHub

Open **Projets** (Projects), then "Nouveau projet" (New project). The **Nouveau projet** screen shows an "Importer un dépôt" (Import a repository) card:

1. Click "Raccorder un compte GitHub" (Connect a GitHub account). The console sends you to GitHub to install Bastide's app, on the GitHub account or organization of your choice and on the repositories you pick.
2. GitHub brings you back to **Nouveau projet**. The card now lists your repositories, most recently pushed first, private ones included.

Connecting requires the organization's Administrator role; the connection is then managed in the organization's **Réglages** (Settings), "GitHub" card. For a public repository you can skip this step and paste its address.

## 4. Create the project

On **Nouveau projet**:

1. Click "Importer" (Import) on the repository's row, or paste its address in the top field (`https://`, `ssh://` or `git://`).
2. Check the fields the console has filled in:

| Field | What it is |
| --- | --- |
| Branche (Branch) | The branch to put online, `main` by default. This is the one the platform builds. |
| Nom du projet (Project name) | The name shown in the console, taken from the repository. It can be changed at any time. |
| Identifiant (Identifier) | It becomes part of the site's address and can never be changed: lowercase letters, digits and hyphens, 2 to 63 characters. |

3. Click "Créer et mettre en ligne" (Create and put online).

Nothing else is asked: the build command, the output directory and the framework are detected in the repository. The project is created on the Discovery tier, with its production environment and its database, and the first deployment starts straight away.

### Start from a template

No repository yet? The "Modèles" (Templates) button on **Nouveau projet** opens **Modèles de départ** (Starter templates): about twenty templates written by Glowsoft (Next.js, Astro, Nuxt or SvelteKit sites, React applications, Fastify, FastAPI or Go APIs, among others), filterable by category. Pick one: the form asks for every required variable, with its description and the link where to obtain it, before starting the build. "Déployer" (Deploy) creates the project, writes your values to production, then builds. Every template is built and deployed each week; one that fails twice in a row leaves the catalogue.

## 5. Follow the first release

The console moves to the **Première mise en ligne** (First release) screen. It follows the deployment and the database step by step, with the live build log and an estimate of the time remaining. It ends in one of two ways:

- **Online**: "Votre site est en ligne" (Your site is online), with the site's HTTPS address, the database endpoints and its publishable key.
- **Failed**: the cause, where to fix it and what to do. Fix the repository (a push is enough) or the setting shown, then "Redéployer" (Redeploy). "Annuler la mise en ligne" (Cancel the release) stops a build in progress.

The site's address is also shown on the project's **Vue d'ensemble** (Overview), under "Adresse de production" (Production address).

## 6. Next steps

- Every push to the production branch redeploys the site: see [Git](git.md) and [Deploy](deploy.md).
- Add your environment variables in **Variables**: see [Environments](environments.md).
- Attach your own domain in **Domaines** (Domains): see [Domains](domains.md).
- A failed release is undone without rebuilding: see [Restore](restore.md).

## The same from the command line

```sh
npm install -g bastide
bastide login
```

`bastide login` prints an address and a code, and opens your browser on **Autoriser la ligne de commande** (Authorise the command line): compare the code with the one in the terminal, then authorise. No password goes through the terminal. The command then lists your organizations; `bastide account organization list` reads them again.

```sh
bastide project create_with_backend \
  --organization-id org_01JQ8ZK4M7NP2RSTVWXYZ34567 \
  --slug my-shop \
  --name "My shop" \
  --git-remote https://github.com/your-account/my-shop \
  --idempotency-key create-my-shop-001
```

The response carries the project, the identifier of its production (`environmentId`), the deployment that was started and a `suivi` list saying what to read next, assigned address included. Follow the deployment:

```sh
bastide deployment read --project-id prj_… --deployment-id dep_…
bastide deployment log read --project-id prj_… --deployment-id dep_…
```

See [Command line](cli.md) and the [command-line reference](../reference/en/command-line.md).

## The same through an agent

Connect your agent to the MCP server `https://mcp.bastide.app/mcp`, then ask it to create the project: it calls `project_create_with_backend`, follows the task with `task_read` or `deployment_read`, and reads the log with `deployment_log_read` if the build fails. The complete journey, field by field, is in [Create a project](project.md).

> **Note.** A project created by an agent starts "unclaimed": it is switched off after seven days unless someone claims it from the console. See [Create a project](project.md).

## Common errors

| What you see | Fix |
| --- | --- |
| No email after "Recevoir le lien" | Check your spam folder. An account may already exist at that address: sign in or request a new password. |
| "Cette invitation n'ouvre aucun compte" (This invitation opens no account) | The link has expired, been used or is unknown: request again on `/creer-un-compte`. |
| The "Importer un dépôt" card does not show your repository | Only repositories open to the GitHub app are listed, and only the 300 most recently pushed: add the repository to the installation on GitHub, or paste its address. |
| "L'adresse doit commencer par https://, ssh:// ou git://" | Copy the address exactly as GitHub shows it. |
| The identifier is refused | Lowercase letters, digits and hyphens, 2 to 63 characters, no leading hyphen, and unique in the organization. |
| The release fails | Read the cause and location shown, fix, then "Redéployer". See [Builds](builds.md) and [Troubleshooting](troubleshooting.md). |

## See also

- [Concepts](concepts.md)
- [Account](account.md)
- [Create a project](project.md)
- [Deploy](deploy.md)
