Thiago Saraiva
RPC in Practice: How to Make Your Services Talk Without the Headaches
Understand RPC (Remote Procedure Call), compare gRPC, tRPC, and JSON-RPC, and discover when to use each one in your microservices architecture.

Thiago Saraiva
Idempotency: The Technique That Separates Amateur Systems from Production-Grade Ones
Understand why idempotency is essential for distributed systems and learn how to implement idempotent operations with practical examples in Node.js and SQL.

Thiago Saraiva
Data Normalization on the Frontend: Why Your State Management Will Thank You
Duplicated data in state causes bugs and slowness. Learn how to normalize data like a relational database and simplify updates, caching, and real-time sync.

Thiago Saraiva
Polling and Long Polling: when WebSocket is overkill
Understand Short Polling and Long Polling, how to implement each from backend to frontend, and when they're the best choice over WebSocket.

Thiago Saraiva
WebSockets in practice: from handshake to production deploy
Complete guide to WebSockets: how they work, implementation with Socket.IO and ws, scaling with Redis, and when to actually use them.

Thiago Saraiva
Database normalization: how far to go (and when to stop)
Understand normal forms (1NF through 5NF), why to normalize, when to denormalize, and how to make practical decisions about database schema design.

Thiago Saraiva
Rate Limiting: How to protect your API without losing your mind
Rate limiting algorithms (Token Bucket, Sliding Window), implementations with Redis, Express and Nginx, and how to handle 429s on the frontend.

Thiago Saraiva
Redis: Way more than just a cache
Redis beyond the basics: data structures, pub/sub, rate limiting, queues, sessions, leaderboards and how to use it in production.

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.
