Skip to content

edufeed-org/onboarding-tool

Repository files navigation

Nostr Onboarding Tool

Die umfassende Plattform fΓΌr den Einstieg in das Nostr-Netzwerk

Das Nostr Onboarding Tool ist eine benutzerfreundliche Webanwendung, die neuen Nutzern und Plattformbetreibenden den Einstieg in das dezentrale Nostr-Protokoll erleichtert. Mit interaktiven Anleitungen, automatischer SchlΓΌsselverwaltung und umfassenden Ressourcen macht diese Anwendung den Start ins Nostr-Γ–kosystem so einfach wie mΓΆglich.

🎯 Vision

Nostr ist die Zukunft der dezentralen Kommunikation – ein offenes Protokoll ohne zentrale Kontrolle, Zensur oder Datenkraken. Doch fΓΌr viele Neueinsteiger ist das Konzept kryptographischer SchlΓΌssel, dezentraler Relays und Event-basierter Architektur ΓΌberwΓ€ltigend.

Unsere Vision: Jeder Mensch sollte Zugang zu zensurresistenten, dezentralen sozialen Netzwerken haben – ohne technische Barrieren.

Das Nostr Onboarding Tool:

  • Vereinfacht den Einstieg durch gefΓΌhrte Registrierung und SchlΓΌsselverwaltung
  • ErklΓ€rt die Konzepte und MΓΆglichkeiten des Nostr-Protokolls verstΓ€ndlich
  • BefΓ€higt sowohl Endnutzer als auch Entwickler, das Nostr-Γ–kosystem zu nutzen und zu erweitern
  • Demokratisiert den Zugang zu dezentraler Technologie

FΓΌr wen ist dieses Tool?

Endnutzer:

  • Erste Schritte mit Nostr ohne technische Vorkenntnisse
  • Sichere SchlΓΌsselverwaltung und Account-Erstellung
  • EinfΓΌhrung in Social Media, Messaging, Lightning-Zahlungen und Communities

Plattformbetreibende & Entwickler:

  • Technische Ressourcen und Dokumentation zu NIPs (Nostr Implementation Possibilities)
  • Integration von Nostr in bestehende Plattformen
  • Beispiele fΓΌr Kanban-Boards, Kalender, MarktplΓ€tze und mehr

✨ Features

πŸš€ GefΓΌhrtes Onboarding

  • Interaktiver Willkommensbildschirm: Ansprechende EinfΓΌhrung in Nostr mit animierten Gradient-Überschriften und klaren Kernbotschaften
  • Nutzertyp-Auswahl: Personalisierte Pfade fΓΌr Endnutzer und Plattformbetreibende mit visuellen Kartendesigns
  • Sichere SchlΓΌsselerstellung: Automatische Generierung von nsec/npub-SchlΓΌsselpaaren mit Sicherheitshinweisen
  • SchlΓΌssel-Download: Exportfunktion fΓΌr sicheres Offline-Backup der SchlΓΌssel
  • Automatischer Login: Nahtlose Integration nach der Registrierung

🎨 Benutzerfreundliches Interface

  • Dark/Light Mode: VollstΓ€ndige Theme-UnterstΓΌtzung mit eleganten FarbΓΌbergΓ€ngen
  • Responsive Design: Optimiert fΓΌr Desktop, Tablet und Mobile
  • Moderne UI-Komponenten: 48+ shadcn/ui Komponenten mit Radix UI
  • Intuitive Navigation: React Router mit ScrollToTop-FunktionalitΓ€t
  • Barrierefreiheit: WCAG 2.1 AA-konforme Implementierung

πŸ“š Umfassende Dokumentation

  • Feature-Übersicht: Detaillierte ErklΓ€rungen zu Social Media, Kalender, Direktnachrichten, Lightning-Zahlungen, Communities und mehr
  • Technische Ressourcen: Links zu NIPs, SDKs, Relay-Implementierungen und Entwickler-Tools
  • Best Practices: Anleitungen zu Event-Arten, Relay-Architektur, Tagging und Metadaten

πŸ‘€ User Dashboard

Nach erfolgreicher Registrierung erhalten Nutzer Zugang zu:

  • Profilverwaltung: Bearbeitung des Nostr-Profils mit EditProfileForm
  • Quick Actions: Erste Nachricht posten, Nutzern folgen, Events entdecken
  • Feature-Katalog: Übersicht ΓΌber Messaging, Reactions, Kalender, Lightning, Communities
  • Lernressourcen: Schritt-fΓΌr-Schritt-Anleitungen fΓΌr typische AnwendungsfΓ€lle

🏒 Plattform-Dashboard

