xynap.me — Personal Space Vision¶
Status: Konzeption (v1.0) | Erstellt: 2026-03-11 Domain: xynap.me | Bau: Genesis Framework
Vision¶
xynap.me ist ein persoenlicher digitaler Raum mit Blog-Charakter, der durch Link-basiertes Sharing organisch eine Gemeinschaft bildet. Kein Social Network — ein Personal Network.
Leitsatz
Dein Raum. Deine Daten. Deine Verbindungen.
Domain-Strategie¶
Die vier xynap-Domains bilden zusammen ein kohaerentes Oekosystem:
| Domain | Motto | Zielgruppe |
|---|---|---|
| xynap.tech | "Was wir koennen" | B2B, Partner, Technologie-Showcase |
| xynap.cloud | "Wo Kunden arbeiten" | SaaS, Business, Multi-Tenant |
| xynap.me | "Mein digitaler Raum" | B2C, persoenlich, privater Space |
| xynap.world | "Die Welt entdecken" | B2C, oeffentliche Community, Discovery |
Hierarchie: .me → .world¶
xynap.me xynap.world
┌──────────────────┐ ┌──────────────────────────┐
│ PRIVAT │ │ OEFFENTLICH │
│ Mein Raum │ ──────► │ Die Welt │
│ Mein Blog │ oeffentl. │ Alle oeffentlichen Posts │
│ Meine Dateien │ Inhalte │ Themen-Hubs │
│ Meine Links │ fliessen │ Trending (kuratiert) │
│ │ in │ Regionale Communities │
│ max.xynap.me │ │ Events & Gruppen │
└──────────────────┘ └──────────────────────────┘
Basis (jeder User) Aggregation (opt-in)
xynap.me = Du schreibst, teilst, kontrollierst — alles privat by default. xynap.world = Wer will, macht Inhalte oeffentlich → erscheinen auf xynap.world.
Kein Zwang zur Oeffentlichkeit. xynap.me funktioniert komplett ohne xynap.world.
Abgrenzung¶
| Plattform | Problem | xynap.me Loesung |
|---|---|---|
| Algorithmus, Werbung, Datenmissbrauch | Kein Algorithmus, keine Werbung, eigene Daten | |
| Medium | Plattform besitzt Content, Paywall | Du besitzt deinen Content, kein Vendor Lock-in |
| WordPress | Isoliert, kein sozialer Layer | Foederierte Vernetzung zwischen Spaces |
| Tumblr | Veraltet, chaotisch | Moderne UX, strukturierte Inhalte |
| Mastodon | Technisch, fragmentiert | Einfach wie Instagram, offen wie Mastodon |
Kernkonzepte¶
1. Alles privat by default¶
Jeder Inhalt ist privat, bis der Besitzer ihn teilt. Drei Sichtbarkeitsstufen:
| Stufe | Bedeutung |
|---|---|
| Privat | Nur du siehst es |
| Per Link | Wer den Link hat, kann sehen |
| Oeffentlich | Jeder kann es finden und lesen |
2. Link-basiertes Sharing¶
Inhalt erstellen → "Teilen" klicken → Link generieren → Versenden
│
▼
Optionen:
- Ablaufdatum (24h, 7d, 30d, unbegrenzt)
- Passwortschutz
- Zugriffslimit (max. N Aufrufe)
- Berechtigung (lesen / bearbeiten)
Versandwege: Copy-Paste, E-Mail, QR-Code, Direktnachricht. Kein Account noetig zum Ansehen — erst wenn man selbst teilen/kommentieren will.
3. Verbindungen (statt Follower)¶
Max teilt Album mit Lisa (per Link)
→ Lisa sieht Album
→ Lisa hat xynap.me Account → "Verbindung vorschlagen"
→ Max bestaetigt → Gegenseitige Verbindung
→ Beide sehen Updates des anderen im Feed
- Kein einseitiges Folgen — Verbindungen sind immer gegenseitig
- Kein Follower-Zaehler — Qualitaet vor Quantitaet
- Verbindungstypen: Freund, Familie, Kollege, Bekannter
4. Blog & Beitraege¶
Jeder Space ist gleichzeitig ein Blog:
| Element | Beschreibung |
|---|---|
| Beitrag | Text + Bilder + Dateien, Markdown-Editor, Tags |
| Sammlung | Gruppierte Beitraege (Rezepte, Reisen, Projekte) |
| Seite | Statische Seite (Ueber mich, Kontakt, Impressum) |
| Galerie | Foto-/Video-Album |
| Datei | Einzelne Datei zum Download |
Editor: Rich-Text (Tiptap/ProseMirror), Markdown-Modus, Drag&Drop fuer Medien.
5. Community durch Vernetzung¶
Einzelner Space
↓ Teilen per Link
Verbindung zwischen zwei Spaces
↓ Kommentare, Reaktionen
Kleine Gemeinschaft
↓ Themen-Tags, Explore-Seite
Organisch wachsende Community
Kommentare sind foederiert: Wenn Lisa auf Max' Beitrag kommentiert, erscheint der Kommentar bei BEIDEN.
Keine zentrale Timeline — jeder sieht nur Updates seiner Verbindungen, chronologisch sortiert.
6. Reaktionen (minimal)¶
| Reaktion | Bedeutung |
|---|---|
| Herz | Gefaellt mir |
| Kommentar | Antwort |
| Link | Geteilt/Verlinkt |
| Pin | Gespeichert/Gemerkt |
Keine Emoji-Flut, keine Angry-Reacts — bewusst reduziert.
URL-Schema¶
xynap.me → Landing Page + Registrierung
xynap.me/explore → Oeffentliche Spaces entdecken
max.xynap.me → Max' persoenlicher Space (Startseite/Profil)
max.xynap.me/japan-reise → Ein Blogbeitrag
max.xynap.me/rezepte → Eine Sammlung
max.xynap.me/s/abc123 → Geteilter Inhalt (Link-basiert)
max.xynap.me/kalender → Persoenlicher Kalender
max.xynap.me/dateien → Persoenlicher Cloud-Speicher
Technische Architektur¶
Basis: xynap Platform erweitern¶
xynap.me baut auf der bestehenden Platform-Infrastruktur auf:
┌─────────────────────────────────────────────┐
│ xynap.me │
│ (Vue 3 SPA + eigene API) │
├─────────────────────────────────────────────┤
│ Platform API (FastAPI) │
│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Spaces │ │ Posts │ │ Connections │ │
│ │ Module │ │ Module │ │ Module │ │
│ └─────────┘ └──────────┘ └──────────────┘ │
│ ┌─────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ Sharing │ │ Comments │ │ ActivityPub │ │
│ │ Module │ │ Module │ │ Federation │ │
│ └─────────┘ └──────────┘ └──────────────┘ │
├─────────────────────────────────────────────┤
│ Bestehende Infrastruktur │
│ Auth │ Files │ CalDAV │ CardDAV │ Mail │
└─────────────────────────────────────────────┘
Backend-Module (FastAPI)¶
app/core/spaces/ — Space, SpaceMember, SpaceSettings
app/core/posts/ — Post, PostMedia, PostTag, Collection, Markdown-Rendering
app/core/social/ — Connection, Reaction, Comment, Feed-Aggregation
app/core/sharing/ — ShareLink, Token-Generierung, Ablauf-Logik
app/core/federation/ — ActivityPub, WebFinger (Phase 2+)
Frontend (Vue 3 SPA)¶
/usr/local/xynap/me/frontend/src/
├── views/ — Landing, Explore, Feed, Space, Post, Editor, Gallery, Settings
├── components/ — space/, post/, social/, sharing/, layout/
├── composables/ — useSpace, useFeed, useEditor, useSharing, useConnections
├── stores/ — space, feed, me (Pinia)
└── i18n/ — de.json, en.json
Datenmodell (Kern-Tabellen)¶
| Tabelle | Zweck |
|---|---|
spaces |
Persoenliche Bereiche (slug → Subdomain) |
posts |
Beitraege mit Markdown, Sichtbarkeit, Tags |
collections |
Gruppierte Beitraege |
post_media |
Bilder, Videos, Dateien |
connections |
Gegenseitige Verbindungen |
comments |
Foederierte Kommentare |
reactions |
Herz, Bookmark, Share |
share_links |
Link-basiertes Teilen mit Token |
feed_entries |
Materialized Feed fuer schnelle Abfragen |
API-Endpunkte¶
# Spaces
GET/POST /api/v1/me/spaces — Eigenen Space laden/erstellen
PUT /api/v1/me/spaces/{id} — Space bearbeiten
GET /api/v1/me/spaces/{slug} — Oeffentlichen Space laden
# Posts
GET/POST /api/v1/me/posts — Beitraege CRUD
GET/PUT/DEL /api/v1/me/posts/{slug} — Einzelner Beitrag
# Feed + Social
GET /api/v1/me/feed — Persoenlicher Feed (paginated)
GET/POST /api/v1/me/connections — Verbindungen
POST /api/v1/me/posts/{id}/reactions — Reaktionen
GET/POST /api/v1/me/posts/{id}/comments — Kommentare
# Sharing
POST /api/v1/me/share — Share-Link erstellen
GET /api/v1/me/share/{token} — Geteilten Inhalt laden
# Explore + Media
GET /api/v1/me/explore — Oeffentliche Spaces/Posts
POST /api/v1/me/media/upload — Datei hochladen
Milestones¶
Phase 1: Fundament (Space + Blog)¶
| Milestone | Inhalt |
|---|---|
| M1: Space-Grundgeruest | Space Model + CRUD API, SpaceView, Subdomain-Routing, DNS Wildcard + Cert, Auth |
| M2: Blog-System | Post Model + Markdown-Rendering, PostEditor (Tiptap), Sammlungen, Media-Upload, Sichtbarkeitsstufen |
| M3: Share-Links | ShareLink Model + Token, ShareDialog, Passwortschutz, Ablaufdatum, oeffentliche SharedView |
Phase 2: Community¶
| Milestone | Inhalt |
|---|---|
| M4: Verbindungen | Connection Model, ConnectionsView, Verbindungstypen |
| M5: Feed + Interaktion | Feed-Aggregation, Reaktionen, Kommentare, Push-Notifications |
| M6: Explore + Discovery | Oeffentliche Suche, Tag-System, SEO (SSR) |
Phase 3: Integration¶
| Milestone | Inhalt |
|---|---|
| M7: Cloud-Integration | Dateien-Tab (WebDAV), Kalender-Tab (CalDAV), Kontakte (CardDAV) |
| M8: Federation | ActivityPub, WebFinger, Mastodon-kompatibel, RSS-Feed pro Space |
Bestehende Infrastruktur (wiederverwenden)¶
| Komponente | Nutzen fuer xynap.me |
|---|---|
| Auth (JWT + 2FA) | Login, Session |
| File Storage (WebDAV) | Dateien-Tab, Media-Upload |
| CalDAV / CardDAV | Kalender-Tab, Kontakte |
| Mail (Postfix/Dovecot) | Benachrichtigungen, Einladungen |
| Event-Bus | Push-Notifications |
| Comm-Hub | Chat/Nachrichten zwischen Spaces |
| RBAC + Scoping | Berechtigungen, Multi-Tenancy |
| i18n (de + en) | Mehrsprachige UI |
| CrowdSec + Traefik | DDoS-Schutz, Rate Limiting |
DSGVO & Sicherheit¶
Privacy by Design
Alle Daten gehoeren dem Nutzer. Kein Tracking, keine Analytics, keine externen CDNs.
| Prinzip | Umsetzung |
|---|---|
| Datensparsamkeit | Nur noetige Daten: Name, E-Mail, Inhalte |
| Datenportabilitaet | Vollstaendiger Export als ZIP (Posts, Medien, Kommentare) |
| Recht auf Loeschung | Space loeschen = ALLE Daten unwiderruflich geloescht |
| Keine externen Abhaengigkeiten | Alle Assets lokal, kein Google Fonts, kein CDN |
| Impressumspflicht | Oeffentliche Spaces → Impressum + Datenschutz Pflichtseiten |
| Sicherheitsmassnahme | Details |
|---|---|
| Content Sanitization | Server-side DOMPurify, kein rohes HTML |
| Rate Limiting | Posts: 10/h, Kommentare: 50/h, Uploads: 100MB/h |
| Spam-Schutz | 24h Cooldown fuer neue Accounts, Melde-System |
| Share-Link Tokens | 32 Zeichen, kryptographisch zufaellig |
| Audit-Trail | Alle relevanten Aktionen geloggt |
Design-Prinzipien¶
- Einfachheit — Wenn Oma es nicht versteht, ist es zu komplex
- Privatsphaere — Alles privat by default, bewusst teilen
- Keine Metriken — Kein Follower-Zaehler, keine Likes-Zahl oeffentlich
- Chronologisch — Kein Algorithmus, neueste zuerst
- Foederiert — Kein Walled Garden, ActivityPub-kompatibel
- Datenhoheit — Export jederzeit, Loeschung vollstaendig
- Kein Vendor Lock-in — Offene Standards (RSS, ActivityPub, WebDAV)