A product is not real until users are securely isolated, authenticated, and billed correctly.
Day 8 was not about “adding payment”. It was about building the invisible walls that make a product safe to sell.
Everyone can build a feature.
Very few build the boundaries that make it trustworthy.
License keys are not “payment logic”
In many MVPs, billing is treated as an afterthought.
In reality, a license key is not about money.
It is about:
- User isolation
One user must never see another user’s data — even accidentally. - Quota enforcement
Usage limits must be deterministic, not “best effort”. - Reset cycles
Monthly usage resets are not cron jobs — they are part of the product contract. - Abuse prevention
Expired, shared, or manipulated keys must fail safely. - Trust boundaries
The system must know exactly who is allowed to do what, and when.
Payment is just the trigger.
Entitlement is the real system.
Trust and fairness are system properties
From an enterprise sales perspective, this matters more than features.
If the system is unfair, leaky, or inconsistent:
- honest users feel punished
- abusive users feel rewarded
- sales loses credibility fast
So Day 8 focused on fairness by design.
What had to work
- Multi-tenant isolation
Users (even Trial users) cannot see each other.
Users are strictly separated by license scope. - Designed-for-error paths
Invalid key
Expired key
Quota exceeded
Network failure
Each case must fail clearly and safely, not silently. - Monthly reset logic
Built around real SaaS thinking — not “reset when convenient”.
Gumroad’s raw transaction and entitlement data are treated as source-of-truth signals.
From MVP to product
Day 7 was when Closmore stopped being a tool
and started becoming a business system.
Day 8 was when it became commercially real.
At this point:
- users are isolated
- access is enforced
- billing is fair
- failure modes are explicit
This is no longer a demo.
Closmore is now 1.0.
About the extra day
I took one extra day beyond the original 8-day plan.
Not to add features —
but because the popup → persistent sidebar surgery in Day 7 fundamentally changed the product’s shape.
Rushing billing on top of an unstable UX would have been dishonest.
So the final step remains:
Day 9 — Finalization
- server uploads
- Chrome Extension submission
(this was my original Day 8 plan)