Ein persönlicher Tracker für Peptide, Steroide und andere Verbindungen – mit Halbwertszeit-Berechnung, Verlaufskurven und Lexikon.
⚠️ Disclaimer: Diese App dient ausschließlich persönlichen Aufzeichnungszwecken. Alle Verlaufswerte sind Schätzungen basierend auf erfassten Halbwertszeiten. Die App ersetzt keine medizinische Beratung. Die Anwendung von verschreibungspflichtigen oder nicht zugelassenen Substanzen ohne ärztliche Aufsicht ist in vielen Ländern illegal.
- Aktueller Spiegel – geschätzte Wirkstoffkonzentration für alle Substanzen mit Einträgen, berechnet via Halbwertszeit-Formel (
C = C₀ × 0.5^(t/t½)) - Level-Balken mit Farbkodierung (grün > 60 %, gelb > 30 %, rot darunter)
- Anzeige der letzten Dosis und geschätztem Zeitpunkt des nächsten Halbwerts
- KPI-Karten: aktive Substanzen, Einträge der letzten 7 / 30 Tage, Gesamteinträge
- Nachschlagewerk mit allen 53 vordefinierten Substanzen
- Suche nach Name und Alias
- Filter nach Kategorie (Peptide, Steroide, Medikamente, Supplemente, Sonstiges)
- Favoriten (gespeichert in localStorage)
- Aufklappbare Detailkarten mit 4 Tabs:
- Information – Beschreibung, Halbwertszeit, Applikationsweg, Aliase, Vorsichtshinweise
- Protokoll – Informationen aus veröffentlichter Fachliteratur (keine persönliche Empfehlung)
- Legal / Doping – Rechtsstatus pro Land und Doping-Listenstatus
- Verwandte – Kombinationen, verwandte Substanzen, Antagonisten
- Alle vordefinierten und eigene Substanzen verwalten
- Filter nach Kategorie und Suche
- Substanzen aktivieren / deaktivieren
- Eigene Substanzen anlegen, bearbeiten, duplizieren, löschen
- Vordefinierte (Seed-)Substanzen können nur deaktiviert, nicht gelöscht werden
- Einträge erfassen: Substanz, Datum/Uhrzeit, Menge, Einheit, Applikationsweg, Injektionsstelle, Chargennotiz
- Einträge bearbeiten und löschen
- Filter nach Substanz, Zeitraum und Freitextsuche
- Einträge nach Tag gruppiert
- Verlaufskurven – alle Substanzen gleichzeitig in einem Chart, per Toggle ein-/ausblendbar
- Aktueller Spiegel aller Substanzen als Tabelle
- Wöchentliches Balkendiagramm (letzte 12 Wochen)
- Einträge nach Substanz (Anteilsbalken)
- Zielbereiche als Referenzlinien im Chart
- Export – alle Daten als JSON-Datei herunterladen
- Import – JSON-Datei einlesen (Modus: Zusammenführen oder Ersetzen)
- Zielbereiche – relative Zielwerte (0–100 %) pro Substanz definieren
- Reset – Einträge und eigene Substanzen löschen, vordefinierte Substanzen bleiben erhalten
| Kategorie | Substanzen |
|---|---|
| Peptide | BPC-157, TB-500, GHK-Cu, GHRP-2, GHRP-6, Ipamorelin, CJC-1295 (DAC), Mod GRF 1-29, Sermorelin, Hexarelin, Tesamorelin, AOD-9604, IGF-1 LR3, PT-141, Melanotan II, Epithalon, Selank, Semax, Thymosin Alpha-1, PEG-MGF, Semaglutid, Tirzepatid |
| Steroide | Testosteron Enanthat, Cypionat, Propionat, Undecanoat, Sustanon 250, Boldenon, Nandrolon Decanoat, NPP, Trenbolon Acetat & Enanthat, Masteron Prop & Enanthat, Primobolan, Oxandrolon, Methandienon, Stanozolol, Turinabol, Oxymetholon, Mesterolon |
| Medikamente | Anastrozol, Letrozol, Exemestan, Tamoxifen, Clomifen, HCG |
| Supplemente | DHEA |
| Sonstiges / SARMs | RAD-140, LGD-4033, Ostarin (MK-2866), MK-677 (Ibutamoren), GW-501516 (Cardarine) |
| Paket | Version | Zweck |
|---|---|---|
| React | 19 | UI-Framework |
| TypeScript | 5.9 | Typsicherheit |
| Vite | 8 | Build-Tool / Dev-Server |
| Recharts | 3 | Diagramme |
| lucide-react | 1 | Icons |
| date-fns | 4 | Datumsformatierung |
Kein Backend, keine Datenbank – alle Daten liegen im localStorage des Browsers.
# Abhängigkeiten installieren
npm install
# Entwicklungsserver starten
npm run dev
# → http://localhost:5173
# Produktionsbuild erstellen
npm run build
# Produktionsbuild lokal vorschauen
npm run previewAlle Daten werden unter dem Key ct_data_v2 als JSON gespeichert:
{
schemaVersion: 2,
substances: Substance[], // vordefiniert + eigene
entries: Entry[], // alle Tracking-Einträge
goalRanges: GoalRange[], // Zielbereiche für Verlaufskurven
favorites: string[], // Substanz-IDs der Favoriten
lastExported?: string // ISO-Datum des letzten Exports
}- Export: Einstellungen → „Als JSON exportieren" → lädt
compound-tracker-export-YYYY-MM-DD.jsonherunter - Import:
- Zusammenführen – neue Einträge und Substanzen werden hinzugefügt, bestehende IDs bleiben unberührt
- Ersetzen – alle Daten werden durch die Importdatei überschrieben (mit Bestätigungsdialog)
Die geschätzten Spiegel basieren auf der klassischen Zerfallsformel:
C(t) = C₀ × 0.5^(t / t½)
C₀= applizierte Menget= vergangene Zeit seit Applikation (Stunden)t½= Halbwertszeit der Substanz (Stunden)
Mehrere Einträge derselben Substanz werden summiert (Superposition). Der relative Wert (0–100 %) ergibt sich aus dem Verhältnis zum theoretischen Maximum aller bisherigen Einträge.
Diese Werte sind mathematische Näherungen. Individuelle Faktoren (Stoffwechsel, Körpergewicht, Applikationsort etc.) werden nicht berücksichtigt.
src/
├── components/
│ ├── charts/ # HalfLifeChart (Recharts)
│ ├── dashboard/ # Dashboard mit aktuellem Spiegel
│ ├── layout/ # Layout, Sidebar (Desktop + Mobile)
│ ├── lexikon/ # Lexikon-Seite mit Substanz-Details
│ ├── settings/ # Import/Export, Zielbereiche, Reset
│ ├── statistics/ # Verlaufskurven, Wochenstatistik
│ ├── substances/ # Substanzverwaltung + Formular
│ ├── tracking/ # Eintragserfassung + Liste
│ └── ui/ # Button, Card, Modal, Badge, Input, …
├── data/
│ └── seed.ts # 53 vordefinierte Substanzen
├── hooks/
│ ├── useEntries.ts
│ ├── useLocalStorage.ts
│ └── useSubstances.ts
├── types/
│ └── index.ts # Substance, Entry, GoalRange, AppData
├── utils/
│ ├── chartData.ts # Datenaufbereitung für Recharts
│ ├── halflife.ts # Zerfallsberechnungen
│ ├── storage.ts # localStorage + Migration + Import/Export
│ └── validation.ts # Import-Validierung
├── App.tsx # Router (useState-basiert)
├── index.css # CSS Custom Properties + alle Styles
└── main.tsx
Privat / nicht öffentlich lizenziert.