Full-stackRegulated fintechServerless

Eine regulierte Stablecoin-Plattform, end-to-end gebaut.

El Gebali Crypto ist eine Schweizer Plattform für den Tausch von Stablecoins (USDT / USDC) gegen CHF. Ich habe das gesamte System allein konzipiert und gebaut – Frontend, Backend, Datenbank, Compliance-Automatisierung und Betriebs-Tooling – als Gründer und alleiniger Entwickler.

Role
Gründer & alleiniger Entwickler
Domain
Regulierte Fintech (VQF)
Type
Full-Stack, end-to-end

Der Auftrag

Eine konforme, hochautomatisierte Plattform für einen regulierten Finanzintermediär mit nur einer Person bauen, bei dem manuelle Prozesse nicht skalieren und Compliance nicht nachträglich angeflanscht werden kann. Alles vom Kunden-Onboarding über Sanktionsprüfung, Auftragsabwicklung, Zahlungen bis zur Aufzeichnungspflicht musste zuverlässig mit nur einer operativen Person im Hintergrund laufen.

▸ Live-Plattform besuchen elgebali-crypto.ch

Architektur

Ich entschied mich für eine Serverless-first-, Edge-native-Architektur für niedrige Kosten, hohe Zuverlässigkeit und globale Geschwindigkeit – keine Server zu warten, und eine Datenbank, die direkt am Edge neben dem Code lebt.

  • Cloudflare Workers API und Geschäftslogik laufen am Edge, mit dem Hono-Framework für Routing.
  • Cloudflare D1 eine Edge-SQL-Datenbank für Aufträge, Kunden, Wallets und Compliance-Daten.
  • Statisches dreisprachiges Frontend (DE / EN / FR), gehostet auf Hostinger, kommuniziert mit der Worker-API.
  • Resend für transaktionale, mehrsprachige E-Mails; geplante Cron-Jobs für zeitbasierte Aufgaben.
Dreisprachiges Frontend DE / EN / FR · Hostinger HTTPS / REST Cloudflare Worker · Hono API & Geschäftslogik (Edge) read / write D1 edge SQL database Aufträge · Kunden · Compliance Resend · email Cron · scheduled GitHub Actions Sanktions-Pipeline DATASETS → D1

Was ich gebaut habe

Auftragsverwaltung & Betrieb

Live-Wechselkursabfrage mit CoinGecko-→-Kraken-Fallback und konfigurierbarem Aufschlag; Auftragsreferenzen mit SP-Präfix; ein Status-Workflow von Auftrag über Zahlung bis Lieferung; ein Admin-Dashboard (Basic Auth); ein gebrandeter PDF-Quittungsgenerator; und ein automatisierter 48-Stunden-Zahlungserinnerungs-Cron.

Automatisiertes Compliance-Screening

Die zentrale technische Herausforderung. Eine GitHub-Actions-Pipeline lädt und parst die offiziellen Sanktionslisten – OFAC, Swiss SECO, UK und EU, zusammen zehntausende Einträge – und lädt sie in D1, wo jeder Kundenname geprüft wird und Treffer im Admin-Bereich als gelbe Warnhinweise erscheinen. Das Parsing läuft sequenziell, um innerhalb der Speichergrenzen kostenloser CI-Runner zu bleiben. Ergänzt durch: PEP-Screening gegen offene Datensätze, OFAC-Wallet-Adressprüfung, FATF-Hochrisikoländer-IP-Sperre, eine Sperrliste für Wegwerf-E-Mail-Adressen sowie verpflichtende Erklärungen zu Schweizer Wohnsitz und wirtschaftlicher Berechtigung mit Zeitstempel.

Geprüfte Sanktionsdaten-Einträge (ca.) UK ~57.7k SECO ~39.6k EU ~24.8k ~122K geprüfte Einträge aus allen Quellen · plus OFAC-Wallet-Adress- & PEP-Screening

Identitäts- & Wallet-Verifizierung

