- .gitignore: .claude/docs, rules, commands tracken; settings.local weiter ignorieren - DOCUMENTATION.md: verbindliche Ablage functional/technical/working/issues - .claude/README.md: Agent-Einstieg; GITEA_ISSUES_INDEX aus MCP (Stand 2026-04-08) - Arbeitspapiere von docs/ nach .claude/docs/working/ verschoben - docs/MEMBERSHIP_SYSTEM.md als Stub; kanonisch technical/MEMBERSHIP_SYSTEM.md - CLAUDE.md Pflichtlektüre und Links angepasst; docs/README.md vereinfacht Made-with: Cursor
5.1 KiB
5.1 KiB
Zentrales Abo-System (Zukunft)
Vision
Ein zentrales Abo-System für alle Jinkendo Apps:
- mitai.jinkendo.de (Körper-Tracking) 身体
- miken.jinkendo.de (Meditation) 眉間
- ikigai.jinkendo.de (Lebenssinn) 生き甲斐
- shinkan.jinkendo.de (Kampfsport) 真観
Konzept
Zentrale Webseite: jinkendo.de
- Zentrale Landing-Page mit allen Apps
- Zentrale Abo-Verwaltung (Stripe-Integration)
- User-Account übergreifend für alle Apps
- Single Sign-On (SSO) zwischen Apps
Abo-Modelle (Ideen)
Option 1: App-spezifische Abos
mitai Basic: €5/Monat → Nur Mitai Premium
miken Basic: €5/Monat → Nur Miken Premium
Option 2: Kombinierte Abos
Jinkendo Basic: €8/Monat → 2 Apps
Jinkendo Premium: €12/Monat → Alle 4 Apps
Jinkendo Family: €20/Monat → Alle Apps + 3 Profile
Option 3: Feature-basiert
Free: Basis-Features alle Apps
Basic: Erweiterte Features (KI, Export, etc.)
Premium: Unlimited + Priority Support
Technische Umsetzung
Backend
Zentrale Auth-API
auth.jinkendo.de
POST /register → User-Account erstellen
POST /login → JWT Token für alle Apps
POST /refresh → Token erneuern
GET /me → User-Info mit Abo-Status
Subscription-API
subscriptions.jinkendo.de
GET /plans → Verfügbare Abos
POST /subscribe → Stripe Checkout Session
GET /my-subscription → Aktuelles Abo + Features
POST /cancel → Abo kündigen
POST /webhook → Stripe Webhook
App-Integration
Jede App prüft beim Start:
const subscription = await fetch('https://subscriptions.jinkendo.de/my-subscription', {
headers: { 'Authorization': `Bearer ${jwt_token}` }
})
// subscription.features: ['mitai_premium', 'miken_basic', ...]
// App aktiviert entsprechende Features
Frontend
Zentrale Webseite (jinkendo.de)
- Next.js oder React + Vite
- Stripe Elements für Payment
- Dashboard: Übersicht alle Apps + Abo-Status
- Rechnung-Historie
App-Anpassungen
TrialBanner:
<a href="https://jinkendo.de/upgrade?app=mitai">
Jetzt upgraden
</a>
Settings → Abo:
- Link zu
https://jinkendo.de/account/subscription - Oder Embedded iFrame
Datenbank-Schema (zentral)
users
CREATE TABLE users (
id UUID PRIMARY KEY,
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
name VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
subscriptions
CREATE TABLE subscriptions (
id SERIAL PRIMARY KEY,
user_id UUID REFERENCES users(id),
stripe_customer_id VARCHAR(100),
stripe_subscription_id VARCHAR(100),
plan VARCHAR(50), -- 'basic', 'premium', 'family'
status VARCHAR(20), -- 'active', 'canceled', 'past_due'
current_period_end TIMESTAMP,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
canceled_at TIMESTAMP
);
subscription_features
CREATE TABLE subscription_features (
subscription_id INT REFERENCES subscriptions(id),
app VARCHAR(50), -- 'mitai', 'miken', 'ikigai', 'shinkan'
tier VARCHAR(50), -- 'basic', 'premium'
PRIMARY KEY (subscription_id, app)
);
app_access_tokens
-- Mapping: Zentrale User → App-spezifische Profile
CREATE TABLE app_access_tokens (
user_id UUID REFERENCES users(id),
app VARCHAR(50),
app_profile_id VARCHAR(100), -- ID in der jeweiligen App-DB
PRIMARY KEY (user_id, app)
);
Migration: Bestehende Apps
Schritt 1: Zentrale Auth aufbauen
auth.jinkendo.deAPI deployen- User aus
mitaiDB migrieren zu zentraler DB - Mapping erstellen: zentrale User ID → mitai Profile ID
Schritt 2: Apps auf zentrale Auth umstellen
- Login/Register in Apps deaktivieren
- "Mit Jinkendo anmelden" Button → SSO-Flow
- JWT von
auth.jinkendo.deverwenden - Profile-ID Mapping bei jedem Request
Schritt 3: Subscription-System
subscriptions.jinkendo.deAPI deployen- Stripe-Integration
- Apps prüfen Abo-Status bei jedem Feature-Zugriff
Schritt 4: Zentrale Webseite
jinkendo.deLanding Page- Account-Dashboard
- Abo-Verwaltung
Status (März 2026)
🔲 Noch nicht gestartet
Aktuell:
- Jede App hat eigene User-Verwaltung
mitaihat Membership-System (v9c)- TrialBanner Link →
mailto:mitai@jinkendo.de
Nächste Schritte:
- Weitere Apps entwickeln (miken, ikigai, shinkan)
- Zentrale Infrastruktur planen
- Migration vorbereiten
Offene Fragen
- Pricing: Welche Preise pro App / kombiniert?
- Stripe vs. Paddle: Welcher Payment Provider?
- Single DB vs. Separate: Eine PostgreSQL-DB für alles oder separate?
- Hosting: Eigener Server oder Cloud (Vercel, Railway, Fly.io)?
- Domain-Strategie: Subdomains (api.jinkendo.de) oder Paths (jinkendo.de/api)?
Related
MEMBERSHIP_SYSTEM.md- Aktuelles System in mitai (v9c)FEATURE_ENFORCEMENT.md- Feature-Limiting Mechanismus- Backlog: v9h (Connectoren & Stripe)