Blog

A collection of my thoughts, ideas, and experiences. I write about various topics, including web development, technology, and personal topics.

  • Link to article
    1 min read

    How to Load Files as ArrayBuffer in Vite

    How to load files like fonts as ArrayBuffers in Vite, with an example for embedding custom fonts when using Satori or @vercel/og for dynamic OG images.

  • Link to article
    4 min read

    How to set up a table of contents in MDX

    Learn how to automatically extract a structured table of contents from MDX posts using rehype plugins, Vite, and TypeScript.

  • Link to article
    4 min read

    Set up path aliases and type checking in MDX with TypeScript

    Improve DX and reliability in your MDX + TypeScript setup using two small but powerful configuration changes.

  • Link to article
    6 min read

    How to generate a robots.txt file in React Router 7 and Remix

    Learn how to dynamically generate a robots.txt file for your React Router 7 or Remix app with environment-based rules and automatic sitemap integration.

  • Link to article
    6 min read

    Make your button look like an actual button

    A simple guide to creating buttons that feel interactive, using nothing but modern CSS techniques inspired by real-world materials and lighting.

  • Link to article
    12 min read

    Tailwind CSS v4 tips every developer should know

    Looking for ways to improve your development with Tailwind CSS v4? Discover tips and tricks from workflow optimizations to common design patterns.

  • Link to article
    5 min read

    How to generate a Sitemap in React Router 7 and Remix

    Learn how to automatically generate a sitemap.xml file for your React Router 7 or Remix app using minimal configuration with this step-by-step guide.

  • Link to article
    10 min read

    The missing guide to fonts in React Router 7 and Remix

    Learn how to self-host fonts, integrate Fontsource, style with Tailwind CSS, and boost performance using preloading.

  • Link to article
    8 min read

    Sending thousands of Emails with Deno and Postmark

    Learn how we efficiently send over 37k notification emails with detailed logging and error handling.

  • Link to article
    12 min read

    Tailwind CSS v3 tips every developer should know

    Looking for ways to improve your development with Tailwind CSS v3? Discover tips and tricks from workflow optimizations to common design patterns.

  • Link to article
    14 min read

    Modern Syntax Highlighting with Shiki in Next.js 14

    Learn how to implement Shiki for modern and performant syntax highlighting in your React and Next.js projects with this comprehensive step-by-step guide.