Cramp Crusher
I built Cramp Crusher because the details of a bad period-pain day are easy to lose once it passes. The private iPhone diary keeps the record together and shows only the patterns the data can support.
- Local-first
- health diary stays on device
- 295
- unit tests in the device-readiness gate
- 16
- core simulator UI tests
- Demo workspace
- synthetic history for safe review
These screenshots come from the current iPhone build. Every health entry shown is synthetic Demo data.
A record that still makes sense after the worst day passes.
Logging has to be quick when the pain is happening. Later, Pattern and Debrief make those entries useful without hiding missing days or stretching an observation into a conclusion.



Log
Log what is happening now. An entry added later keeps a retrospective label.
pain · mood · bleeding · impactConnect
Each record keeps its cycle context, source, timestamp, and edit history.
cycle context · provenanceCompare
Comparisons wait for enough data. Missing entries and uncertainty stay beside the result.
completeness · personal baselineShare
The history becomes a short record someone can review alone or bring to a clinician. The summary stops short of diagnosis.
debrief · doctor summaryI brought fast logging, careful comparisons, flare support, cycle debriefs, and a shareable record into one local app.
Demo means demo.
Synthetic history lives in a separate, resettable store. That lets me review the product and capture screenshots without exposing personal health information.
separate stores · resettablePatterns come with their limits.
The app can show timing and response patterns. Sample count, completeness, and limitations sit beside each observation, so a thin record never becomes evidence that an intervention worked.
counts · spread · limitationsCore tracking stays useful for free.
The product rules keep the diary, flare support, debrief, report, mood, calendar, and widget available without a subscription.
logging · flare · debrief · reportThe app records. It doesn't prescribe.
Default interventions are non-drug options. People write their own reminders, and the language checks block diagnosis, medication timing, and dosing guidance.
no diagnosis · no dosingIf the record is incomplete, the screen has to say so.
- Keep personal diary data on the device; do not require an account or cloud backend.
- Keep synthetic Demo history in a separate, resettable workspace.
- Carry source, effective time, recorded time, and edit provenance with every event.
- Show completeness and missingness beside every comparison that depends on them.
- Use observational language; never turn a pattern into a diagnosis or a treatment claim.
- Never place health-derived data, identifiers, or forecast state in a commerce URL.
The proof of concept, source, and verification history remain private.
The private build runs on an iPhone today. It covers daily logs, cycle views, flare support, response patterns, a doctor-ready summary, and a resettable Demo workspace.
private · device-ready POCA separate, resettable workspace makes the patterns and reports reviewable without putting anyone's health history on screen.
synthetic data · clearly labeledAutomated checks catch diagnostic conclusions, medication recommendations, health-derived commerce links, and claims the record cannot support.
observational · non-diagnostic