Entwickler und Betreiber erhalten:

  • NIP-Referenzen: Direkte Links zur offiziellen Nostr-Protokoll-Dokumentation
  • SDK-Integration: Nostrify, nostr-tools und weitere JavaScript/TypeScript-Bibliotheken
  • Relay-Guides: Informationen zum Betrieb eigener Relay-Server
  • Integration-Beispiele: Konkrete Implementierungen fΓΌr Kanban-Boards, Event-Systeme, Metadaten-Strukturen
  • Event-Arten erklΓ€rt: Übersicht ΓΌber Kind 0-31923 mit AnwendungsfΓ€llen

πŸ” Sicherheit & Datenschutz

  • Client-seitige SchlΓΌsselerzeugung: Private Keys verlassen niemals den Browser wΓ€hrend der Erstellung
  • NIP-07 Browser Signing: UnterstΓΌtzung fΓΌr Browser-Extensions wie Alby, nos2x
  • NIP-44 VerschlΓΌsselung: Moderne VerschlΓΌsselung fΓΌr Direktnachrichten

πŸ’¬ Kommunikationsfeatures

  • NIP-04 Direktnachrichten: Legacy-VerschlΓΌsselung fΓΌr maximale KompatibilitΓ€t
  • NIP-17 Private Messaging: Moderne, verbesserte PrivatsphΓ€re-Implementierung
  • Kommentarsystem (NIP-22): Threaded Comments mit CommentsSection-Komponente
  • AI-Chat-Integration: Shakespeare API fΓΌr KI-gestΓΌtzte Konversationen

⚑ Lightning-Integration

  • WebLN-UnterstΓΌtzung: Browser-Wallet-Integration ΓΌber Alby
  • Nostr Wallet Connect (NIP-47): Remote-Wallet-Verbindung
  • Zaps (NIP-57): Mikrozahlungen direkt an Content-Ersteller
  • Wallet-Modal: Benutzerfreundliche Zahlungsinterfaces

πŸ› οΈ Tech Stack

Frontend-Framework

  • React 18.x: Moderne React-Version mit Hooks, Concurrent Rendering und Suspense
  • TypeScript: Typ-sichere Entwicklung fΓΌr bessere Code-QualitΓ€t
  • Vite: Schneller Build-Prozess und Hot Module Replacement

Styling & UI

  • TailwindCSS 3.x: Utility-First CSS-Framework
  • shadcn/ui: 48+ zugΓ€ngliche UI-Komponenten basierend auf Radix UI
  • Radix UI: Primitive UI-Komponenten fΓΌr Accessibility
  • class-variance-authority: Type-safe Varianten-Management
  • Lucide Icons: Umfangreiche Icon-Bibliothek

Nostr-Integration

  • Nostrify: Nostr-Protocol-Framework fΓΌr Web (v0.47.1)
  • @nostrify/react: React-Hooks fΓΌr Nostr (v0.2.17)
  • nostr-tools: Kryptographie, NIP-19-Dekodierung, Event-Validierung

State Management & Data Fetching

  • TanStack Query (React Query): Server-State-Management, Caching, Infinite Scroll
  • React Context API: Globaler State fΓΌr AppContext, DMContext, NWCContext
  • LocalStorage Hooks: Persistenter State fΓΌr Einstellungen und Relay-Konfiguration

Routing & SEO

  • React Router v6: Deklaratives Client-Side-Routing
  • @unhead/react: SEO-Meta-Tags und Head-Management
  • ScrollToTop: Automatisches Scrollen bei Route-Wechsel

Formulare & Validierung

  • React Hook Form: Performante Formular-Verwaltung
  • Zod: Schema-Validierung mit TypeScript-Integration
  • @hookform/resolvers: Zod-Integration fΓΌr React Hook Form

Lightning & Wallet

  • @getalby/sdk: Alby SDK fΓΌr Lightning-Zahlungen
  • WebLN: Browser-Wallet-Standard
  • NWC (Nostr Wallet Connect): Remote-Wallet-Verbindungen

Testing

  • Vitest: Schnelle Unit-Tests mit jsdom-Umgebung
  • React Testing Library: Component-Tests mit Accessibility-Focus
  • @testing-library/jest-dom: Custom Matchers fΓΌr DOM-Tests

Entwickler-Tools

  • ESLint: Code-Linting mit Custom Rules
  • PostCSS: CSS-Transformationen mit Autoprefixer
  • TypeScript Compiler: Typ-Checking vor dem Build

Deployment

  • NostrDeploy CLI: One-Command-Deployment auf NostrDeploy.com
  • Vercel/Netlify: Alternative Hosting-Plattformen mit _redirects-Konfiguration
  • GitHub Pages: Deployment auf GitHub Pages via GitHub Actions

πŸ“ Projektstruktur

