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

# Share

> Publish a read-only public link to your LTB project or export finished videos as a ZIP. One active link per project, no sign-in required to view.

Open the `Share` button in the header and pick a tab. The first publishes the project to a public URL. The second downloads selected videos as a ZIP. Links for collaborators and clients; ZIPs for editors and archives.

<Frame caption="The Share dropdown — two tabs anchored under the header button">
  {/* TODO: capture share/01-dropdown.png — Share tab open, 4:3 */}
</Frame>

## Two tabs, two purposes

The dropdown is the same surface, but the tabs do different things.

<CardGroup cols={2}>
  <Card title="Share tab" icon="link" href="#share-tab">
    Publish a public URL. Viewers reach the project read-only without signing in.
  </Card>

  <Card title="Export tab" icon="download" href="#export-tab">
    Bundle selected videos into a single ZIP download.
  </Card>
</CardGroup>

## Share tab

Click `Share` and the link is live immediately. The dropdown swaps the call-to-action for a URL bar, a copy button, and a `View site` shortcut. Click `Unshare` to revoke.

<Frame caption="After publishing — URL bar plus `Unshare` and `View site`" />

The published URL follows the shape `https://share.lettherebe.page/<token>`. Anyone with the link can view; nothing on the page invites a sign-up.

### What viewers see

The shared page renders the project read-only. Beats, shots, and finished videos play in sequence. Comments and edits are not exposed. The viewer never sees your dashboard, billing, or other projects.

### One active link per project

Each project carries one active token at a time.

* Calling `Share` a second time returns the same URL — no duplicate links accumulate.
* `Unshare` revokes the token immediately. Reopening the project and clicking `Share` again mints a new token, so the old URL stays dead.

<Warning>
  A live link is public. Anyone who holds the URL can view the project without signing in. Revoke with `Unshare` as soon as the audience no longer needs access.
</Warning>

### No automatic expiry

Links stay live until you click `Unshare`. There is no countdown, no scheduled revoke, no per-link expiry control in the UI.

<Note>
  The backend supports an optional expiry parameter, but the current Share dropdown calls it with `never`. Treat every live link as permanent until revoked.
</Note>

## Export tab

Switch to `Export` to download finished videos as a single ZIP. The tab lists every shot that has a generated video, grouped by scene.

<Frame caption="Export tab — videos grouped by scene with per-shot checkboxes" />

| Control            | Behavior                          |
| ------------------ | --------------------------------- |
| `Select all`       | Toggles every shot in the project |
| Per-scene checkbox | Selects every shot in that scene  |
| Per-shot checkbox  | Selects an individual video       |
| `Export N videos`  | Streams a ZIP to your browser     |

The footer shows the selected count and the estimated ZIP size. Exports run through the same Vercel function, so two soft limits apply.

| Limit                       | Trigger                                      |
| --------------------------- | -------------------------------------------- |
| `100 videos`                | Hard cap — request fails above this count    |
| `1 GB` total or `50 videos` | Soft warning — confirm before the ZIP starts |

<Tip>
  Export ZIPs run end-to-end inside one HTTP request. Large bundles can hit the function timeout. If a large export stalls, split the selection by scene and run two smaller exports.
</Tip>

## Capture spec

| File                         | Ratio | State                                                | Priority |
| ---------------------------- | ----- | ---------------------------------------------------- | -------- |
| `share/01-dropdown.png`      | 4:3   | Share tab — pre-publish state                        | P0       |
| `share/02-published.png`     | 4:3   | Share tab — published state with URL bar             | P0       |
| `share/03-export.png`        | 4:3   | Export tab — videos grouped by scene with selections | P1       |
| `share/04-header-button.png` | 4:3   | Header `Share` button with `Shared` badge            | P1       |

## Next

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/getting-started/quickstart">
    The shortest path from a line to a shared link.
  </Card>

  <Card title="Showcase" icon="image" href="https://lettherebe.app/showcase">
    Browse public work from other creators.
  </Card>
</CardGroup>
