# 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 `