This is the first post in the Cyberange Insights publishing pipeline. The
content collection is wired, the schema is validated at build time, and
the index page at /insights automatically picks up new
posts the moment they ship.
How publishing works today
Authors add MDX files to src/content/posts/ and open a pull request on
GitHub. Astro validates the frontmatter against the schema; if any field
is missing or mistyped, the build fails before the post can land. Once
merged, the next deploy publishes the post to the index.
The schema enforces the metadata that matters: a title, a description, a publication date, an author, a category drawn from a small fixed vocabulary, and optional tags. There are no surprise fields. There is no free-text “post type”. The shape is the same shape across every post.
What comes next
We’re holding off on installing the Keystatic
admin UI until we have a content-author cohort signed up. When we do,
non-technical authors will edit posts visually at /keystatic, and
Keystatic will commit the MDX to this same repository on their behalf.
The storage layer doesn’t change. The editor changes.
For now: anyone with Git access and an MDX editor can ship a post.
Conventions while we settle in
- One post per file. No multi-post bundles.
- Headline-grade titles. No more than ten words.
- Real categories. Pick from the enum in
src/content.config.ts— don’t invent new ones without an editorial review. - Drafts are explicit. Set
draft: trueto keep a post out of the index while you finish it. - Cover images are optional but encouraged. When you add one, fill in
coverAltfor accessibility.
Welcome aboard.