ClinicSlotHub hilft Arztpraxen, kurzfristige Terminausfälle automatisch zu füllen. Patienten auf der Warteliste können per vorbereitetem Link benachrichtigt werden; SMS/WhatsApp kann optional über Twilio angebunden werden. Der erste Klick gewinnt den Termin.
- Patientenverwaltung: Patienten mit Name, Telefon und Notizen anlegen.
- Warteliste: Patienten auf eine Warteliste setzen.
- Terminmanagement: Termine anlegen und Ausfälle markieren.
- Automatische Benachrichtigung: Warteliste per Klick informieren (Link wird vorbereitet; SMS/WhatsApp optional über Twilio).
- Öffentliche Buchungsseite: Patienten buchen den freien Termin selbst.
- 14 Tage kostenlose Testphase, danach ab 29 €/Monat.
- Admin-Panel: Alle Praxen, Einnahmen und Fehler überwachen.
- E-Mail-Automation: Willkommens-Mails, Zahlungsbestätigungen.
- Dark Mode: Für angenehmes Arbeiten.
- SEO-optimierte Landingpage mit Blog.
- Frontend: Next.js 14 (App Router), TailwindCSS
- Backend: Next.js API Routes, Supabase
- Datenbank: Supabase (PostgreSQL)
- Zahlungen: Stripe
- E-Mails: Resend
- Nachrichten: Twilio (SMS/WhatsApp, optional)
- Hosting: Vercel (automatisches Deployment)
- Sicherheit: JWT-Auth, RLS, API-Key-Schutz
Bevor du startest, brauchst du diese kostenlosen Konten:
- GitHub (kostenlos)
- Vercel (Hobby-Plan, kostenlos)
- Supabase (Free-Plan, kostenlos)
- Stripe (Testmodus, keine monatlichen Kosten)
- Resend (kostenloser Plan: 3.000 E-Mails/Monat)
Optional: 6. Twilio (nur für SMS/WhatsApp, kostenlos starten mit Testguthaben)
git clone https://github.com/transldelta/slotfill.git
cd slotfill
npm install- Supabase-Projekt erstellen (Region: Frankfurt).
- SQL Editor → die Migrationen aus
supabase/migrations/der Reihe nach ausführen (beginnend mit001_slotfill_schema.sqlbis zur höchsten Nummer). - API-Schlüssel aus Settings → API kopieren.
Kopiere die vorhandene Beispieldatei .env.local.example nach .env.local
und fülle die Werte aus:
cp .env.local.example .env.local# Supabase
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
# Stripe (Testmodus)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
NEXT_PUBLIC_APP_URL=http://localhost:3000
# Resend (E-Mail)
RESEND_API_KEY=re_...
RESEND_FROM_EMAIL=ClinicSlotHub <onboarding@resend.dev>
# Nachrichten (optional, erstmal weglassen)
MESSAGING_PROVIDER=none
TWILIO_WHATSAPP_CONTENT_SID=
# Admin-Zugang
ADMIN_EMAILS=transl.delta@gmail.com
# Cron-Security
CRON_SECRET=ein-langes-geheimes-passwortEine vollständige Liste aller Variablen findest du in
env-documentation.md.
npm run devÖffne http://localhost:3000.
- Registriere dich mit der E-Mail aus
ADMIN_EMAILS. - Öffne
/admin– du bist automatisch Admin. - Kein manuelles Setzen von Rollen in Supabase nötig.
- Repository auf GitHub pushen.
- Vercel mit GitHub verbinden (vercel.com/new).
- Repository importieren.
- Umgebungsvariablen in Vercel setzen (Settings → Environment Variables).
- Deployen – Vercel deployt automatisch bei jedem Push auf
main.
Die Cron-Jobs (Trial-Erinnerung, Limit-Reset, Auto-Wartung) sind in
vercel.json konfiguriert und laufen automatisch, sobald CRON_SECRET gesetzt ist.
slotfill/
├── app/ # Next.js App Router Seiten & API-Routen
│ ├── admin/ # Admin-Panel
│ ├── api/ # REST-API
│ ├── auth/ # Login/Registrierung
│ ├── blog/ # Blog-System
│ ├── dashboard/ # Praxis-Dashboard
│ ├── fill/ # Öffentliche Buchungsseite
│ ├── pricing/ # Preis-Seite
│ └── ... # Impressum, Datenschutz, AGB
├── components/ # Wiederverwendbare UI-Komponenten
├── lib/ # Bibliotheken (Supabase, Stripe, Email, Messaging)
├── messages/ # Übersetzungsdateien (de.json)
├── public/ # Statische Dateien
├── scripts/ # Seed-Scripts & Tests
├── supabase/migrations/ # Datenbank-Migrationen
└── README.md # Diese Datei
- Alle API-Routen prüfen Authentifizierung.
practice_idwird NUR serverseitig ermittelt.- Row Level Security (RLS) auf Supabase aktiv.
- Stripe-Webhooks mit Signatur-Prüfung.
- Admin-Zugriff über
ADMIN_EMAILS, keine manuelle DB-Änderung. - Keine Secrets im Client.
- Vercel: Automatische Skalierung (Serverless).
- Supabase: Kostenloser Plan reicht für ~50 Praxen.
- Resend: 3.000 E-Mails/Monat kostenlos.
- Upgrade-Pfad: Vercel Pro (20
$/M), Supabase Pro (25 $ /M).
Bei Fragen oder Problemen:
- GitHub Issues: https://github.com/transldelta/slotfill/issues
- Admin-Panel:
/admin/errorsfür Fehlerlogs
Dieses Projekt ist privat. Alle Rechte vorbehalten.
Erstellt von Brahim Ben Abla für ClinicSlotHub – weil Praxen keine leeren Termine haben sollten.