# Simple HTML — No Build Step > Use REP in a plain HTML file with no bundler or framework. The SDK is loaded via esm.sh and the gateway serves the file in embedded mode with a FROM scratch container. Source: https://rep-protocol.dev/examples/simple-html/ A single HTML file using the REP SDK via [esm.sh](https://esm.sh), served by the gateway in embedded mode. No build step, no bundler, no framework. Source code at [`examples/simple-html/`](https://github.com/ruachtech/rep/tree/main/examples/simple-html). ## When to use this pattern - Static marketing pages or single-file dashboards - Quick prototyping without a build pipeline - Demonstrating REP concepts with minimal infrastructure - Environments where adding a Node.js build step is impractical ## File structure - examples/simple-html/ - index.html Single HTML file — the entire app - Dockerfile Two-stage: gateway download → FROM scratch - .rep.yaml Optional manifest for validate/typegen - .env.example Template environment variables ## How it works The REP gateway runs in **embedded mode**, serving `index.html` directly. When a browser requests the page, the gateway injects the `__rep__` payload before the response is sent: ``` Browser → REP Gateway :8080 (embedded mode) ↓ injects ↓ serves index.html ``` The HTML file imports the SDK as an ES module from esm.sh — no npm install, no bundler: ```html ``` > **Tip** > > The `__rep__` script tag is injected **before** the browser parses `