---
title: End-to-End Tutorial
description: From an empty repo to a live docs site -- create a project, preview locally, deploy, and optionally configure a custom domain.
---

Go from an empty repo to a live docs site. Add a custom domain when you're ready, and skip any step you've done already.

## Prerequisites

- A GitHub account
- A repository with docs content (or use the [Starter Template](https://github.com/jamdesk/starter-docs))
- Node.js 20+ if you want to install the CLI with npm

<Steps>
  <Step title="Create a project and connect GitHub">
    Create your first project in the Jamdesk dashboard and connect a repository.

    - Follow [Creating Projects](/setup/creating-projects) to set the project name, slug, and docs path
    - If prompted, install the GitHub App and grant repository access ([Connecting GitHub](/setup/connecting-github))
  </Step>

  <Step title="Edit and preview pages with the CLI">
    Use the Jamdesk CLI to preview page edits before you push them to GitHub.

    <Tabs>
      <Tab title="npm">
        ```bash
        npm install -g jamdesk
        cd your-docs
        jamdesk dev
        ```
      </Tab>
      <Tab title="npx">
        ```bash
        cd your-docs
        npx jamdesk dev
        ```
      </Tab>
    </Tabs>

    Your local preview runs at **http://localhost:3000**. Learn more in [Local Preview](/development/local-preview).

    Open an `.mdx` page in your editor, save a change, and refresh the local preview. When it looks right, publish it with the Git workflow in the next step.
  </Step>

  <Step title="Deploy by pushing to GitHub">
    Every push to your configured branch triggers a build and publishes to your Jamdesk subdomain.

    ```bash
    git add .
    git commit -m "Add docs content"
    git push origin main
    ```

    Replace `main` with the branch configured in your project if you use a different branch.

    When the build finishes, your docs are live at `your-project.jamdesk.app`. See [Deployment](/development/deployment) for details.
  </Step>

  <Step title="Optional: Add a custom domain">
    Make your docs production-ready with your own domain when you are ready to use it outside the Jamdesk subdomain.

    1. Go to **Settings** → **Domains** in the Jamdesk dashboard
    2. Add your domain (for example, `docs.example.com`)
    3. Create the DNS records shown in the dashboard
    4. Wait for verification and SSL to complete

    For troubleshooting, see [Custom Domains](/deploy/custom-domains).
  </Step>
</Steps>

## Validate the End-to-End Flow

- Your Jamdesk subdomain loads and shows the latest build
- Local preview reflects the same content and navigation
- If configured, the custom domain is verified and serving HTTPS
- Build history shows the latest commit and author attribution

## Optional: Host at /docs

If you want docs on a subpath like `example.com/docs`, review [Deployment Overview](/deploy/overview) and [Subpath Hosting](/deploy/subpath-hosting).

## What's Next?

<Columns cols={2}>
  <Card title="Create a Project" icon="plus" href="/setup/creating-projects">
    Manage project settings and templates
  </Card>
  <Card title="CLI Overview" icon="terminal" href="/cli/overview">
    Install the CLI and see available commands
  </Card>
  <Card title="Deployment Overview" icon="cloud-arrow-up" href="/deploy/overview">
    Compare hosting options
  </Card>
  <Card title="Custom Domains" icon="globe" href="/deploy/custom-domains">
    Verify DNS and troubleshoot setup
  </Card>
</Columns>
