Skip to content

Commit 8ea15fc

Browse files
Ferryx349cameri
andauthored
feat(website): relay peering launch film and home section (#969)
* feat(website): relay peering launch film and home section (#942) Add ~40s peering film (hero-animation render pipeline), site #peering block, and encoded public media for the marketing page. * fix(website): tighten peering film copy from review (#969) Clarify scope/peering/edge cards, rolling cache window, and flat or traffic-based fees; re-render site media. * fix(website): keep EDGE card copy inside peering film panel Use a short title plus wrapped subtitle and constrain role-card text width; re-render site media. * fix(website): remove visible peering film caption paragraph Drop sr-only blurb that was not styled hidden on the peering section. --------- Co-authored-by: Ricardo Cabral <me@ricardocabral.io>
1 parent 694bba7 commit 8ea15fc

15 files changed

Lines changed: 889 additions & 3 deletions

File tree

‎.changeset/peering-launch-film.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
"nostream": patch
3+
"nostream-website": patch
4+
---
5+
6+
feat(website): add the relay peering launch film and home-page section

‎website/hero-animation/README.md‎

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,23 @@ pnpm run render:release:small # → output/release/nostream-3.4.0-low.mp4 (~2.3
6868
pnpm run frames:release # → output/release/frames/f0060.png … (one still per scene + the end card)
6969
```
7070

71+
## Peering launch film
72+
73+
A 40 s cut for relay peering ([#942](https://github.com/cameri/nostream/issues/942)), in the same dialect as the 3.3.0 release film: **1200 frames** at 1920×1080, composed in `src/peering-film.ts` and rendered by `src/peering-render.ts`. Scene copy and claim traceability live in [`docs/peering-film-copy.md`](docs/peering-film-copy.md) — draft that before changing on-screen text.
74+
75+
1. **People** (frames 0–240): run a relay for your people, not the whole network — peers for its scope, fetches on demand.
76+
2. **Worth** (240–520): your archive is worth something now; sell feeds in sats; flat per-period terms, never per event.
77+
3. **Fast** (520–760): cache peers and an operator-configured window (e.g. the last hour); hot feed near readers.
78+
4. **Middle** (760–980): relays that only talk to relays — archive/cache infrastructure, edges facing users.
79+
5. **Close** (980–1200): today every relay tries to be everything → one thing well; the network assembles the rest.
80+
81+
```bash
82+
pnpm run render:peering # → output/peering/nostream-peering.mp4
83+
pnpm run render:peering:small # → output/peering/nostream-peering-low.mp4
84+
pnpm run frames:peering # → output/peering/frames/f0150.png … (one still per scene + the end card)
85+
cd ../site && pnpm run media # → public/media/peering.mp4, peering-poster.webp (home #peering)
86+
```
87+
7188
## Admin console film
7289

7390
**35 s** at 1920×1080. Opens on “Operator Console”, then each feature is a short explanation on the landing-hero backdrop (dot grid, planet, sparkle halo) followed by that screenshot full frame: metrics, settings, NIP-66, notifications.
@@ -92,6 +109,7 @@ After changing the admin film, run `pnpm run media` in `website/site` to re-enco
92109

93110
- Timeline & layout: `src/film.ts` (scene windows `HERO`, `WHAT`, `FLOW`, `FEATURES`, `DEPLOY`)
94111
- Release film: `src/release-film.ts` (scene windows `PROBLEM`, `WAIT`, `DOCS`, `CLOSE`), rendered by `src/release-render.ts`
112+
- Peering film: `src/peering-film.ts` (scene windows `PEOPLE`, `WORTH`, `FAST`, `MIDDLE`, `CLOSE`), rendered by `src/peering-render.ts`
95113
- Admin film: `src/admin-film.ts`, rendered by `src/admin-render.ts`
96114
- Palette & fonts: `src/theme.ts`
97115
- Logos / planet / grid: `src/build-assets.ts` (source SVGs in `assets/icons-raw/`, Nostr PNG in `assets/logos/`)
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# Relay peering launch film — scene copy
2+
3+
Source: [nostream#942](https://github.com/cameri/nostream/issues/942). Composition: `src/peering-film.ts`.
4+
40 s · 1920×1080 · 30 fps · 1200 frames. One job per scene; jobs-to-be-done only (no protocol tutorial).
5+
6+
**Approval:** Draft for maintainer review before the peering release ships on the site.
7+
8+
## Factual guardrails (#931, #932–#940)
9+
10+
| Claim on screen | Spec / issue |
11+
|---|---|
12+
| **Flat or traffic-based** fees for a **period** the operator sets | #931 paid peering terms (`amount`, `unit`, `period` in NIP-11) |
13+
| **Never per event** | #931 out of scope: no per-event payments |
14+
| **Lightning**, **sats**, **between relays** | #931 / #937 settlement between peer relays |
15+
| **Cache window** operator-configured; “the last hour” is an **example** | #931 cache peers + rolling-window scope in NIP-11 |
16+
| **Ask an archive** outside the window | #931 cache miss must not imply “event does not exist” |
17+
| **Sell feeds** to other relays | #931 archive/backbone peers; paid terms |
18+
| No operator names, adoption stats, or network metrics | #942 production notes |
19+
20+
---
21+
22+
## Scene 1 · PEOPLE (frames 0–240)
23+
24+
**Beat:** Run a relay for your people, not the whole network.
25+
26+
| Element | Copy |
27+
|---|---|
28+
| Kicker | `01 — YOUR PEOPLE` |
29+
| Headline | Run a relay for your people. |
30+
| Accent | Not the whole network. |
31+
| Card 1 | **SCOPE** · Your people · the people you follow |
32+
| Card 2 | **PEERING** · Their relays · the ones your people use |
33+
| Card 3 | **FETCHES** · The rest · on demand |
34+
| Payoff | Feel complete without ingesting everything. |
35+
36+
**Issue gloss:** Community relay peers for its scope and fetches the rest on demand.
37+
38+
---
39+
40+
## Scene 2 · WORTH (frames 240–520)
41+
42+
**Beat:** Your archive is worth something now.
43+
44+
| Element | Copy |
45+
|---|---|
46+
| Kicker | `02 — YOUR ARCHIVE` |
47+
| Headline | Your archive / is worth something now. |
48+
| Sub | Sell feeds to other relays — settled in sats. |
49+
| Panel | PEERING TERMS · **PER PERIOD** chip |
50+
| Terms | fee: flat or traffic-based — you set the terms · period: you set the length · settlement: Lightning, in sats, between relays · per event: **never** |
51+
| Payoff | A product, not a cost center. |
52+
53+
**Issue gloss:** Deep history can be sold to other relays; completeness becomes a product.
54+
55+
---
56+
57+
## Scene 3 · FAST (frames 520–760)
58+
59+
**Beat:** Fast, everywhere.
60+
61+
| Element | Copy |
62+
|---|---|
63+
| Kicker | `03 — HOT FEED` |
64+
| Headline | Fast, everywhere. |
65+
| Sub | The hot feed, near the readers. |
66+
| Track | OLDER THAN THE WINDOW · THE HOT FEED |
67+
| Note A | BEFORE THIS CUT · Ask an archive. · outside the window |
68+
| Note B | CACHE PEERS · A rolling window · the last hour, or whatever you configure |
69+
| Payoff | Small relays feel instant — without owning the firehose. |
70+
71+
**Issue gloss:** Cache peers holding only the last hour put hot feed near readers.
72+
73+
---
74+
75+
## Scene 4 · MIDDLE (frames 760–980)
76+
77+
**Beat:** Relays that only talk to relays.
78+
79+
| Element | Copy |
80+
|---|---|
81+
| Kicker | `04 — THE MIDDLE` |
82+
| Headline | Relays that only talk to relays. |
83+
| Accent | The network can grow a middle. |
84+
| Archive | Deep history · backbone infrastructure |
85+
| Cache | Rolling window · hot feed near readers |
86+
| Edge | **EDGE** · Readers connect · the relay readers connect to |
87+
| Payoff | Infrastructure behind. Users in front. |
88+
89+
**Issue gloss:** Archives and caches as infrastructure; edge relays facing readers.
90+
91+
---
92+
93+
## Scene 5 · CLOSE (frames 980–1200)
94+
95+
**Beat:** Inversion — one thing well; the network assembles the rest.
96+
97+
| Element | Copy |
98+
|---|---|
99+
| Contrast | Today, every relay tries to be everything. |
100+
| Headline | Each relay gets to be one thing well. |
101+
| Accent | The network assembles the rest. |
102+
| Lockup | [nostream mark] nostream relay peering |
103+
104+
---
105+
106+
## Site
107+
108+
After render: `pnpm run media` in `website/site` → `public/media/peering.mp4`, `peering-poster.webp`.
109+
Home section: `#peering` (`Peering.astro`).

‎website/hero-animation/package.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@
1616
"render:release": "tsx src/release-render.ts video very_high",
1717
"render:release:small": "tsx src/release-render.ts video low",
1818
"frames:release": "tsx src/release-render.ts frames 60 300 650 1000 1199",
19+
"render:peering": "tsx src/peering-render.ts video very_high",
20+
"render:peering:small": "tsx src/peering-render.ts video low",
21+
"frames:peering": "tsx src/peering-render.ts frames 150 470 680 940 1100 1199",
1922
"preview:admin": "tsx src/admin-render.ts preview --open",
2023
"render:admin": "tsx src/admin-render.ts video very_high",
2124
"render:admin:small": "tsx src/admin-render.ts video low",

0 commit comments

Comments
 (0)