Free forever plan · 2,051 shops live · No credit card to start

Public recordmethodology 2026-07-31.1served from edge cache

Our numbers, on the public record.

Every figure Cottage CMS quotes anywhere — this site, a podcast, a pitch deck — is defined on this page, recomputed on a schedule, and hash-linked so it cannot be quietly revised later. Commerce figures are released only for qualified completed periods.

Live storefronts

2,051

as of 2026-07-31T02:06:00Zchain 0ce9379dc856

Registered accounts
2,056
Active accounts
2,056
New live in 30d
377
On own domain
286

01

From account to actual sales.

Every new account receives a default storefront, so account status and storefront totals naturally sit close together. Each figure below answers a progressively stronger platform-wide question: does the account exist, is its storefront reachable, and has that surviving shop ever recorded a paid order?

  1. Step 01Current snapshot · 2026-07-31

    Account created

    2,056

    Registered accounts

    Every shop account that exists on the platform right now.

    A signup is the beginning of the journey. It does not mean the shop published or sold.

    Exact rule

    All tenant records regardless of status, including suspended accounts. Accounts deleted by their owner are removed from the database and are therefore excluded entirely.

  2. Step 02Current snapshot · 2026-07-31

    Storefront reachable

    2,051

    Live storefronts

    Active accounts with a real, publicly reachable shop.

    Every new account receives a default storefront, so this milestone currently sits close to account creation.

    Exact rule

    Active account with at least one published page, or at least one product that is active and set to display in the shop. This is the number we use when we say "shops live".

  3. Step 03Recorded through · Jun 2026

    Has made a sale

    239

    Shops with recorded sales

    At least this many distinct shops have recorded a paid, non-cancelled order.

    Privacy batching and owner-deleted records can make it conservative, and a counted shop may no longer be live or actively selling.

    Exact rule

    A cumulative lower bound across all currencies. Its boundary advances when the observed total is unchanged or rises by at least five shops.

Administrative status remains available in the public dataset: 2,056 of 2,056 registered accounts are active. It is not shown as a journey step because “active” only means the account is not suspended or pending deletion.

Free plan

1,634

Paid subscription

341

Lifetime

76

Current live storefronts split by their Cottage CMS plan. This is a platform-plan count, separate from the completed-period seller commerce figures below. If any plan group has fewer than five shops, every plan group is withheld so subtraction cannot recover it.

02

From signups to shops making sales.

The account curve begins in the month the first surviving account was created and accumulates from there, so it shows the platform's actual operating history instead of empty pre-launch months. Shops with sales is a monthly activity measure: each closed point counts distinct shops with at least one paid, non-cancelled order across any currency. It is not cumulative, so the curve shows how many sellers were active in each month rather than how many have ever sold.

Registered accounts by month

Jul 2025–Jul 2026 · 13 monthly checkpoints · cumulative accounts · no snapshots published yet, every month reconstructed

06251,2501,8752,500Jul 2025Nov 2025Mar 2026Jul 2026
Attested — backed by a snapshot rowReconstructed — survivorship bias applies
Show data table
Registered accounts by month
MonthAccountsShops with salesUSD order countGross USDSource
2026-072,056reconstructed
2026-061,6791581,066$41Kreconstructed
2026-051,389124910$38Kreconstructed
2026-041,06690586$25Kreconstructed
2026-0386170499$22Kreconstructed
2026-0261743238$8Kreconstructed
2026-0150222108$4Kreconstructed
2025-12349519$700reconstructed
2025-1127600$0reconstructed
2025-1022600$0reconstructed
2025-095400$0reconstructed
2025-082200$0reconstructed
2025-07100$0reconstructed

03

What these shops sold — after the month closes.

Commerce is released by closed UTC month. Every published month and currency must independently represent at least five shops; current-month values remain pending, and withheld intervals are never smuggled into a later total. The chart reports all-currency shops with sales alongside a USD-currency order count and USD gross.

Released through

2026-06

Shops with a paid order · latest closed month

158

Paid-plan shops with a paid order · latest closed month

134

The first count includes every surviving shop account that recorded at least one paid, non-cancelled order during the month, even if its storefront later became inactive. The second is the subset on a paid or lifetime Cottage CMS plan. A dash means the count is pending or withheld by a threshold or complementary privacy control.

Qualified completed history

CAD

history

withheld

No completed CAD month in this window independently met the five-shop publication threshold.

USD

history

$138K

Order count
3,426
Published
7 mo
Withheld
0 mo

Latest 3 completed months

CAD

3 months

withheld

No completed CAD month in this window independently met the five-shop publication threshold.

USD

3 months

$104K

Order count
2,562
Published
3 mo
Withheld
0 mo

04

Where the shops are.

Cottage food law is written state by state and province by province, so the regional shape of the platform matters more here than in most markets. Regions are self-reported at signup and never inferred from a visitor’s IP address.

Live storefronts by state · self-reported at signup

No state-level breakdown is published for United States. Regional detail stays unavailable whenever a complete, privacy-safe partition cannot be shown. Shops without a stated state remain in the national total.