Ein Wallet-Verifizierungsablauf per „Satoshi-Test" – der Kunde weist die Kontrolle über sein Wallet mittels einer Mikrotransaktion nach, mit eigenem Submit-Endpunkt, 72-Stunden-Ablauf, dreisprachigen Bestätigungs-E-Mails und einer Admin-Ansicht mit gemeldetem Status und vorausgefülltem Transaktions-Hash. Konzipiert für die Integration mit einem kommerziellen KYC-Identifikationsanbieter.

Passwortloses Kundenportal

Ein Kundenportal per Magic-Link (ohne Passwörter), in dem Kunden ihre Aufträge und ihr Konto einsehen, vollständig dreisprachig, plus ein Double-Opt-in-Newsletter mit Admin-Verwaltung und CSV-Export, dreisprachige FAQ-Seiten und ein bebildertes Auftrags-Tutorial.

Finanz- & Daten-Tooling

Ein Binance-Trade-CSV-Importer mit automatischer Trennzeichenerkennung und Schweizer/deutscher Locale-Verarbeitung, der ein FIFO-Lot-Tracking für präzise Kostenbasis speist, sowie eigenständiges Canvas-Charting, das eine schwergewichtige Chart-Bibliothek durch null Abhängigkeiten ersetzte.

Wie ein Auftrag abgeschlossen wird

Jeder Auftrag durchläuft dieselbe automatisierte Abfolge – von Kurssperre und Compliance-Prüfungen über Screening, Zahlung und Wallet-Verifizierung bis zur Lieferung. Jeder Schritt wird von der Anwendung erzwungen, nicht durch manuelle Checklisten.

fail match 1Auftrag erstelltKurs gesperrt · CoinGecko → Kraken + Aufschlag 2Eingabe- & ZugangsprüfungenLänder-IP · Wegwerf-E-Mail · Erklärungen 3Sanktions- & PEP-ScreeningName vs. OFAC/SECO/UK/EU · Wallet vs. OFAC 4Auftrag bestätigtSP-Referenz · dreisprachige E-Mail · PDF-Quittung 5Zahlung (CHF)Banküberweisung · 48h-Erinnerungs-Cron 6Wallet-VerifizierungSatoshi-Test · 72h Ablauf 7Stablecoin gesendetFIFO-Lot erfasst · Liefer-E-Mail Auftrag abgeschlossen AbgelehntPrüfungen nicht bestanden Admin-Prüfunggelbe Markierung → freigeben / ablehnen
End-to-End-Auftragsabwicklung, bei jedem Schritt automatisch erzwungen.

Bemerkenswerte technische Entscheidungen

  • Serverless am Edge nahezu keine Fixkosten und keine zu wartende Infrastruktur – ideal für einen Einzelbetreiber.
  • Sequenzielles Daten-Parsing löste Out-of-Memory-Abstürze beim Verarbeiten von über 40 MB grossen Sanktionsdateien auf kostenlosen Runnern.
  • Charting ohne Abhängigkeiten ersetzte Chart.js durch handgeschriebenes Canvas-Rendering, um das Frontend schlank zu halten.
  • Compliance als Code Screening und Kontrollen sind automatisiert und reproduzierbar, keine manuellen Checklisten.

Tech-Stack

Cloudflare WorkersHonoD1 (SQL) JavaScriptTypeScriptREST APIs GitHub ActionsResendCanvas HTML / CSSCron
WAS DAS ZEIGT

End-to-End-Verantwortung für ein reales, reguliertes Produkt: Full-Stack-Tiefe von der Datenbank bis zum Frontend, disziplinierte Automatisierung in einem Bereich, in dem Korrektheit zählt, und die Fähigkeit, ein komplettes System allein zu konzipieren und auszuliefern – mit derselben Sorgfalt, die ich in Kundenprojekte einbringe.

Brauchen Sie etwas in dieser Art?

Massgeschneiderte Anwendungen, Integrationen und Automatisierung, end to end.

Projekt starten →