---
title: Examples
description: A minimal single-file publish, and where to go for a full branded deck or document.
---

# Examples

## A minimal page

The smallest possible bundle is one file:

```
sherpage_publish({
  title: "Hello, sherpage",
  files: [
    {
      path: "index.html",
      content: "<!doctype html><html><body><h1>Hello, sherpage</h1></body></html>",
      encoding: "utf8",
    },
  ],
  access: "public",
})
```

That returns a `p.shebang.pro/<public-id>` address, live immediately —
no separate deploy step, no build to wait on.

## A multi-file bundle

Add a stylesheet or a script the same way, referenced from `index.html`
by a relative path:

```
sherpage_publish({
  title: "A small site",
  entrypoint: "index.html",
  files: [
    { path: "index.html", content: "…", encoding: "utf8" },
    { path: "styles.css", content: "…", encoding: "utf8" },
    { path: "logo.png", content: "<base64>", encoding: "base64" },
  ],
  access: "private",
})
```

Binary files — images, fonts — use `encoding: "base64"`; everything
else uses `utf8`.

## A full branded deck or document

For anything more polished than a hand-written prototype — a
presentation, a walkthrough document, or a gallery of UI states to
review — the `shebang-presentation` skill produces a single,
self-contained branded HTML file suited to exactly that, ready to
publish as a sherpage bundle once generated.

## Next

[sherserve](/sherserve).