src/
β”œβ”€β”€ pages/                      # Hauptseiten der Anwendung
β”‚   β”œβ”€β”€ WelcomePage.tsx        # Einstiegsseite mit Hero-Section
β”‚   β”œβ”€β”€ FeaturesPage.tsx       # Feature-Übersicht
β”‚   β”œβ”€β”€ RegisterPage.tsx       # SchlΓΌsselerstellung und Login
β”‚   β”œβ”€β”€ UserDashboardPage.tsx  # Dashboard fΓΌr Endnutzer
β”‚   └── PlatformDashboardPage.tsx # Dashboard fΓΌr Entwickler
β”‚
β”œβ”€β”€ components/                 # Wiederverwendbare Komponenten
β”‚   β”œβ”€β”€ auth/                  # Authentifizierung
β”‚   β”‚   β”œβ”€β”€ LoginArea.tsx      # Login/Signup UI
β”‚   β”‚   β”œβ”€β”€ LoginDialog.tsx    # Login-Modal
β”‚   β”‚   β”œβ”€β”€ SignupDialog.tsx   # Registrierungs-Modal
β”‚   β”‚   └── AccountSwitcher.tsx # Account-Verwaltung
β”‚   β”‚
β”‚   β”œβ”€β”€ dm/                    # Direct Messaging
β”‚   β”‚   β”œβ”€β”€ DMMessagingInterface.tsx
β”‚   β”‚   β”œβ”€β”€ DMConversationList.tsx
β”‚   β”‚   β”œβ”€β”€ DMChatArea.tsx
β”‚   β”‚   └── DMStatusInfo.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ comments/              # Kommentarsystem (NIP-22)
β”‚   β”‚   β”œβ”€β”€ CommentsSection.tsx
β”‚   β”‚   β”œβ”€β”€ Comment.tsx
β”‚   β”‚   └── CommentForm.tsx
β”‚   β”‚
β”‚   β”œβ”€β”€ ui/                    # shadcn/ui Komponenten (48+)
β”‚   β”‚   β”œβ”€β”€ button.tsx
β”‚   β”‚   β”œβ”€β”€ card.tsx
β”‚   β”‚   β”œβ”€β”€ dialog.tsx
β”‚   β”‚   β”œβ”€β”€ input.tsx
β”‚   β”‚   └── ... (weitere 44+ Komponenten)
β”‚   β”‚
β”‚   β”œβ”€β”€ AppProvider.tsx        # App-weiter State-Provider
β”‚   β”œβ”€β”€ NostrProvider.tsx      # Nostr-Client-Provider
β”‚   β”œβ”€β”€ DMProvider.tsx         # Direct-Messaging-Provider
β”‚   β”œβ”€β”€ EditProfileForm.tsx    # Profilbearbeitung
β”‚   β”œβ”€β”€ RelayListManager.tsx   # NIP-65 Relay-Verwaltung
β”‚   β”œβ”€β”€ NostrSync.tsx          # Relay-Sync bei Login
β”‚   β”œβ”€β”€ NoteContent.tsx        # Rich-Text-Rendering fΓΌr Notes
β”‚   β”œβ”€β”€ ZapButton.tsx          # Lightning-Zap-Button
β”‚   β”œβ”€β”€ ZapDialog.tsx          # Zap-Zahlungs-Dialog
β”‚   └── WalletModal.tsx        # Wallet-Auswahl-Modal
β”‚
β”œβ”€β”€ hooks/                     # Custom React Hooks
β”‚   β”œβ”€β”€ useNostr.ts           # Nostr Query/Publish
β”‚   β”œβ”€β”€ useAuthor.ts          # User-Profile abrufen
β”‚   β”œβ”€β”€ useCurrentUser.ts     # Aktuell eingeloggter User
β”‚   β”œβ”€β”€ useNostrPublish.ts    # Event-Publishing
β”‚   β”œβ”€β”€ useUploadFile.ts      # Blossom-Server-Upload
β”‚   β”œβ”€β”€ useZaps.ts            # Lightning-Zaps
β”‚   β”œβ”€β”€ useWallet.ts          # Wallet-Detection (WebLN + NWC)
β”‚   β”œβ”€β”€ useNWC.ts             # Nostr Wallet Connect
β”‚   β”œβ”€β”€ useComments.ts        # Kommentare laden
β”‚   β”œβ”€β”€ usePostComment.ts     # Kommentar erstellen
β”‚   β”œβ”€β”€ useDMContext.ts       # Direct-Messaging-Context
β”‚   β”œβ”€β”€ useConversationMessages.ts # Paginierte DM-Messages
β”‚   β”œβ”€β”€ useShakespeare.ts     # AI-Chat-Integration
β”‚   β”œβ”€β”€ useTheme.ts           # Theme-Verwaltung
β”‚   β”œβ”€β”€ useToast.ts           # Toast-Benachrichtigungen
β”‚   β”œβ”€β”€ useLocalStorage.ts    # Persistenter State
β”‚   β”œβ”€β”€ useLoggedInAccounts.ts # Multi-Account-Management
β”‚   β”œβ”€β”€ useLoginActions.ts    # Login/Logout-Actions
β”‚   └── useIsMobile.tsx       # Responsive-Helper
β”‚
β”œβ”€β”€ contexts/                  # React Context Definitions
β”‚   β”œβ”€β”€ AppContext.ts         # App-Konfiguration & Theme
β”‚   β”œβ”€β”€ DMContext.ts          # Direct-Messaging-State
β”‚   └── NWCContext.tsx        # Nostr-Wallet-Connect-State
β”‚
β”œβ”€β”€ lib/                       # Utility-Funktionen
β”‚   β”œβ”€β”€ utils.ts              # Allgemeine Hilfsfunktionen
β”‚   β”œβ”€β”€ genUserName.ts        # Nutzer-Display-Names generieren
β”‚   β”œβ”€β”€ dmConstants.ts        # DM-Protokoll-Konstanten
β”‚   β”œβ”€β”€ dmMessageStore.ts     # Lokaler DM-Speicher
β”‚   └── dmUtils.ts            # DM-Helper-Funktionen
β”‚
β”œβ”€β”€ test/                      # Testing-Setup
β”‚   β”œβ”€β”€ TestApp.tsx           # Test-Wrapper mit Providern
β”‚   β”œβ”€β”€ setup.ts              # Vitest-Konfiguration
β”‚   └── ErrorBoundary.test.tsx # Beispiel-Tests
β”‚
β”œβ”€β”€ App.tsx                    # Haupt-App-Komponente mit Providern
β”œβ”€β”€ AppRouter.tsx             # React Router-Konfiguration
β”œβ”€β”€ main.tsx                  # App-Entry-Point
└── index.css                 # Globale Styles & Theme-Variablen

