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> |
||
|---|---|---|
| .claude | ||
| app | ||
| content | ||
| docs/superpowers | ||
| preview/spa-mini | ||
| scripts | ||
| static | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
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 nachmaingemerged.hugo-archive— eingefrorener Zustand der alten Hugo-Seite als Orphan-Branch (ein Commit ohne Historie). Nicht mehr weiterentwickelt. Wiederherstellbar übergit 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.