Skip to content

Kurzlink-Feature via Kind 30491#122

Merged
johappel merged 6 commits intocardsboardfrom
feature/urlshortener
Feb 21, 2026
Merged

Kurzlink-Feature via Kind 30491#122
johappel merged 6 commits intocardsboardfrom
feature/urlshortener

Conversation

@johappel
Copy link
Collaborator

@johappel johappel commented Feb 21, 2026

Zusammenfassung

Boards können jetzt über kurze, merkbare URLs geteilt werden (/b/mein-projekt statt langer naddr-Strings). Die Kurzlinks werden dezentral als Nostr Addressable Events (Kind 30491, NIP-33) publiziert — kein externer URL-Shortener-Service nötig.
#110

Motivation

  • Lange naddr-URLs sind nicht kommunizierbar und erzeugen große QR-Codes
  • Ein dezentraler Ansatz passt zur Nostr-Architektur des Projekts
  • Slug wird automatisch aus dem Board-Namen generiert (inkl. Umlaut-Behandlung)
grafik

Änderungen

Neue Dateien

  • src/routes/b/[slug]/+page.svelte — Resolver-Seite: Löst Kurzlink auf, leitet zum Board weiter (Loading/Error/NotFound States)
  • src/routes/b/[slug]/+page.ts — SvelteKit Load-Funktion (prerender = false)
  • docs/FEATURE/SHORTLINK.md — Vollständige Feature-Dokumentation (Architektur, API, Tests, Troubleshooting)

Geänderte Dateien

  • src/lib/utils/nostrEvents.ts — 5 neue Funktionen: slugifyBoardName(), createShortlinkEvent(), resolveShortlink(), resolveShortlinkBySlug(), EVENT_KINDS.SHORTLINK = 30491
  • src/lib/stores/kanbanStore.svelte.tspublishShortlink(slug) Methode
  • src/lib/components/board/ShareDialog.svelte — Kurzlink-Tab mit Auto-Publish UX (Copy/Open/QR publizieren automatisch)
  • src/lib/utils/nostrEvents.spec.ts — 26 neue Unit-Tests (Slug-Generierung, Event-Erstellung, Resolve-Funktionen mit NDK-Mocking)

Dokumentation

  • CHANGELOG.md, docs/CHANGELOG/2026-Q1.md, README.md, docs/_INDEX.md aktualisiert

Nostr Event-Struktur (Kind 30491)

{
  "kind": 30491,
  "tags": [
    ["d", "mein-projekt"],
    ["r", "naddr1qqpkucttqy28wumn8ghj7..."],
    ["a", "30301:<pubkey>:<boardId>"],
    ["title", "Mein Projekt"]
  ],
  "content": "naddr1qqpkucttqy28wumn8ghj7..."
}

@johappel johappel merged commit 010e086 into cardsboard Feb 21, 2026
4 checks passed
@johappel johappel deleted the feature/urlshortener branch February 21, 2026 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant