Open Source · MIT

Lift

Eine selbst gehostete Plattform für Feature-Flags und A/B-Experimente: Wilson-Intervalle, z-Test und Guardrail-Metriken, die selbst Alarm schlagen.

v1.0.0 Experimente, deren Zahlen aufgehen
Laravel 13PHP 8.5PostgreSQL 18BladeTailwind 4Vite 8
Lift

Ein Pfeil nach oben ist keine Antwort

Jedes A/B-Werkzeug zeigt irgendwann zwei Zahlen und einen grünen Pfeil. Der Pfeil ist der einfache Teil. Schwierig ist alles, was er verbirgt: Reicht die Stichprobe, überschneiden sich die Konfidenzintervalle, hat die Gewinnervariante still etwas anderes kaputt gemacht?

Lift ist so gebaut, dass eine Entscheidung auch einen Monat später verteidigt werden kann. Der Ergebnisbildschirm nennt das Fazit in einer Zeile und zeigt darunter die Arbeit dahinter: das Wilson-Intervall, den p-Wert, die Wahrscheinlichkeit, die Kontrolle zu schlagen, wie viele Daten noch fehlen und was mit den Metriken passiert ist, die sich nie hätten bewegen dürfen.

Was drinsteckt

Deterministische Buckets

SHA-256 aus «Salt:Flag:Person» in 10 000 Buckets. Dieselbe Person erhält bei jeder Anfrage und auf jedem Server dieselbe Variante — ohne Session, ohne Zuordnungstabelle, ohne Datenbankzugriff.

Regeln, die sich erklären

Bedingungen auf beliebige Attribute, innerhalb einer Regel UND-verknüpft, zwischen den Regeln entscheidet die Reihenfolge. Die Antwort trägt die Variante, den Grund und die Nummer der ausgelösten Regel.

Statistik ohne Pakete

Wilson-Intervalle, Zwei-Stichproben-z-Test, Beta-Posterior-Wahrscheinlichkeit und Stichprobenberechnung sind von Hand geschrieben und gegen Lehrbuchwerte geprüft — inklusive der inversen Normalverteilung nach Moro.

Guardrail-Metriken

Kennzahlen, die sich nicht verschlechtern dürfen, auch wenn die Hauptmetrik steigt. Ein Hintergrundjob schreibt eine signifikante Verschlechterung selbst ins Protokoll, der Bildschirm zeigt sie rot neben dem Fazit: mehr Bestellungen, aber die Retouren stiegen stärker.

Idempotente Aggregation

Eine Person zählt pro Tag und Variante einmal, und der Job überschreibt den Tag, statt zu addieren. Verspätete Ereignisse korrigieren die Zahlen beim nächsten Lauf; die Bildschirme lesen nur die Aggregation und bleiben sofort da.

SDK-API

Zwei Endpunkte: Konfiguration holen, Ereignisse in Paketen von bis zu 500 senden. Ein Schlüssel gehört zu einer Umgebung, die Konfiguration liegt zehn Minuten im Cache und verschwindet beim Speichern eines Flags.

Screenshots

Ergebnis: Fazit, Intervalle und Guardrail auf einem Bildschirm
Ergebnis: Fazit, Intervalle und Guardrail auf einem Bildschirm
Ein Flag: Rollout, Targeting-Regeln und die Prüfung an einer echten Person
Ein Flag: Rollout, Targeting-Regeln und die Prüfung an einer echten Person
Intervalle auf gemeinsamer Achse — die Überschneidung sieht man sofort
Intervalle auf gemeinsamer Achse — die Überschneidung sieht man sofort
Protokoll: wer wann was geändert hat
Protokoll: wer wann was geändert hat
SDK-Schlüssel je Umgebung und die zwei Requests zum Anbinden
SDK-Schlüssel je Umgebung und die zwei Requests zum Anbinden
Dunkles Thema
Dunkles Thema

Installation

git clone https://github.com/dripips/lift.git cd lift docker compose up --build

Haben Sie ein Projekt oder eine Idee?

Schreiben Sie mir, dann besprechen wir die Aufgabe.