docs/                          # Erweiterte Dokumentation
β”œβ”€β”€ AI_CHAT.md                # Shakespeare API-Integration
β”œβ”€β”€ NOSTR_COMMENTS.md         # Kommentarsystem-Implementierung
β”œβ”€β”€ NOSTR_DIRECT_MESSAGES.md  # DM-System (NIP-04 & NIP-17)
└── NOSTR_INFINITE_SCROLL.md  # Feed-Pagination

eslint-rules/                  # Custom ESLint-Regeln
β”œβ”€β”€ no-inline-script.js       # Verhindert Inline-Scripts
β”œβ”€β”€ no-placeholder-comments.js # Warnt bei Placeholder-Kommentaren
└── require-webmanifest.js    # Erzwingt Web-Manifest

public/                        # Statische Assets
β”œβ”€β”€ manifest.webmanifest      # PWA-Manifest
β”œβ”€β”€ robots.txt                # SEO-Konfiguration
└── _redirects                # Netlify/Vercel-Routing

AGENTS.md                      # Umfassende Dokumentation fΓΌr AI-Agenten

πŸš€ Installation & Entwicklung

Voraussetzungen

  • Node.js 18+ und npm
  • Grundkenntnisse in React (fΓΌr Entwickler)

Lokale Entwicklung starten

# Repository klonen
git clone https://github.com/edufeed-org/onboarding-tool.git
cd onboarding-tool

# AbhΓ€ngigkeiten installieren und Dev-Server starten
npm run dev

Die Anwendung lΓ€uft nun unter http://localhost:5173

Build fΓΌr Produktion

# Optimierten Production-Build erstellen
npm run build

# Deployment auf NostrDeploy.com
npm run deploy

Tests ausfΓΌhren

# TypeScript-PrΓΌfung, Linting und Tests
npm test

πŸ“š WeiterfΓΌhrende Dokumentation

Externe Ressourcen

🎨 Design-Prinzipien

  • Benutzerfreundlichkeit ΓΌber alles: Komplexe Konzepte werden vereinfacht, ohne technische Genauigkeit zu verlieren
  • Vertrauen durch Transparenz: Sicherheitshinweise und ErklΓ€rungen bei kritischen Aktionen
  • Responsive & Accessible: Funktioniert auf allen GerΓ€ten und fΓΌr alle Nutzer
  • Visuell ansprechend: Moderne Gradients, Animationen und durchdachte Typografie

🀝 Contributing

BeitrΓ€ge sind willkommen! Das Projekt ist Open Source und lebt von der Community.

Richtlinien

  • Folge den bestehenden TypeScript- und React-Patterns
  • Keine any-Types – immer typsicher bleiben
  • Schreibe Tests fΓΌr neue Features
  • Dokumentiere neue Hooks und Komponenten

πŸ“„ Lizenz

Open Source – helfen Sie mit, das dezentrale Web zu gestalten!

Releases

No releases published

Contributors