Lädt kind:0-Metadata-Event des Autors parallel zur Beitragsliste und
zeigt Avatar, Anzeigename, About-Text, NIP-05 und Website oben auf
der Übersichtsseite. Einzelpost-Seiten bleiben fokussiert, ohne
Profil-Header.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- tagsAll() dedupliziert Werte (Schutz gegen Clients, die doppelte
t-Tags ins Event schreiben; real beobachtet bei einem existierenden
Post mit zweimal "relilab").
- Cover-Bild in der Einzelansicht auf max 480px Breite + zentriert,
damit es nicht die gesamte Viewportbreite füllt.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Liest dtag aus URL-Pfad (SPA-Navigation via History-API) und zeigt
Liste auf /, Einzelpost auf /<dtag>/. Interne Links ohne Reload,
Browser-Back funktioniert.
Streaming-Load via pool.subscribeMany: Events werden angezeigt,
sobald das erste Relay antwortet, statt auf alle 5 zu warten.
Deutlich bessere Reaktionszeit.
Liste mit Cover-Thumbnail links, Titel+Summary+Datum rechts.
Responsive: unter 480px stapelt sich Bild über Text.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Erklärung zur Implementierungstechnik als Intro-Box direkt unter dem
Tech-Spike-Banner (statt versteckt im Footer).
- Footer reduziert auf einen Link zum Quellcode.
- Mobile-Anpassungen: kleinerer Title auf < 640px, weniger Padding,
Tags wrappen sauber, lange URLs/Code/Tabellen brechen ohne Overflow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tech-Spike unter preview/spa-mini/ — eine index.html, lädt
nostr-tools/marked/DOMPurify von esm.sh, holt das kind:30023-Event
mit dtag dezentrale-oep-oer von 5 public-relays, rendert clientseitig.
Beweist, dass die SPA-Architektur in der Praxis funktioniert, ohne
SvelteKit-Build-Pipeline.
Inhalt:
- index.html mit Loader, Renderer, Fehler-Handling
- .htaccess mit SPA-Fallback (relevant sobald gehostet)
- README mit Anleitung lokal/Deploy
.gitignore um .env*, logs/ ergänzt (für späteren Pipeline-Bedarf).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>