Content platforms often treat visibility as a UI field and implement the rules separately on every page. That eventually creates bugs: a story appears on the homepage but its shared link fails, or private content becomes visible to search engines.
Cogweald treats visibility as part of the read model:
- Public: listed in the catalogue and readable.
- Unlisted: not listed in the catalogue, but readable by anyone with the link.
- Private: readable only by the owner.
The same meaning must apply to SSR pages, archives, chapter routes, RSS, Open Graph images, and Explore queries. Forgetting the rule on any one surface creates an information boundary bug.
A practical testing reminder: do not only test whether a button is hidden. Test every possible entry point that can retrieve the data.
Visibility is domain policy, not a presentation detail.
Top comments (0)