AmoleoFamily

Process & Registry

This doc governs

What Amoleo pays a vendor

Hosting, storage, email, analytics — prefer whichever option stays inside a free tier while the family isn't earning money. Legal obligations (GDPR, WCAG AA, consumer rights) apply regardless.

This doc has no opinion on

What a user pays us

A product's own free/premium split. A feature costing us nothing to host can still sit behind Premium — maintenance is a real cost even when hosting isn't. See each repo's own Mission Statement; Amoleo Pets' health guarantee is the one documented exception, and it doesn't generalise to other repos.

Cost model — free where it's free, legal regardless

Decided 3 Sept 2026. Until the family is earning money, prefer whatever option stays inside a free tier, for every choice that has one — hosting, storage, email sending, analytics, anything with a paid/free split. This is an explicit, ongoing bias, not a one-off cost cut: when two designs are otherwise a reasonable trade, the free one wins, even if the paid one is modestly nicer, faster to build, or the more "normal" choice outside this family.

This is not a licence to cut legal corners. The family still has to operate as if it were a commercial entity from day one, because for the things that matter — data protection, accessibility, consumer rights — it already is one the moment a real person's data touches it, revenue or not. GDPR does not have a free-tier exemption for hobby projects, and neither does the WCAG AA bar this family has already set for itself (family-accessibility.md). "We're not making money yet" is not a defence against a UK ICO enquiry or a discrimination complaint, and it is not a reason this family will use one. Being free and being compliant are separate axes; optimise the first without ever trading it against the second.

"Free" means what we pay a vendor, not what a user pays us

This is a policy about the family's own infrastructure spend — what Amoleo pays Cloudflare, a hosting provider, an email sender, anything with a bill that comes to us. It is a different axis entirely from a product's own user-facing free/premium split, and the two must not be conflated:

So when weighing whether to build something: "does it fit a free tier" (this doc) and "should it be free to the end user" (each product's own mission statement, checked against mission-statements.md) are two separate questions, and answering one says nothing about the other.

What this looks like in practice

The instinct already exists in the family's own decisions — this doc is the first time it's named as the policy behind them rather than left as one-off reasoning repeated per repo:

How to apply it to a new decision

When a choice has a free option and a paid one:

  1. Check whether the free tier's ceiling is one this family will actually hit. Amoleo-Images did the arithmetic instead of guessing — traffic estimate against the documented limit, written down, not "should be fine." Do that, not a vibe.
  2. Prefer designs that make hitting the ceiling a visible, cheap decision later, not a redesign. The free choice should degrade or need an upgrade, not fail silently or require re-architecting to move off it.
  3. Never let staying free weaken a legal obligation. If the free option and the compliant option diverge, the compliant option wins, full stop — see family-accessibility.md and family-seo.md for the two baselines already written down that this applies to most directly, and general UK/EU data protection law for anything that touches a real user's personal data (see Amoleo-Pets/ and Amoleo-Connections/' own login/data handling, and ask a legal-compliance review — see the legal-compliance-reviewer agent — rather than assuming).
  4. Write the trade-off down wherever the decision lands (that repo's own docs/, or here if it's family-wide), the same way Images did — not just the choice, but the ceiling, the accepted risk, and what crossing it would mean. A free choice made silently is indistinguishable from one nobody thought about.

What this does not cover

This is a bias for new decisions, not a mandate to retrofit already-shipped infrastructure. Nothing here says to migrate an existing paid service down to a free one — that's its own cost/effort trade-off, made explicitly if it ever comes up, not implied by this document.

There is no checker for this one, and there may never be one — "did we pick the free option" isn't something a script can verify the way a hex code or a class name is. This is enforced the way §2/§4 of stack.md are: by this document being short enough that a decision gets checked against it by someone reading it.

Generated from docs/cost-model.md. Edit there and re-run npm run build in docs-site-src/ — never hand-edit a page.