Hello world
by Blitz Kit1 min read
This is a real MDX post, rendered from content/blog/hello-world.mdx. Delete it,
rename it, or write your own next to it — the index, the RSS feed, the sitemap
and the Open Graph image all pick up new files with no other edit.
How posts work
The block at the top of this file is YAML front matter. It is read twice, on purpose:
- At render time a remark plugin turns it into a
metaexport on the compiled module, so the post page has the title without re-parsing anything. - At index time
lib/blog.tsreads the same block off disk, which is what lets the RSS feed and the sitemap list every post without pulling each one's compiled JSX into their bundle.
One source, two readers. They cannot drift apart.
What you get for free
Because this is MDX rather than Markdown, you can drop a React component into a post when prose is not enough — a pricing comparison, a live demo, a callout. Plain Markdown keeps working exactly as you would expect:
// Every price on the landing page comes from here.
export const plans = {
starter: { zarCents: 19900, usdCents: 1200 },
};
Making it yours
The landing page is assembled from configuration, not markup. Feature cards and
FAQ entries are listed in config/marketing.ts; their copy lives in the message
catalogues under the marketing namespace; the pricing table renders whichever
catalogue config/catalogue.ts selects.
So the usual first session looks like this: edit your plans, rewrite the six feature blurbs, answer the five questions your customers actually ask, and replace this post. No component surgery required.