Pairfect
Eine App für zwei: gemeinsames Erinnerungsalbum, eine Karte der Orte, an denen ihr wart, Pläne und kleine tägliche Rituale. Allein gebaut, neben Vollzeitstudium und Job.







Auf einen Blick
- Rolle
- allein, Architektur bis Release-Pipeline
- Zeitraum
- 10/2025 bis 07/2026, neun Monate
- Zeilen Dart
- rund 78.200 in 266 Dateien
- Feature-Module
- 11
- Cloud Functions
- 24 Dateien, rund 3.450 Zeilen
- Commits
- 493
Meine Rolle
Alles, allein
Das Problem
Paare verteilen das, was sie teilen, ohnehin schon auf fünf Orte: Fotos in einer App, Pläne in der nächsten, die wichtigen Daten in einer dritten und das Gespräch selbst noch woanders. Nichts davon ist für genau zwei Menschen gebaut, und deshalb verhält sich auch nichts davon so, als wären die beiden ein Konto.
Wie es funktioniert
- Clean Architecture pro Feature, jedes Modul getrennt in data, domain und presentation. Die Abhängigkeiten zeigen nach innen, die Geschäftsregeln eines Features wissen also nicht, dass es Firestore gibt.
- Ein serverloses Backend auf Firebase mit Auth, Firestore, Storage, Messaging, App Check und Cloud Functions in TypeScript.
- Plattformarbeit, die über Screens hinausgeht: Homescreen-Widgets unter iOS via WidgetKit, Offline-Kartendownloads und ein Journey-Player auf Mapbox, und Abos über RevenueCat, wobei die Berechtigung für beide zugleich gilt.
- DSGVO-Datenexport und atomares Löschen des Kontos als Cloud Functions, eine biometrische App-Sperre, serverseitig geprüfte Einmal-Pairing-Tokens, Rate Limiting und Speicherkontingente.
Stack
Flutter, Dart, Firebase, TypeScript Cloud Functions, RevenueCat, Mapbox, WidgetKit, GitHub Actions.
Ergebnis
In neun Monaten allein gebaut, von der Architektur über Oberfläche und Backend bis zur automatisierten Release-Pipeline, neben einem Vollzeitstudium und einem Job.