Ben Bykovski

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.)