joerglohrerde/docs/STATUS.md

106 lines
4.6 KiB
Markdown
Raw Permalink Normal View History

# Projekt-Status: joerg-lohrer.de → Nostr-basierte SPA
**Stand:** 2026-04-15
## Kurzfassung
Jörg Lohrers persönliche Webseite wird von einem Hugo-basierten statischen
Site-Generator zu einer dezentralen Nostr-basierten SPA überführt. Posts
existieren als signierte Events (NIP-23, `kind:30023`) auf Public-Relays und
werden zur Laufzeit im Browser gerendert.
## Drei parallele Webseiten
| URL | Status | Rolle |
|---|---|---|
| `https://joerg-lohrer.de/` | live, unverändert | **Hugo-Altbestand** (wird noch nicht ersetzt) |
| `https://spa.joerg-lohrer.de/` | live | **Vanilla-HTML-Mini-Spike** (Proof of Concept, ~250 Zeilen HTML+JS) |
| `https://svelte.joerg-lohrer.de/` | live | **SvelteKit-SPA** (35-Task-Plan komplett) |
Die SvelteKit-SPA unter `svelte.joerg-lohrer.de` ist die Ziel-Implementierung.
`spa.joerg-lohrer.de` bleibt als schlanke Referenz erhalten. Hugo läuft weiter,
bis die Publish-Pipeline steht und der Cutover auf die Hauptdomain erfolgt.
## Was auf Nostr liegt
- **Autoren-Pubkey:** `npub1f7jar3qnu269uyx5p0e4v24hqxjnxysxudvujza2ur5ehltvdeqsly2fx9`
(hex: `4fa5d1c413e2b45e10d40bf3562ab701a5331206e359c90baae0e99bfd6c6e41`)
- **Publizierte Events:** ~10 Langform-Posts (`kind:30023`), darunter
`dezentrale-oep-oer`, `offenheit-das-wesentliche`, `gleichnis-vom-saemann`,
`bibelfussball`, `dampfnudeln` u. a.
- **Relay-Liste** (`kind:10002`): `relay.damus.io`, `nos.lol`,
`relay.primal.net`, `relay.tchncs.de`, `relay.edufeed.org`
- **Blossom-Server** (`kind:10063`): `blossom.edufeed.org`, `blossom.primal.net`
Bilder des ersten „experimentell publizierten" Posts (`dezentrale-oep-oer`)
liegen auf Blossom. Weitere 17 Altposts haben ihre Bilder noch unter dem
ursprünglichen Hugo-Permalink auf All-Inkl.
## Repo-Struktur
```
joerglohrerde/
├── content/posts/ # Markdown-Quelle (18 Posts, wird vom Publish-Skript gelesen)
├── app/ # SvelteKit-SPA (Ziel-Implementation)
├── preview/spa-mini/ # Vanilla-HTML-Mini-Spike (Referenz)
├── scripts/
│ └── deploy-svelte.sh # FTPS-Deploy nach svelte.joerg-lohrer.de
├── docs/
│ ├── STATUS.md # Dieses Dokument
│ ├── HANDOFF.md # Wie man hier weitermacht
│ └── superpowers/
│ ├── specs/ # SPA-Spec + Publish-Pipeline-Spec
│ └── plans/ # SPA-Implementation-Plan (35 Tasks, abgeschlossen)
├── .claude/
│ ├── skills/ # Repo-spezifischer Claude-Skill
│ └── settings.local.json # Claude-Session-State (nicht committen? aktuell schon)
└── .env.local # Gitignored: FTP-Creds + Bunker-URL
```
## Branch-Layout (Git)
- **`main`** — kanonischer Zweig. Enthält Content, Specs, Pläne, Deploy-Scripts,
`.claude/`-Skill. Schlanker als früher (kein Hugo-Artefakt mehr).
- **`spa`** — aktueller Arbeits-Branch. SvelteKit-SPA in `app/` komplett
implementiert und live. **Aktuell vor `main` mit allen `spa:`-Commits.**
- **`hugo-archive`** — Orphan-Branch mit dem letzten funktionierenden
Hugo-Zustand, eingefroren. Rollback über `git checkout hugo-archive && hugo build`.
## Setup-Zustand
Einmalig manuell erledigt:
- ✅ Amber-Bunker-URL in `.env.local` als `BUNKER_URL`
- ✅ SPA-FTP-Creds (`spa.joerg-lohrer.de`) in `.env.local` als `SPA_FTP_*`
- ✅ SvelteKit-FTP-Creds (`svelte.joerg-lohrer.de`) in `.env.local` als `SVELTE_FTP_*`
-`kind:10002`-Event publiziert
-`kind:10063`-Event publiziert
- ✅ Subdomains mit TLS + HSTS (`max-age=300`)
Alles in `.env.local` — gitignored, nicht committet.
## Offene Punkte / Nicht-in-Scope
- **Publish-Pipeline** (Spec vorhanden unter `docs/superpowers/specs/2026-04-15-publish-pipeline-design.md`, Plan noch nicht geschrieben)
- **Menü-Navigation** in der SPA (Home / Archiv / Impressum / Kontakt)
- **Impressum-Seite** (braucht rechtlichen Text)
- **Meta-Stubs für Social-Previews und SEO** (wird Teil der Publish-Pipeline)
- **SSH-Zugang zu All-Inkl** (laut Notiz von Jörg: Premium-Tarif im Kommen → rsync statt FTPS möglich)
- **Cutover auf `joerg-lohrer.de`** (Hauptdomain bekommt dann die SvelteKit-SPA)
## Live-Verifikation
Jederzeit:
```sh
curl -sI https://svelte.joerg-lohrer.de/ | head -3
curl -sI https://spa.joerg-lohrer.de/ | head -3
```
## Kontakt zur Implementierung
Alle Design-Entscheidungen in:
- `docs/superpowers/specs/2026-04-15-nostr-page-design.md` (SPA)
- `docs/superpowers/specs/2026-04-15-publish-pipeline-design.md` (Publish)
- `docs/superpowers/plans/2026-04-15-spa-sveltekit.md` (35-Task-Plan, abgeschlossen)
Für die nächste Session: `docs/HANDOFF.md` lesen.