# Start

{% hint style="danger" %}
🚧 **Documentation is still under construction** 🚧

Please send us a message in our community or email us for direct answers to questions. If there are missing pages, or broken links. Don't hesitate to let us know!
{% endhint %}

{% hint style="info" %}
**Disclaimer**

You are expected to know the basics of web development as well as working with Node.js, Next.js, React, and some database and UI design.

The software will get you 90% of the way there, you will still need to perform some manual procedures and Novel will be there to help.
{% endhint %}

## Express Installation

You can install Novel via the following commands and it will get you an almost-ready Novel instance.&#x20;

{% stepper %}
{% step %}

### <mark style="background-color:yellow;">Run the installation script</mark>

{% code title="Unix / OSX / Powershell" %}

```sh
mkdir your-new-project
cd your-new-project
curl -s https://novel.dev/install.sh | bash
```

{% endcode %}

If you have access and the right permissions in your system, it'll install everything needed for the project.
{% endstep %}

{% step %}

### Run the development server

You can then run the development server.

{% code title="Unix / OSX / Powershell" %}

```sh
novel dev
```

{% endcode %}
{% endstep %}

{% step %}

### You are ready :tada:

Go to <http://localhost:7634> to see the default screens and API.
{% endstep %}

{% step %}

### Set up Stripe and Postmark

Novel will run just fine without these settings, but you wont be able to create accounts and send email.&#x20;

[Get your Stripe Keys →](https://docs.novel.dev/guides/knowledge-base/general-information/getting-stripe-keys)

[Get your Postmark Keys →](https://docs.novel.dev/guides/knowledge-base/general-information/getting-postmark-keys)
{% endstep %}
{% endstepper %}

## Manual Installation

If at any point the express installation does not work for you, you may refer to the installation.

This assumes you are in a unix environment: Unix / OSX / Powershell

{% stepper %}
{% step %}

### Install Git / Homebrew / NVM

You will need to install the package and runtime managers needed by Novel

#### Install Homebrew

Reference: [https://brew.sh](https://brew.sh/)

```sh
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
```

#### Install NVM

Reference: <https://github.com/nvm-sh/nvm#installing-and-updating>

```sh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
```

#### Install Git

You can follow the instruction here <https://git-scm.com/downloads/mac> or run

```sh
brew install git
```

{% endstep %}

{% step %}

### Install node.js

Now that NVM is available, you can install the latest version of node easily

```
nvm install 23
```

{% hint style="warning" %}
If this is not available, try to close your terminal and open it again. If all else fails, copy below into the terminal
{% endhint %}

```sh
# ONLY IF NVM FAILS TO RUN
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
```

{% endstep %}

{% step %}

### Accept the Github Organization Invite

Head over to the <https://github.com/madewithnovel> repository and accept the Invitation.

If you do not see this, please send us a message at <hello@novel.dev>
{% endstep %}

{% step %}

### Clone the Novel codebase

Git should also be available in your machine. Before running this, make sure you have your key exchange is set up with github

You can see this manual if you havent

{% embed url="<https://docs.github.com/en/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account>" %}

Once you have done this, you can now clone the repository by doing this in your terminal

```sh
mkdir [YOUR SAAS DIRECTORY]
cd [YOUR SAAS DIRECTORY]
git clone git@github.com:madewithnovel/novel.git
rm -rf web
git clone git@github.com:madewithnovel/next.js.git web
npm install
mv .env.sample .env
```

You should have the API and WEB codebase available to you.
{% endstep %}

{% step %}

### Set-up your  Database

Now you need to set up your database, you have 2 options: Docker or native install.

#### Install Docker

If you dont have docker available. Install it via this page&#x20;

<https://docs.docker.com/desktop/setup/install/linux/>

#### Docker Available

If you have docker available, you can run the following command in your terminal

```sh
docker run --name novel-db \
            -e POSTGRES_PASSWORD=postgres \
            -e POSTGRES_USER=postgres \
            -e POSTGRES_DB=novel \
            -p 5433:5433 \
            -d postgres:17
```

### Add the Connection String to the Environment file \`.env\`

Replace the DB\_HOST on line 4 of the new .env file

&#x20;<img src="/files/8ALeIoSfI6aCXxGrUNP1" alt="" data-size="original">

To the value below

<pre><code><strong>DB_HOST=postgres://postgres:postgres@localhost:5433/novel
</strong></code></pre>

{% endstep %}

{% step %}

### Start the Development Server

You should have every part of the system ready. You are now able to run your instance by doing

```sh
novel dev
```

Proceed to the next steps to continue your development.
{% endstep %}
{% endstepper %}

## Next steps

You can go to our guides to start a SaaS speedrun

[SaaS Speedrun →](https://docs.novel.dev/guides/shipping-fast/speedrun)

[Designing your SaaS →](https://docs.novel.dev/guides/shipping-fast/designing-your-saas)

[Creating a Marketing Page →](https://docs.novel.dev/guides/knowledge-base/novel-web-next.js/creating-a-marketing-page)

[Creating an Application Screen →](https://docs.novel.dev/guides/knowledge-base/novel-web-next.js/creating-an-application-screen)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.novel.dev/start.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
