Go to file
Jörg Lohrer 3b0f059cea spa(phase 5, tasks 26-32): reactions, replies, nip-07 kommentare, e2e
Neue Komponenten unter $lib/components/:
- Reactions.svelte: lädt kind:7-Aggregation via loadReactions, rendert
  Chips mit Emoji + Count. +/- werden zu 👍/👎 gemappt.
- ReplyItem.svelte: einzelner Kommentar mit Author-Npub-Prefix + Datum.
- ReplyList.svelte: lädt kind:1-Replies, merged mit optimistic-Props
  (dedup per id), sortiert chronologisch.
- ReplyComposer.svelte: Textarea + Senden-Button. Nutzt NIP-07-Wrapper
  (getPublicKey, signEvent), baut kind:1-Event mit a/e/p-Tags, pusht
  via pool.publish() zu allen Read-Relays. Fehlertolerant: zeigt
  Hinweis, wenn NIP-07-Extension fehlt.

Integration in PostView: Reactions, Composer, ReplyList unterhalb des
Artikel-Bodys. Optimistisches Reply-Pattern: Composer.onPublished
pushed signed event in PostView-local $state, ReplyList merged mit
fetched events.

Playwright-E2E:
- playwright.config.ts mit Dev-Server-Auto-Start
- home.test.ts: Profil + Beitragsliste sichtbar
- post.test.ts: Titel + Body + Legacy-URL-Redirect

Alle 3 E2E-Tests grün. npm run check: 600 files, 0 errors.
Deploy live auf svelte.joerg-lohrer.de (Phase 5 inklusive).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 17:51:57 +02:00
.claude main: hugo-artefakte entfernt, bereit für nostr-spa-entwicklung 2026-04-15 09:51:05 +02:00
app spa(phase 5, tasks 26-32): reactions, replies, nip-07 kommentare, e2e 2026-04-15 17:51:57 +02:00
content normalize: slugs lowercase und url-kompatibel 2026-04-15 10:38:38 +02:00
docs/superpowers plan: sveltekit-spa implementierung (35 tasks, 6 phasen) 2026-04-15 14:57:26 +02:00
preview/spa-mini spike(spa-mini): legacy-hugo-urls auf kurze form normalisieren 2026-04-15 14:44:25 +02:00
scripts spa: deploy-script und htaccess für svelte.joerg-lohrer.de 2026-04-15 15:59:46 +02:00
static comment integration ohne styling 2025-02-12 19:43:36 +01:00
.gitignore spike(spa-mini): vanilla-html viewer für einen einzelnen nostr-post 2026-04-15 13:53:16 +02:00
LICENSE Initial commit 2024-11-06 15:55:54 +01:00
README.md main: hugo-artefakte entfernt, bereit für nostr-spa-entwicklung 2026-04-15 09:51:05 +02:00

README.md

joerg-lohrer.de

Persönliche Webseite. Befindet sich in der Transition von einer Hugo-basierten, statischen Seite hin zu einer SvelteKit-SPA, die Blog-Posts live aus signierten Nostr-Events (NIP-23, kind:30023) rendert.

Branches

  • main — aktuelle Arbeit. Enthält Markdown-Content (content/posts/), Specs (docs/), Assets (static/) und wird im Lauf der Migration um die SvelteKit-SPA und das Publish-Skript erweitert.
  • spa — Feature-Branch für die SvelteKit-SPA-Entwicklung. Wird bei Cutover nach main gemerged.
  • hugo-archive — eingefrorener Zustand der alten Hugo-Seite als Orphan-Branch (ein Commit ohne Historie). Nicht mehr weiterentwickelt. Wiederherstellbar über git checkout hugo-archive && hugo build.

Spec

Architektur und Design-Entscheidungen: docs/superpowers/specs/2026-04-15-nostr-page-design.md

Struktur auf main

content/posts/      Markdown-Posts (Quelle für Nostr-Events)
static/             Site-Assets (Favicons, Profilbild)
docs/               Specs und Architektur-Dokumentation
.claude/            Claude-Code-Sessions (als Transparenz-Spur)

Lizenz

Siehe LICENSE.