The explanation that lived in a chat thread
Someone explains why we stopped doing something, and three months later the reasoning is buried under a thousand messages. A post keeps it findable, with the screenshot of the screen it was about.
Waar we opschrijven hoe we werken, en wat we besloten niet te doen.
Vier stukken tot nu toe: een week in Growth-OS van maandag tot vrijdag, wat Growth-OS bewust niet doet, hoe een besluit de maand overleeft waarin het genomen is, en waarom elk inzicht het citaat draagt waar het uit komt. Een artikel is één getypeerde regel, en de lijst, de filters, de leestijd, de verwante stukken en de artikelmarkering komen daar allemaal uit.
Het mechanisme van begin tot eind, zoals het in de repository is geïmplementeerd.
Add a typed post
Define the post in one content file with its slug, date, description, author, tags and content blocks. The required fields are enforced by the type.
Discovery derives itself
The featured story, category filters, search, reading time and listing cards are computed from the catalog, with no wiring per post.
One shell renders every post
The shared article component renders all six block types, and a related link must point at a post that exists, so it cannot go stale.
Crawlers see what readers see
The post page emits article markup from the same metadata that renders on screen, so the two cannot disagree.
Interactief voorbeeld
Deze rondleiding toont het geïmplementeerde backendcontract zonder account, credentials of providercalls.
Interactief voorbeeld
Alleen deterministische voorbeelddata. De interactie gebruikt geen account-, provider- of netwerkverbinding.
Zonder een gedeelde basis bouwt elk team deze randgevallen opnieuw, en anders.
Someone explains why we stopped doing something, and three months later the reasoning is buried under a thousand messages. A post keeps it findable, with the screenshot of the screen it was about.
One post with no date, another with no author, a third with no description. Making those fields part of the type means an incomplete post cannot build.
Hand-rolled markup per article makes callouts, screenshots and code blocks drift apart, and writing turns into coding. Six block types through one shell keeps every post consistent.
Kernpunten
Add a post to one typed file and the listing, filters, reading time and related stories update on their own.
Paragraphs, lists, callouts, code, screenshots of the real workspace and quotes all render through one shared article layout, so every post reads the same way.
Date, author and description are part of the type, so an incomplete post fails the build rather than publishing with holes in it.
Technische garanties
Artikelen staan in de repository en worden bij de build gecontroleerd. Een schermafbeeldingsblok noemt een opname uit de echte werkruimte, en een naam die niet bestaat toont niets in plaats van een kapotte afbeelding. RSS, opgeslagen reacties en gegenereerde social images zijn niet gebouwd, en de uitgeschakelde Sanity-opzet is geen actief contentsysteem.
De grens hierboven is geen claim maar code. Deze bestanden dragen het contract:
src/modules/blog/content.tssrc/modules/blog/BlogArticle.tsxsrc/routes/_public/blogDeze functies delen contracten en grenzen met deze pagina.
De documentatie beschrijft dezelfde contracten die deze pagina demonstreert.