> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipthing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Development

> Get started with the code and develop your SaaS.

<Steps>
  <Step title="Create a new database">
    By default, ShipThing uses [Neon](https://neon.tech) as its database provider and [Prisma](https://prisma.io) as its ORM.

    Make sure to have created a new database and have the connection string ready. For example when using PostgreSQL, the connection string will look something like this:

    ```
    postgresql://<username>:<password>@<host>:<port>/<database>
    ```
  </Step>

  <Step title="Set up the environment variables">
    You can read more about environment variables [here](/setup/configuration/environment). set at least the `DATABASE_URL`
  </Step>

  <Step title="Configure the database">
    You will need to scaffold the database using the schema defined in `packages/database/prisma/schema.prisma`:

    ```sh Terminal theme={"system"}
    pnpm migrate
    ```

    For more details on the default Prisma configuration (using Neon), refer to the [Database Configuration Guide](/packages/database#default-configuration).

    <Note>
      The `apps/api` and `apps/app` application use the database as an example, if you need to build one of these applications then make sure that this step is completed successfully. Otherwise you can ignore this step for now
    </Note>
  </Step>

  <Step title="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.

    ```sh Terminal theme={"system"}
    pnpm dev
    ```

    Open the localhost URLs with the relevant ports listed above to see the app, e.g. 🎉

    * [http://localhost:3000/](http://localhost:3000/) — The Main app.
    * [http://localhost:3001/](http://localhost:3001/) — The LandingPage website.
    * [http://localhost:3002/](http://localhost:3002/) — The API.
    * [http://localhost:3004/](http://localhost:6006/) — The Storybook.

    <Tip>
      If you only want to launch a particular app, you can use the following command:

      * `pnpm --filter app dev` - Launch the Main app
      * `pnpm --filter web dev` - Launch the Landing page website
      * `pnpm --filter api dev` - Launch the API
      * `pnpm --filter storybook dev` - Launch the Storybook
      * `pnpm --filter email dev` - Launch the Email previews
      * `pnpm --filter database dev` - Launch the Prisma Studio
    </Tip>
  </Step>
</Steps>
