Skip to main content
Auto-memory
Retell + Twilio
MCP ecosystem
Founder Pres.
Obsidian + QMD
Review pass
Claude / Codex
Convex
75K+ sold
SwiftUI CloudKit
Next.js + Vercel
1,350+ locations
Shopify
Session notes
Founder
MCP forks
<60s response
Operator chapters
Founder & CEO
121+ skills
Six figures raised
Founder office
back to grid
Projects2026

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
§01The workThe product

These screenshots come from the current iPhone build. Every health entry shown is synthetic Demo data.

The productToday. Pain, mood, bleeding, functional impact, and interventions are all a few taps away. / Pattern. The comparison uses the person's own baseline and keeps missing days visible. Synthetic demo data shown. / Debrief. See what was recorded, how much is missing, and which days hurt the most. Synthetic demo data shown.
§02The pipelineEnd-to-end flow
01

Log

Log what is happening now. An entry added later keeps a retrospective label.

pain · mood · bleeding · impact
02

Connect

Each record keeps its cycle context, source, timestamp, and edit history.

cycle context · provenance
03

Compare

Comparisons wait for enough data. Missing entries and uncertainty stay beside the result.

completeness · personal baseline
04

Share

The history becomes a short record someone can review alone or bring to a clinician. The summary stops short of diagnosis.

debrief · doctor summary
§03What I builtPieces that compound

I 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 · resettable

Patterns 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 · limitations

Core 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 · report

The 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 dosing
§04Build rulesPrivacy · provenance · language

If the record is incomplete, the screen has to say so.

Selected rulesprivate proof of concept
  1. Keep personal diary data on the device; do not require an account or cloud backend.
  2. Keep synthetic Demo history in a separate, resettable workspace.
  3. Carry source, effective time, recorded time, and edit provenance with every event.
  4. Show completeness and missingness beside every comparison that depends on them.
  5. Use observational language; never turn a pattern into a diagnosis or a treatment claim.
  6. Never place health-derived data, identifiers, or forecast state in a commerce URL.
§05StackEvery tool earns its line
SwiftUI / InterfaceSwiftData / Local persistenceHealthKit / Optional import boundaryWidgetKit / At-a-glance stateUserNotifications / User-chosen remindersSwift Testing / VerificationiOS 18+ / Target
§06ArtifactsReceipts and public proof

The proof of concept, source, and verification history remain private.

Installable iPhone proof of concept

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 POC
Synthetic Demo workspace

A separate, resettable workspace makes the patterns and reports reviewable without putting anyone's health history on screen.

synthetic data · clearly labeled
Safety and language gate

Automated checks catch diagnostic conclusions, medication recommendations, health-derived commerce links, and claims the record cannot support.

observational · non-diagnostic