---
name: reror
description: Publish a static folder to reror (reror.net) and hand back the link and manage key. Use when asked to host, publish or share a static site, a build folder or an HTML page.
---

# Publish a static site on reror

Reror hosts static files at `<name>.reror.net`. No account. The folder needs an `index.html` at the top.

## Steps
1. Pick a name: 3 to 40 of a-z, 0-9 and hyphen. Ask the person if they have not said one.
2. Build the site if it has a build step. Publish the output folder, not the source.
3. Run `node cli/bin/reror.js ./dist --name myname` with the real folder and name. Not on npm yet: run it from a copy of the reror source. Without it, use MCP or REST below.
4. Give the person the link and the manage key. Say the key is shown once and lives in `.reror.json`.
5. Add `.reror.json` to `.gitignore`. Never commit it, paste the key into code, or print it again.

To publish a new version later, run the same command in the same folder. The CLI reads the key from `.reror.json`.

## Without the CLI
- MCP: connect to `https://mcp.reror.net/_reror/mcp`. Call `check_name`, then `deploy_site` with the files. The first answer has `pow_required`, `challenge` and `difficulty`; solve it and call `deploy_site` again with `pow`. Keep `manage_key`: the other tools need it, as an argument or as `Authorization: Bearer`.
- REST: `https://api.reror.net/_reror/v1`, described in https://reror.net/openapi.yaml and https://reror.net/llms.txt.

Proof of work in Python:

```python
import hashlib

def solve(challenge, difficulty):
    n = 0
    while int.from_bytes(hashlib.sha256(f"{challenge}:{n}".encode()).digest()) >> (256 - difficulty):
        n += 1
    return str(n)
```

## Limits
- Free: 25 MiB, 2000 files, 1 version. Supporter key: 100 MiB, 10000 files, 3 versions.
- 3 new sites a day and 5 live per client. A new site lasts 7 days; one with a manage key lasts a year.

## When it fails
- `taken`: the name is in use. Ask for another.
- `over_limit`: the folder is too big. Remove files, or the person can use a supporter key (`--supporter-key`).
- `rate_limited`: wait the seconds in Retry-After.
- `held`: the site waits for review before it goes live. Tell the person.
