← Zurück zur Startseite | Blog-Übersicht

Von "Klar, kann ich machen!" bis zum Live-Ticketsystem – Eine 3,5-Wochen-Odyssee

Wie aus einer spontanen Zusage ein komplettes Event-Ticketsystem für 800 Gäste wurde – ohne Plan, aber mit viel Trial & Error

Admin-Dashboard des Ticketsystems mit Verkaufsstatistiken und Kassenstand

Der Moment, in dem alles begann

Februar 2026. Vorstandssitzung der Faschingsgruppe Steigerwald e.V.

Das Thema: Gründungsfest im Juli mit Live-Band. Die Frage: "Sascha, kannst du sowas wie Eventim bauen?"

Meine Antwort: "Klar, ist das möglich!"

Die Wahrheit: Ich hatte absolut keinen Plan wie.

Aber ich wusste: Wenn Eventim es kann, muss es irgendwie machbar sein. Und vor allem – ich wollte, dass wir die volle Kontrolle über unser eigenes System haben. Keine Black Box. Keine Abhängigkeiten. Kein "Sie müssen auf Version X upgraden" oder "Feature Y kostet extra".

Nur: Wie baut man ein Ticketsystem?

Spoiler: Man lernt es, während man es baut.

Warum überhaupt selbst bauen?

Die naheliegende Frage: Warum nicht einfach Eventim?

Die Antwort ist simpel: Kontrolle.

Eventim ist eine Black Box. Du weißt nicht genau:

Für ein großes Konzert? Klar, nehm Eventim. Für unser Vereinsfest mit 800 Gästen am Abend und insgesamt 1.100 Besuchern über den Tag? Da wollten wir unser eigenes Ding.

Plus: Als Entwickler ist so ein Projekt die perfekte Gelegenheit zu lernen. Von PDF-Generierung bis PWA Scanner-Apps – alles dabei.

Die technische Architektur

Der Tech-Stack:

Frontend:

→ HTML/CSS
→ JavaScript (Vanilla + Node.js)

Backend:

→ PHP 8.2
→ MySQL Datenbank

Spezial-Libraries:

→ FPDF (PDF-Generierung)
→ PHP QR Code (QR-Code Erstellung)
→ PHPMailer (Email-Versand)

Scanner-App:

→ Progressive Web App (PWA)
→ HTML5 Camera API

Hosting:

→ Manitu (klassisches Webhosting)

Dev-Umgebung:

→ XAMPP (lokale Tests)
→ Staging auf Hosting (Live-Tests)

Warum dieser Stack?

Ehrlich gesagt: Weil ich damit am schnellsten vorankam. PHP kenne ich, MySQL auch. FPDF war nach mehreren Versuchen mit anderen PDF-Generatoren die beste Lösung. Keine Over-Engineering-Frameworks – einfach das was funktioniert.

PHP Code-Ausschnitt der PDF-Generierung mit FPDF

Die technische Umsetzung: PHP-Code für die PDF-Ticket-Generierung

Die Timeline: Von 0 auf Ticketsystem in 3,5 Wochen

Woche 1: "Wie schwer kann's schon sein?"

Tag 1-3: Research & Setup

Tag 4-7: Basis-Ticketshop

Erkenntnis Woche 1:

"Okay, das wird komplexer als gedacht. Aber ich komme voran!"

Woche 2: Die PDF-Hölle

Die größte Herausforderung des ganzen Projekts: Ein Ticket das auch so aussieht.

Ich habe gefühlt 5 verschiedene PDF-Generatoren getestet:

Das Problem mit FPDF:
Alles ist pixelgenau positioniert. Kein HTML/CSS "mach mal hübsch". Nein. Du sagst:

$pdf->SetXY(20, 50); // Logo hier!
$pdf->Cell(80, 10, 'Ticketnummer: 001'); // Text da!

Was auf dem Ticket drauf musste:

Und alles sollte auch noch gut aussehen!

Ich habe Tage damit verbracht Logos einzufügen und Texte zu positionieren. Weil FPDF mit HTML nix anfangen kann – alles manuell per Code.

Fertiges Event-Ticket mit QR-Code, Logos und allen Event-Informationen

Das finale Ticket-Design – Dark Theme mit allen wichtigen Informationen

Fails:

Durchbruch:

