Thiago Saraiva
Why Your First Design System Will Fail (And That's Okay)
Your first Design System will fail—and that's okay. Learn why perfection is impossible, how to iterate healthily, and why continuous improvement beats upfront planning.

Thiago Saraiva
Atomic Design in Practice: From Atoms to Pages
Build interfaces like chemists build molecules. Learn Brad Frost's 5-level methodology—atoms, molecules, organisms, templates, pages—with practical React examples.

Thiago Saraiva
Pixel Perfect Forever: Visual Regression Testing
Catch unintended CSS changes before production. Automate visual comparisons with Playwright, Chromatic, or BackstopJS and build confidence to refactor without fear.

Thiago Saraiva
Performance Budget: The Financial Discipline of Frontend
Performance Budget: Set page weight and timing limits like a financial budget. Learn to measure with Lighthouse, automate checks in CI/CD, and make conscious decisions about every KB you add.

Thiago Saraiva
Goodbye Waterfall: The Workflow That Puts Frontend at the Center
Learn why waterfall fails for frontend teams and how a parallel workflow with browser prototyping, CI/CD automation, and cross-discipline collaboration delivers faster, more predictable results.

Thiago Saraiva
How Red Hat Refactored Their Design System Without Stopping the Site
It was an ordinary afternoon when someone asked a seemingly simple question: "How modular is our design? We'd like to share small parts of the theme with other company sites.” The honest answer? Nervous laughter.

Thiago Saraiva
Do You Really Need a JavaScript Framework?
When a new project starts, the first question is usually: "React or Vue? Next or Nuxt? What about Svelte?”. Rarely does anyone ask: "Do we need a framework?”.

Thiago Saraiva
Specificity Wars: Why Your CSS Becomes a Mess and How to Fix It
CSS stands for "Cascading Style Sheets". The word "cascading" is beautiful, but hides a trap: styles overlap in not-always-obvious ways.

Thiago Saraiva
Style Guide-Driven Development: Documentation That Lives in the Code
Stop writing documentation that lies. Build living style guides with Storybook where docs update automatically with code. Includes setup, MDX, addons, and CI deployment.

Thiago Saraiva
Unit Testing in Frontend: The "Do One Thing Well" Mantra
Write testable frontend code by breaking functions into small, single-purpose units. Learn TDD, modern tools like Vitest, realistic coverage targets, and how to test React/Vue components.

Thiago Saraiva
From "Div Soup" to Modular Markup: The Evolution of HTML
In the old web publishing world, it was common for the frontend team to have **zero control** over markup. HTML was generated by the CMS, by backend developers who had already moved on to other tasks.

Thiago Saraiva
The 4 Pillars That Support a Scalable Design System
Every building needs a solid foundation, four walls, and a roof. Without these elements, it's not a building — it's a pile of materials waiting to collapse.

Thiago Saraiva
What Does a Frontend Architect Do? Beyond Writing Code
Have you ever wondered what separates a senior frontend developer from a Frontend Architect? The answer might seem obvious at first — more experience, more responsibilities — but the reality is far more interesting.

Thiago Saraiva
Living with JSX
JSX is quite straightforward: It will take 1 minute to know about this is an awesome alternative to templates.

Thiago Saraiva
Get window size in pure CSS
We all know that CSS it has become even harder nowadays. You wouldn't believe it, but CSS can define properties, do the math, and even directly get the window size!

Thiago Saraiva
Web server from scratch with NodeJS Streams
In this post, I want to go back to the basics and build a simple web server from scratch with NodeJS. In doing so, we will review the structure of HTTP requests and responses and get an introduction to Node's Stream API

Thiago Saraiva
Building a vector space indexing engine
I've always wanted to code a search engine from scratch and discovered that it's pretty simple. Here is an example indexer I coded using Python. The first thing we need to do is have a way to take the documents we want to search on.
