Die Frustration
Wer aktuell mit KI arbeitet, kennt das: Jeden Tag prasseln neue Begriffe auf dich ein. RAG, Embeddings, Tokenizer, RLS, Edge Functions, Vector Stores — die Liste hört nicht auf. Man entwickelt, hört einen neuen Begriff, nutzt ihn kurz im Code und entwickelt weiter.
Das Problem? Nach zwei Wochen hat man den Begriff mal gehört, kann ihn aber niemandem erklären. Und genau so fühlt es sich an: Man schwimmt in einem Ozean aus Buzzwords, ohne je richtig tauchen zu lernen.
Die Suche nach einer Lösung
Mein erster Reflex: eine Karteikarten-App fürs Handy oder den PC. Einfach Begriffe eingeben, Bedeutung dazu, fertig. Wer schreibt, der bleibt — das funktioniert seit Jahrhunderten.
Also habe ich mich umgeschaut. Und was ich gefunden habe, hat mich genervt:
- Anki — mächtig, aber die UI sieht aus wie Windows XP und das Setup dauert länger als das Lernen
- Quizlet — Cloud-Pflicht, Account nötig, Premium für Basisfunktionen
- Diverse Play Store Apps — Werbung nach jeder dritten Karte, Push-Notifications zum Lernen, Social Features die niemand braucht
Ich wollte einfach nur: Begriff → Bedeutung → Fertig. Keine Cloud, kein Account, keine Ablenkung.
Also hab ich's selbst gebaut
CardMe ist in einem Nachmittag entstanden. Python war die logische Wahl — schnell, überall vorhanden, und mit Tkinter braucht man keine einzige externe Dependency.
Das Konzept in 30 Sekunden:
- Deck erstellen — z.B. "IT", "KI-Begriffe", "Supabase"
- Karten hinzufügen — Vorderseite: der Begriff, Rückseite: die Erklärung
- Lernen — Karten durchblättern, Antwort aufdecken, nächste Karte
- Fertig
Kein Spaced Repetition Algorithmus, kein Gamification-System, keine Statistiken. Einfach Karten. Punkt.
Die technischen Entscheidungen
Warum Tkinter?
Weil es mitgeliefert wird. Ich habe die App so kompiliert, dass sie als portable .exe direkt unter Windows läuft — ohne dass du Python oder irgendwelche Libraries installieren musst. Ein Klick und die App ist da.
Warum JSON als Storage?
Weil es human-readable ist. Wenn du deine Karten sehen willst, öffnest du die JSON-Datei. Wenn du sie sichern willst, kopierst du die Datei. Wenn du sie teilen willst, schickst du sie per E-Mail. Keine Datenbank-Migration, kein Schema, kein ORM.
{
"IT": [
{
"front": "RLS",
"back": "Row-Level Security — Sicherheitsmechanismus in Datenbanken, der den Zugriff auf Zeilen basierend auf der Identität des Benutzers einschränkt."
}
]
}
Warum kein Cloud-Sync?
Weil Karteikarten private Gedanken sind. Meine Notizen zu Begriffen müssen nicht auf irgendeinem Server liegen. Und mal ehrlich: Für ein paar hundert Karteikarten braucht man keinen Cloud-Sync. Da die App portabel ist, kannst du sie einfach mitsamt deinen Decks auf einen USB-Stick ziehen.
Das Dark Theme
Ein Detail, das mir wichtig war: Dark Mode by Default. Wer abends nach einem langen Coding-Tag noch Begriffe wiederholen will, soll nicht von einem weißen Bildschirm geblendet werden. Das gesamte UI ist in dunklen Tönen mit Cyan-Akzenten gehalten — schont die Augen und sieht gut aus.
Was ich daraus gelernt habe
- Weniger ist mehr. Die App ist minimalistisch aufgebaut. Keine externe Dependency. Und sie tut genau das, was sie soll.
- Scratching your own itch funktioniert. Die besten Side Projects entstehen aus echtem Frust, nicht aus Tutorial-Inspiration.
- Python + Tkinter wird unterschätzt. Für schnelle Desktop-Tools ist das Combo unschlagbar. Zero Setup, zero Dependencies.
- Wer schreibt, der bleibt. Ernsthaft — seit ich Begriffe aktiv aufschreibe und erkläre, bleiben sie hängen. Die App hat ihren Job erfüllt, bevor ich sie fertig gebaut hatte.
Fazit
CardMe ist kein Vorzeige-Projekt mit komplexer Architektur. Es ist ein Werkzeug, das ich jeden Tag benutze. Und genau das macht es für mich zu einem der wertvollsten Projekte in meinem Portfolio — nicht weil es technisch beeindruckend ist, sondern weil es ein echtes Problem löst.
Manchmal braucht man keine Microservices. Manchmal reicht eine portable .exe und ein JSON.