After an image appears in the conversation, one explicit request can reuse that exact image as the group photo.
The generated-photo state exercises the production feature card and its supporting detail at desktop and phone widths.
Synthetic release copy exercises generated group photos and the production archive rhythm without reading live product data.
New features
After an image appears in the conversation, one explicit request can reuse that exact image as the group photo.
The generated-photo state exercises the production feature card and its supporting detail at desktop and phone widths.
The archive can show a small responsive table when rows and columns explain the released behavior better than another paragraph.
Compact response
2 rows| Metric | Today | Goal |
|---|---|---|
| Protein | 92 g | 120 g |
| Fiber | 24 g | 30 g |
Improvements
A confirmed appointment can show its follow-up action and a compact calendar preview in the same archive card.
Confirmed appointment
When a flow cannot continue, the archive card keeps the explanation short and names the next available action.
Stay in the app
The archive can pair a short release note with one verified contact action and no extra identity claims.
Contact card
vCard
Murph
Verified line after setup
The archive can explain a conversational correction beside a compact phone example without overwhelming the release note.
Private conversation
A bounded chart study covers numeric context without turning the changelog into a dashboard.
Reference context
92
Search loading
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
Capped search
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. Search returns the complete matching set up to the documented 100-row safety cap.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
Empty search
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. Search returns the complete matching set up to the documented 100-row safety cap.
Captured Jul 22, 2026, 6:00 PM
Invalid search
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. Search returns the complete matching set up to the documented 100-row safety cap.
Captured Jul 22, 2026, 6:00 PM
Stale row error and recovery
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
Destructive confirmation
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
This operation ignores the active search filter and walks the hosted population in fixed, small ID-ordered batches. It is not atomic, does not capture a population snapshot, and does not pause ongoing usage. Each member commits independently before any runtime recheck. The starting population was 47; the live total may change while the walk runs.
Explicit operation abandonment
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
This operation ignores the active search filter and walks the hosted population in fixed, small ID-ordered batches. It is not atomic, does not capture a population snapshot, and does not pause ongoing usage. Each member commits independently before any runtime recheck. The starting population was 47; the live total may change while the walk runs.
Last acknowledged cursor: hbm_design_024
Bounded progress
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
This operation ignores the active search filter and walks the hosted population in fixed, small ID-ordered batches. It is not atomic, does not capture a population snapshot, and does not pause ongoing usage. Each member commits independently before any runtime recheck. The starting population was 47; the live total may change while the walk runs.
The page is continuing one bounded request at a time. A pause request takes effect after the current request returns. Per-row reset controls remain disabled until this operation stops or completes.
Last acknowledged cursor: hbm_design_020
Pending-wake rows already committed their usage reset. Recovery replays the existing per-member operation receipts and retries only the runtime wake.
Completion
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
This operation ignores the active search filter and walks the hosted population in fixed, small ID-ordered batches. It is not atomic, does not capture a population snapshot, and does not pause ongoing usage. Each member commits independently before any runtime recheck. The starting population was 47; the live total may change while the walk runs.
Last acknowledged cursor: hbm_design_047
Population complete with runtime recovery remaining
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
This operation ignores the active search filter and walks the hosted population in fixed, small ID-ordered batches. It is not atomic, does not capture a population snapshot, and does not pause ongoing usage. Each member commits independently before any runtime recheck. The starting population was 47; the live total may change while the walk runs.
Last acknowledged cursor: hbm_design_047
Pending-wake rows already committed their usage reset. Recovery replays the existing per-member operation receipts and retries only the runtime wake.
Partial failure and recovery
Whole-population usage totals with a bounded, ID-ordered view of hosted members and synthetic group containers. Reset clears current included usage or restores one fresh Starter allowance without changing immutable usage history or purchased credits.
Population recovery
Reset everyone runs small ID-ordered batches and explicitly ignores any active search filter. It is bounded and non-atomic.
Retained inbound messages cover the canonical 30-day mailbox window. Last 7 days and daily average use the trailing seven 24-hour periods. AI usage is all-time counted priced cost from immutable usage rows. Rows are ordered by member ID. The ordinary list remains limited to 25 rows per page.
Captured Jul 22, 2026, 6:00 PM
*** 0101
*** 0202
2 participants, owner hbm_design_owner
This operation ignores the active search filter and walks the hosted population in fixed, small ID-ordered batches. It is not atomic, does not capture a population snapshot, and does not pause ongoing usage. Each member commits independently before any runtime recheck. The starting population was 47; the live total may change while the walk runs.
Last acknowledged cursor: hbm_design_024
Pending-wake rows already committed their usage reset. Recovery replays the existing per-member operation receipts and retries only the runtime wake.
Progress
We shipped the personal experiment loop first. The wedge became obvious — people don’t want to optimize alone, they want to run health challenges with friends. Group challenges shipped in July. Revenue has compounded every week since.
18% w/w MRR growth
Compounded over the last 30 days, with revenue up every week.
+82% paying customers
In 30 days, with zero paid acquisition.
10 msgs / day / active user
3,003 messages exchanged last week — 73 per weekly active user.
What our users are doing
Solo usage, every week
What's running
Group challenges
Each UTC window counts retained distinct senders whose messages Murph received across personal and group chats. Personal and owned-group rows are removed with account deletion; activity retained in another member's shared group follows normal content retention. Solid sage tracks the trailing seven-day window; dashed sand shows each completed UTC day. Unknown history is left blank.
Cumulative hosted messages through each completed UTC day. Unavailable history is left blank.
Daily inbound messages plus tracked Linq replies, by UTC date. Unavailable days are left blank.
Daily member records created and starter usage activated by UTC date.
Daily captured MRR and paying customer count.
An estimate, not invoices: the month's latest recorded subscription rate plus top-up and group sponsorship cash paid that UTC month. Refunds are not subtracted, and account deletion can remove past purchase cash or leave an old group gift counted as a regular top-up. The newest bar is month to date, a month with no snapshot withholds its total, and months from before the subscription split show subscriptions as one combined line. Hover, tap, or focus a bar for the breakdown.
Last 30 UTC dates through capture. A use is counted when a recipient selects Join Murph and an attributed invite is created. Page views, copied links, and shares are not tracked here. Counts reflect retained records, so account deletion can remove a claim or its referral attribution from this view.
Claims and the claims activated by capture, grouped by the invite's UTC claim date. These cohorts remain open; newer claims have had less time to activate.
Last 30 UTC dates through capture. A use is counted when a recipient selects Join Murph and an attributed invite is created. Page views, copied links, and shares are not tracked here. Counts reflect retained records, so account deletion can remove a claim or its referral attribution from this view.
No retained referral claims were recorded in this 30-day window.
Source is captured when starter usage activates. Direct iMessage means an inbound iMessage activated starter access. Historical activations without persisted provenance remain Unknown.
| Started | Path | Contact hint | Member record |
|---|---|---|---|
| StartedJul 31, 2:09 PM UTC | Path Direct iMessageInbound iMessage | Contact hintPhone *** 0194 | Member recordCreated same UTC day |
| StartedJul 30, 5:42 PM UTC | Path Companion appAuthenticated native onboarding | Contact hintNo phone hint | Member recordCreated Jul 12, 2026 · 18 days earlier |
| StartedJul 29, 11:21 AM UTC | Path WebsiteAuthenticated web onboarding | Contact hintPhone *** 4827 | Member recordCreated same UTC day |
| StartedJul 28, 1:05 PM UTC | Path UnknownSource was not captured | Contact hintNo phone hint | Member recordCreated Jun 18, 2026 · 40 days earlier |
Source is captured when starter usage activates. Direct iMessage means an inbound iMessage activated starter access. Historical activations without persisted provenance remain Unknown.
| Started | Path | Contact hint | Member record |
|---|
Monthly sponsorships are capped usage authorizations, not subscriptions, so their caps and charges stay outside plan MRR. Gross charges are fulfilled live-mode payments still represented in the retained sponsorship ledger in the current UTC month and do not net refunds or disputes; usage is exact sponsor-funded credit consumed in the same window.
| Source | Payments | Gross charges MTD |
|---|---|---|
| Monthly sponsorship charges | 3 | $15.00 |
| One-time contributions | 1 | $20.00 |
| Gross sponsorship charges | 4 | $35.00 |
Rolling seven-day member-record creation and starter-activation volumes, newest first. A member record can predate activation, so use Starter start paths for acquisition provenance.
| Window | Member records | Record change | Starter activations | Activation change |
|---|---|---|---|---|
| Jul 25 to Jul 31 | 34 | +13% week over week | 23 | +10% week over week |
| Jul 18 to Jul 24 | 30 | No week baseline | 21 | No week baseline |