Als das erste richtig gute Ticket aus dem System kam, war ich ehrlich stolz. Ein echtes Ticket! Mit allem drauf! Sieht aus wie von Eventim!

Woche 3: Scanner-App & Admin-Dashboard

Die Scanner-App (PWA):

Anforderung: Am Event-Tag müssen Helfer mit dem Handy die QR-Codes scannen können.

Lösung: Progressive Web App mit HTML5 Camera API

Wie's funktioniert:

  1. Helfer öffnet Scanner-URL am Handy
  2. Kamera aktiviert sich
  3. QR-Code vor Kamera halten
  4. System prüft in Echtzeit:
    • Gültig → Grüner Screen, Person darf rein
    • Bereits gescannt → Roter Screen, "Ticket bereits verwendet!"
    • Storniert → Roter Screen, "Ticket ungültig!"

Jeder QR-Code ist einmalig. Keine Duplikate möglich.

Problem: Offline-Funktionalität fehlt noch. Wenn am Event-Tag kein Netz ist... Aber für die Testphase erstmal egal. (Learning für v2.0!)

Das Admin-Dashboard:

Was Veranstalter sehen müssen:

TICKETSYSTEM DASHBOARD

247/800 Bezahlte Tickets
553 Übrige Tickets
0 Bereits eingecheckt
340 € Spenden gesamt

Der "Red Button":
Nach dem Event → alle QR-Codes werden gelöscht (DSGVO). Alles andere in der DB wird verschlüsselt archiviert (Aufbewahrungsfrist für Buchhaltung).

Excel-Export:
Für die Buchhaltung. Alle Transaktionen als .xlsx

Woche 3,5: Zahlungssystem & Email-Automation

Zahlungssystem: Vorkasse

Warum kein PayPal/Stripe?
→ Ehrlich gesagt: Keine Ahnung von deren Politik.

Plus: Vorkasse ist für Vereine simpler. Keine Gebühren (außer normale Bankgebühren).

Wie's funktioniert:

  1. Kunde bestellt Ticket
  2. Bekommt Email: "Bitte überweise X€ auf Konto Y mit Verwendungszweck Z"
  3. Zahlung geht ein
  4. Manuell: Admin markiert Zahlung als eingegangen
  5. System verschickt automatisch: Rechnung + PDF-Ticket
Bestellformular des Ticketsystems mit Gästedaten-Eingabe

Das Bestellformular – einfach und übersichtlich

Email-Flow (PHPMailer):

Email 1: Bestellbestätigung
→ "Danke für deine Bestellung! Bitte überweise..."

Email 2: Zahlungsbestätigung (nach manueller Freigabe)
→ "Zahlung eingegangen! Anbei dein Ticket."
→ Anhang: Rechnung.pdf + Ticket.pdf

Problem:
Der Email-Versand ist langsam. Manchmal dauert's bis zu 30 Sekunden bis die Mail raus ist.

Grund:
FPDF generiert PDF → PHPMailer hängt's an → Versand.
Alles synchron. Kein Queue-System.

TODO für v2.0:
Background-Jobs für Email-Versand. Aber für den Start im April/Mai 2026 sollte's reichen. Optimierung kommt noch.

Die größten Fails & Learnings

Fail #1: "Ich teste mal direkt Live"

Was passierte:
Erste Tests direkt auf Live-System gemacht.

Ergebnis:
Testdaten in echter Datenbank. Chaos. Panik.

Learning:

Testumgebungen sind heilig.

Von da an:
1. Lokale Tests (XAMPP)
2. Staging-Umgebung (auf Hosting)
3. Dann erst Live

Fail #2: PDF-Generator-Hopping

Wie erwähnt: 5 verschiedene Libraries getestet bevor FPDF passte.

Learning:

Manchmal muss man mehrere Ansätze probieren. Das erste Tool ist nicht immer das beste.

Fail #3: QR-Code Position

Erster QR-Code: Zu klein, zu nah am Rand, Scanner konnte ihn nicht lesen.

Learning:

QR-Codes brauchen "Quiet Zone" (weißer Rand drumrum). Und mindestens 2x2cm Größe für zuverlässiges Scannen.

Fail #4: "Ich plane einfach mal drauf los"

Kein richtiges Konzept am Anfang. Einfach angefangen zu coden.

Ergebnis:
Features 2-3x neu gebaut weil die Architektur nicht gepasst hat.

