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

# Getting Started

> A step-by-step guide to preparing and submitting your first game on Greenhouse Games.

# Hello!

Welcome to the Greenhouse Games developer documentation. This guide walks you through everything you need to do to get your HTML5 game published on the platform — from preparing your files to submitting through the Developer Dashboard.

<Steps>
  <Step title="Prepare Your Game Files">
    Your game must be packaged as a single `.zip` archive containing a standalone HTML5 game. The key requirements:

    * **Format**: A single `.zip` file, max **1 GB** in size
    * **Entry point**: `index.html` must exist at the ZIP root
    * **File count**: Maximum **10,000 files** in the archive
    * All assets (images, audio, scripts, styles) should be bundled locally within the ZIP

    Make sure your game only uses [allowed asset types](/assets/allowed-types) — unrecognized file extensions are flagged for manual review.

    <Card title="Bundle Format Details" icon="file-zipper" href="/submission/bundle-format">
      Full documentation on ZIP format, size limits, and packaging requirements.
    </Card>
  </Step>

  <Step title="Verify Your Bundle Structure">
    The platform expects a specific folder structure. You can use either:

    * **Flat structure** — `index.html` at the ZIP root alongside your assets
    * **Single-wrapper directory** — one top-level folder containing `index.html` and all assets (the platform automatically detects this and treats the directory contents as the root)

    Double-check that `index.html` is discoverable at the root level after extraction.

    <Card title="Folder Structure Guide" icon="folder-tree" href="/submission/folder-structure">
      Examples of valid folder structures with flat and wrapper-directory layouts.
    </Card>
  </Step>

  <Step title="Check Security Compliance">
    Games go through an automated security scan before deployment. To avoid rejection, ensure your game does **not** use any blocked JavaScript APIs:

    * `localStorage`, `sessionStorage`, `document.cookie`
    * `indexedDB`, `navigator.sendBeacon`
    * `eval`, `Function` constructor

    Games with **CRITICAL** security findings are automatically rejected. Network requests to domains not on the allowed list are also detected and blocked.

    <Card title="Blocked APIs Reference" icon="shield-halved" href="/security/blocked-apis">
      Complete list of blocked APIs, severity levels, and what causes automatic rejection.
    </Card>
  </Step>

  <Step title="Apply CSP Locally for Testing">
    During deployment, a Content Security Policy (CSP) meta tag is injected into all HTML files in your bundle. This restricts network access, script sources, and resource loading at runtime.

    Before submitting, add the following meta tag to your `index.html` and test your game locally:

    ```html theme={null}
    <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' blob:; connect-src 'self' blob:; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob:; font-src 'self'; frame-src 'self' blob:; worker-src 'self' blob:;">
    ```

    If your game works correctly with this tag in place, it will work on the platform.

    <Card title="Local CSP Testing Guide" icon="flask-vial" href="/csp/local-testing">
      Detailed instructions for testing your game with CSP applied locally.
    </Card>
  </Step>

  <Step title="Submit via Developer Dashboard">
    Once your game passes local testing, head to the Developer Dashboard to submit:

    1. Log in at [dev.ghg.gg](https://dev.ghg.gg)
    2. Create a new game or select an existing one
    3. Upload your `.zip` bundle
    4. Monitor pipeline status as your game moves through validation, security scanning, and staging

    Your game will go through automated checks and then be queued for manual review before going live.

    <Card title="Open Developer Dashboard" icon="arrow-up-right-from-square" href="https://dev.ghg.gg">
      Go to the Developer Dashboard to submit your game.
    </Card>
  </Step>
</Steps>

## What Happens Next?

After submission, your game moves through the ingestion pipeline:

1. **Validation** — File format, size limits, and structure checks
2. **Security Scan** — Blocked API detection and domain analysis
3. **Build & Deploy** — Compression, CSP injection, and staging deployment
4. **Review** — Manual review by the Greenhouse Games team
5. **Live** — Approved games are published to the storefront

You can track your game's status in real time from the Developer Dashboard.

## Need More Detail?

Explore the full documentation for each topic:

<CardGroup cols={2}>
  <Card title="Game Submission Guide" icon="upload" href="/submission/bundle-format">
    Bundle format, folder structure, file limits, and submission checklist.
  </Card>

  <Card title="Allowed Asset Types" icon="image" href="/assets/allowed-types">
    Recognized file extensions grouped by category.
  </Card>

  <Card title="Security Restrictions" icon="lock" href="/security/blocked-apis">
    Blocked APIs, blocked domains, and severity levels.
  </Card>

  <Card title="Content Security Policy" icon="shield" href="/csp/policy-reference">
    Full CSP reference, practical implications, and local testing.
  </Card>
</CardGroup>
