You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
why.mdx sells multi-tenancy as "Built in" in the DIY comparison, with no licence or shared-schema caveat #144
Observation found while restoring the multi-tenant fit row on #90. Not fixed there — that card's ruled scope is the "Common scenarios where it's a fit" table, and the wording of a comparison-table cell is a positioning judgement, not a mechanical correction.
What the page says
content/docs/why.mdx, in the vs. rolling your own (Next.js + Prisma + NextAuth) table:
DIY
ObjectOS
Multi-tenancy
DIY (and you'll get it wrong twice)
Built in
Why it is worth a look
"Built in" is unqualified, and two facts measured elsewhere in this corpus qualify it:
It is licence-gated.content/docs/reference/environment-variables.mdx — "A walled posture requires a licence: without one the runtime exits at startup rather than serve traffic while pretending to be isolated." content/docs/resources/license.mdx puts multi-org self-host in the ObjectOS Enterprise column only.
It is not schema isolation.content/docs/resources/glossary.mdx (Tenant) — "Those organizations still share the deployment's app, its database and its metadata, so the wall separates their data and memberships rather than their schema." Same in resources/faq.mdx and architecture.mdx.
So on the same page a reader now meets two claims about the same capability at different levels of qualification: the fit row restored under #90 names the Enterprise licence and the shared database/metadata boundary in the row itself; this cell says "Built in".
Whether that matters is a judgement call, and there is a real argument for leaving it alone: the comparison table's cells are all one- or two-word verdicts against a DIY baseline, and "Built in" is true of the mechanism — the wall's implementation ships, and building it yourself is the thing being compared against. Qualifying one cell and not the others may cost more clarity than it buys.
Recording it rather than acting on it. No suggested wording — if this is worth changing, the right shape is a positioning decision like #90's was.
Evidence gathered at objectos@514527b.
Related: #90 (that card remains scoped to the fit table).
Triage: closed not planned (triage seat grading; maintainer may veto by reopening). The same page's fit-table row — restored under the ruled scope of #90 — already carries the licence and shared-schema qualification; the comparison table's cells are uniformly one-to-two-word verdicts against a DIY baseline, and "Built in" is true of the shipped mechanism. Qualifying one cell would break the table's format for marginal clarity, which the card itself concedes. If the maintainer wants the cell qualified, reopen and it becomes a positioning decision like #90's.
Activity
os-zhuang commentedon Aug 23, 2026
Triage: closed not planned (triage seat grading; maintainer may veto by reopening). The same page's fit-table row — restored under the ruled scope of #90 — already carries the licence and shared-schema qualification; the comparison table's cells are uniformly one-to-two-word verdicts against a DIY baseline, and "Built in" is true of the shipped mechanism. Qualifying one cell would break the table's format for marginal clarity, which the card itself concedes. If the maintainer wants the cell qualified, reopen and it becomes a positioning decision like #90's.
Generated by Claude Code