frontend engineering

Plain Compiler

Hi, I'm Rafael. Practical writing about frontend engineering by Rafael Kim. I write about bundle size, accessibility, form validation and whatever else I'm learning this month.

Latest writing

  • · 3 min read

    Shipping Less JavaScript Without Rewriting Everything

    A colleague asked me last week why our team cares so much about hydration. I gave a rambling answer, so here is the longer, more organized version.

    #javascript#typescript#css
  • · 3 min read

    What Actually Moved Our Largest Contentful Paint

    A colleague asked me last week why our team cares so much about Core Web Vitals. I gave a rambling answer, so here is the longer, more organized version.

    #performance#a11y
  • · 3 min read

    Building Forms That Don't Fight the Browser

    A colleague asked me last week why our team cares so much about design tokens. I gave a rambling answer, so here is the longer, more organized version.

    #javascript#typescript
  • · 3 min read

    A Practical Guide to CSS Container Queries

    This post started as a note to my future self. Every few months I relearn the same lessons about container queries, so this time I'm writing them down.

    #tooling#javascript
  • · 3 min read

    Design Tokens Are a Contract, Not a Color Palette

    This post started as a note to my future self. Every few months I relearn the same lessons about design tokens, so this time I'm writing them down.

    #javascript#tooling#performance
  • · 3 min read

    How We Test UI Without Snapshot Tests

    Every codebase has one area everyone is a little afraid to touch. On our team, it was everything related to server-side rendering.

    #css#typescript#tooling
  • · 3 min read

    The Accessibility Bugs Our Test Suite Never Caught

    There is no shortage of articles about Svelte. Most of them cover the happy path. This one is about what happened after the happy path ended.

    #css#a11y#react
  • · 3 min read

    Server Components, One Year Later

    There is no shortage of articles about Playwright. Most of them cover the happy path. This one is about what happened after the happy path ended.

    #a11y#css
  • · 3 min read

    Notes From Migrating a Large App to Vite

    There is no shortage of articles about Vite. Most of them cover the happy path. This one is about what happened after the happy path ended.

    #css#react#tooling
  • · 3 min read

    Why I Stopped Reaching for a State Management Library

    For a long time I treated bundle size as something to worry about later. Then a small change to our Vite setup turned into a week of debugging, and "later" arrived all at once.

    #react#tooling