05

Check the arithmetic yourself.

Self-reported numbers invite scepticism, and they should. The strongest thing we can do is make revision detectable: each daily snapshot is hashed together with the hash before it, so altering a figure breaks every link that follows. This page verifies the latest bounded window; independent archives are what anchor earlier history.

Integrity check

Verify the ledger in your browser

Every published snapshot is hashed and linked to the one before it. Press the button and your browser recomputes the latest 1 digests, validates their displayed metadata, and checks every loaded predecessor link from the same JSON our API serves — no part of this check runs on our servers.

Chain head
0ce9379dc85666ef
Snapshots loaded
1
Latest snapshot
2026-07-31

1 links awaiting verification

Reproduce it yourself

payload_hash = SHA-256( canonical_json(payload) )
chain_hash   = SHA-256( (prev_chain_hash or "genesis") + ":" + payload_hash )

outer metadata:
  - snapshot date, methodology version, and capture time equal the hashed payload
  - sequence numbers are contiguous

canonical_json:
  - object keys sorted lexicographically
  - no insignificant whitespace
  - array order preserved
  - all numbers are integers

Fetch /api/transparency and apply the rules above. A loaded window that verifies proves its payloads and links are internally consistent with the published checkpoint. It does not verify rows before a bounded checkpoint or prove the figures were right when captured — we control the chain head, which is why archiving this endpoint independently is worth more than our word.

06

What these numbers cannot tell you.

Ambiguous definitions destroy credibility faster than unimpressive figures, so the limits are published with the same weight as the results. If you find something misleading here, tell us and we will change the definition and log the change.

  1. 01

    Commerce is released by completed UTC month, never as a live or rolling value.

    A month-and-currency cell is published only when at least five distinct shops contributed during that exact closed interval. Current-month values remain pending, and suppressed months are never folded into a later total.

  2. 02

    Completed-history and trailing-three-month totals are derived only from immutable monthly cells already present in the public payload.

    This makes every aggregate change reproducible from previously disclosed intervals instead of exposing a hidden shop’s activity by subtraction.

  3. 03

    Survivorship bias applies to reconstructed history.

    Registered-account history is bucketed from creation timestamps for accounts that still exist today. Completed-month shops-with-sales values are reconstructed once from surviving paid orders, then frozen in the ledger. Owner-deleted accounts and their cascaded orders make early totals conservative.

  4. 04

    The all-history shops-with-sales total is a monotonic lower bound of distinct shop accounts with at least one paid, non-cancelled order in any currency through a published closed-month boundary.

    The boundary advances when the observed count is unchanged or has increased by at least five shops; smaller or net-negative changes retain the prior release. Owner-deleted accounts and privacy batching can make it conservative, and it does not imply that every counted storefront is still live or still selling.

  5. 05

    The hash ledger proves consistency, not correctness.

    It shows that no published row has been altered after the fact, because changing one breaks every link after it. It does not prove the figures were right when captured — we control the chain head. Anyone wanting a stronger guarantee should archive the JSON endpoint independently, which pins our numbers to a date we cannot revise.

  6. 06

    We do not convert currencies.

    Completed-month currency cells remain separate and are never folded into a blended total at an invented exchange rate.

  7. 07

    Small cells are suppressed.

    A numeric breakdown is published only when it and every implied complement contain either zero or at least 5 distinct shops. Geography omits an entire level if any stated or unstated partition is smaller than that threshold, so the omitted region cannot be identified.

  8. 08

    Changing platform and live-storefront breakdowns are released as one atomic block only on a daily snapshot.

    If any visible cell or implied complement changed by one to four shops, the prior block remains published until every changed value has accumulated a safe delta.

  9. 09

    Plan buckets are complementarily suppressed as one group: if any free, paid, or lifetime bucket contains one to four live shops, all three bucket values are withheld so the public live-storefront total cannot be used to reconstruct the small bucket..

  10. 10

    The monthly chart reports distinct shops with a paid, non-cancelled order across all currencies, plus a USD-currency paid-order count and USD gross.

    Each closed-month series is independently qualified by at least five contributing shops. The latest completed-month paid-plan count is the subset of selling shops on a paid or lifetime Cottage CMS plan and is withheld when subtraction would expose fewer than five free-plan shops.

  11. 11

    Gross merchandise value is rounded to the nearest $100 per qualified completed-month cell and includes offline payments sellers marked paid.

    It measures commerce recorded by these shops, not money that flowed through Cottage CMS, and we take no percentage of it.

  12. 12

    Location is self-reported at signup and never inferred from visitor IP addresses.

    Sellers who did not state a region are counted in the national total and omitted from the regional breakdown.

  13. 13

    A released commerce interval is immutable.

    Later refunds, deletions, or status corrections do not revise its public value; any methodology change is introduced in a new version rather than rewriting the ledger.

We would rather be checked than believed.

If you are a journalist, a researcher, or a competitor and something here does not add up, we want to hear about it. If you are citing us, every rung above has a copyable citation with its definition attached so the number never travels without its meaning.