22 jun 2026
i added a blog to this site
why benbykovski.com now has a build-log, and the boring markdown stack behind it. publish by dropping a file.
quick one. the site needed a place to write, so i built one. this is the first post in it, and it's a build-log of the thing you're reading on.
why a blog at all
the plan was never "become a blogger." it's that a writeup of a real build is the one piece of content that compounds. it's SEO i own, a recruiter signal, and the source i can cut a thread or a linkedin post from later. one build, triple duty. so /writing is the engine.
the stack (deliberately boring)
posts are just markdown files in content/writing/, rendered to static HTML at build time. publishing a post means i drop a .md file and push. that's the whole flow.
- gray-matter parses the frontmatter
- remark / rehype turn the body into HTML
- shiki highlights code blocks
- next.js renders it all statically, so zero content JS ships to the browser
the whole pipeline is one file:
export async function renderMarkdown(content: string): Promise<string> {
const file = await unified()
.use(remarkParse)
.use(remarkGfm)
.use(remarkRehype)
.use(rehypePrettyCode, { theme: "github-dark-dimmed" })
.use(rehypeStringify)
.process(content);
return String(file);
}what's next
the "what i've shipped" ledger, then tying the whole thing (site, x, linkedin, github) into one loop. more soon.
(placeholder copy. first real post replaces this.)