---
title: "Setup"
description: "Set up LaunchFast locally, clone the repo, install dependencies, configure your database, and start the dev server."
source: "https://www.launchfa.st/documentation/guides/launch"
---

> **Site index for agents**
> Fetch https://www.launchfa.st/llms.txt to discover every page on this site.
> Every page is also available as Markdown by appending `.md` to its URL.

import { Steps, Tabs, TabItem } from '@astrojs/starlight/components';

This guide will walk you through setting up LaunchFast. We will go through the process of cloning the project, installing dependencies, setting up your database and running the local development server.

## Prerequisites

Before you can get started, you will need to have the following installed on your machine.

<li>[Node.js](https://nodejs.org/en/) (v18 or higher)</li>
<li>[Git](https://git-scm.com/)</li>
<li>[VSCode](https://code.visualstudio.com/) (recommended, or any other code editor)</li>

## Project setup

<Steps>

1. **Create a new project with LaunchFast**

   Clone the LaunchFast repository:

   <Tabs>
    <TabItem label="Astro">
        ```bash
        git clone https://github.com/LaunchFast-Boilerplates/launchfa.st-astro
        ```
    </TabItem>
    <TabItem label="SvelteKit">
        ```bash
        git clone https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit
        ```
    </TabItem>
    <TabItem label="Next.js">
        ```bash
        git clone https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs
        ```
    </TabItem>
   </Tabs>

   Next, install all the dependencies. Make sure you have installed [npm](https://nodejs.org/en/download/current) before running the following command:
   
   ```bash
   npm install
   ```

   Next, set up the environment variables. To do this, copy the `.env.example` file in the root of your project and rename it to `.env` with the following:

   ```bash
   cp .env.example .env
   ```

   Finally, set the LaunchFast repository as the upstream origin for your project, so you can pull in updates in the future via the following commands:

   <Tabs>
    <TabItem label="Astro">
        ```bash
        rm -rf .git
        git init
        # Your writable remote
        git remote add origin git@github.com:<user>/<repo>.git
        # LaunchFast template for pulling updates only
        git remote add upstream https://github.com/LaunchFast-Boilerplates/launchfa.st-astro
        git add -A
        git commit -m "Initial commit"
        # First push: establishes branch tracking
        git push -u origin main # use 'master' if that’s your default
        ```
    </TabItem>
    <TabItem label="SvelteKit">
        ```bash
        rm -rf .git
        git init
        # Your writable remote
        git remote add origin git@github.com:<user>/<repo>.git
        # LaunchFast template for pulling updates only
        git remote add upstream https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit
        git add -A
        git commit -m "Initial commit"
        # First push: establishes branch tracking
        git push -u origin main # use 'master' if that’s your default
        ```
    </TabItem>
    <TabItem label="Next.js">
        ```bash
        rm -rf .git
        git init
        # Your writable remote
        git remote add origin git@github.com:<user>/<repo>.git
        # LaunchFast template for pulling updates only
        git remote add upstream https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs
        git add -A
        git commit -m "Initial commit"
        # First push: establishes branch tracking
        git push -u origin main # use 'master' if that’s your default
        ```
    </TabItem>
   </Tabs>

2. **Set up your database provider**
   
   Open the `.env` file and update the `DATABASE_TYPE` and the relevant database provider environment variable(s) per the following instructions:

   <Tabs>
    <TabItem label="Astro">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#database](https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#database)
    </TabItem>
    <TabItem label="SvelteKit">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#database](https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#database)
    </TabItem>
    <TabItem label="Next.js">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#database](https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#database)
    </TabItem>
   </Tabs>
   
   Finally, initiate the relevant schema on the database provider if only you are using Postgres or SQLite via the following command:

   ```bash
   npm run db:setup
   ```

3. **Set up your storage provider**

    Set up the storage environment variables to use the ability to upload and serve files (like images, videos, etc.) over pre-signed URLs. LaunchFast supports all S3-compatible storage providers (Amazon S3, Cloudflare R2, and Supabase Storage) and Firebase Storage.

    Open the `.env` file and update the `STORAGE_PROVIDER` and the relevant storage provider environment variable(s) per the following instructions:

   <Tabs>
    <TabItem label="Astro">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#storage](https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#storage)
    </TabItem>
    <TabItem label="SvelteKit">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#storage](https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#storage)
    </TabItem>
    <TabItem label="Next.js">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#storage](https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#storage)
    </TabItem>
   </Tabs>

4. **Set up authentication**

    Open the `.env` file and update the authentication environment variables per the following instructions:

   <Tabs>
    <TabItem label="Astro">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#authentication](https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#authentication)
    </TabItem>
    <TabItem label="SvelteKit">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#authentication](https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#authentication)
    </TabItem>
    <TabItem label="Next.js">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#authentication](https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#authentication)
    </TabItem>
   </Tabs>

5. **Set up your email provider**

    Open the `.env` file and update the environment variables for the email provider that you intend to use per the following instructions:

   <Tabs>
    <TabItem label="Astro">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#email](https://github.com/LaunchFast-Boilerplates/launchfa.st-astro#email)
    </TabItem>
    <TabItem label="SvelteKit">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#email](https://github.com/LaunchFast-Boilerplates/launchfa.st-sveltekit#email)
    </TabItem>
    <TabItem label="Next.js">
        [https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#email](https://github.com/LaunchFast-Boilerplates/launchfa.st-nextjs#email)
    </TabItem>
   </Tabs>

6. **Start your development server**

    Now your app should be ready to go. To start the local development server, navigate into your project root folder and run the following command.

    ```bash
    npm run dev
    ```

    Open [localhost:3000](http://localhost:3000) in your browser to see the your app.

</Steps>