Learning:

Vorher überlegen was man wirklich braucht. Nicht gleich ins Blaue schießen.

(Auch wenn "learning by doing" manchmal schneller ist als ewig zu planen)

Was hat das Ganze gekostet?

Entwicklungskosten:

3,5 Wochen
~100 Stunden
0€ Laufende Kosten
Pro Bono Für den Verein

Was hätte Eventim gekostet?

Ich habe gar nicht mehr recherchiert weil das System so gut lief. Aber typische Ticket-Plattformen nehmen:

Beispiel-Rechnung:

800 Tickets à 20€ = 16.000€ Umsatz
Eventim-Gebühr (12%): 1.920€
Service-Fee (ca. 2€/Ticket): 1.600€
= 3.520€ Kosten

Unser System: 0€ laufende Kosten
Ersparnis: 3.520€

Plus: Volle Kontrolle über System, Daten, Features.

Live-Performance & Status Quo

Stand März 2026:

Verkaufsstart: April/Mai 2026
Event: Juli 2026

Erwartete Zahlen:

"Sehr geile Geschichte!"

— Vorstand Faschingsgruppe Steigerwald e.V.

Aus dem Verein kamen Fragen: "Hast du das wirklich so selbst gebaut?"

Ich hab's dann live präsentiert – von der Bestellung über PDF-Generierung bis zum Scanner.

Die Gesichter waren unbezahlbar.

Was ich dabei gelernt habe

Technisch:

  1. PDF-Generierung in PHP (FPDF von Grund auf)
  2. QR-Code Integration
  3. PWA-Entwicklung (Progressive Web Apps)
  4. HTML5 Camera API
  5. Email-Automation mit PHPMailer
  6. Datenbank-Design für Ticketsysteme
  7. Staging vs. Production (Testumgebungen!)

Mental:

  1. "Klar kann ich das!" sagen ist okay – auch wenn man's noch nicht kann. Man lernt's halt dann.
  2. Ruhig bleiben bei Fehlschlägen. 5 PDF-Generatoren getestet? Normal. Einfach weitermachen.
  3. Erst überlegen, dann coden. (Hab ich nicht gemacht. War chaotisch. Nächstes Mal besser.)
  4. Fertig ist besser als perfekt. Email-Versand ist langsam? Okay. Funktioniert aber. Optimierung kommt später.

Könnte man das System auch für andere nutzen?

Ja, definitiv!

Nach meiner Einschätzung könnte man das System modular aufbauen und für andere Events/Vereine nutzen:

Potenzielle Anwendungsfälle:

Was dafür nötig wäre:

SaaS-Potential?

Ehrlich gesagt: Ja, könnte man machen.

Kleine Vereine/Events zahlen aktuell wahnsinnige Gebühren an große Plattformen. Ein "Eventim für kleine Events" mit fairen Preisen (z.B. 1€ pro Ticket statt 10-15%) könnte funktionieren.

Aber: Das ist ein komplett anderes Business. Mal sehen. Erstmal muss unser Event im Juli laufen!

Fazit: Würde ich's wieder machen?

Absolut.

War es stressig? Ja.
Gab's Momente wo ich dachte "Warum hab ich zugesagt"? Auch ja.

Aber:

Plus: Es macht einfach Spaß zu sehen wie aus "Klar kann ich das!" (ohne Plan) ein funktionierendes Live-System wird.

Empfehlung für andere

Solltest DU auch ein Ticketsystem bauen?

Kommt drauf an:

JA, wenn:

NEIN, wenn:

Für kleine bis mittlere Events (50-1.000 Tickets):
→ Selbst bauen kann sich absolut lohnen!

Für große Events:
→ Lieber etablierte Plattform nehmen.

Das System geht Live: Juli 2026

Wenn alles läuft wird im Juli 2026 das Gründungsfest der Faschingsgruppe Steigerwald e.V. stattfinden.

800 Tickets. Eine Band. Ein selbst gebautes Ticketsystem.

Dann sehen wir ob's hält.

Ich halte euch auf dem Laufenden!

Update folgt nach dem Event!

SA
Sascha Ammermann

Manchmal ist die beste Lösung die, die es noch nicht gibt. Dieses Ticketsystem hab ich in 3,5 Wochen von null gebaut — weil fertige Tools einfach nicht gepasst haben.