Luiz Tanure

Writing, since 2010.

Long essays on craft. The ones I'd want to read.

97 posts
10 tags RSS feed
filter sort: newest first
2026 -- 8 posts

Generative tile fallbacks

Empty image slots looked sad. Real photos weren't ready. So I built a deterministic Canvas2D engine that fills every missing tile with art derived from the slot's slug, plus a playground.

ui 6 min

Margin collapse, again

Every few years a junior dev rediscovers margin collapse and writes a thread about it. This is mine, except I'm trying to make peace with the rule, not abolish it.

css 5 min

I Built Yet Another Planning Poker App and I Don't Care

There are 200 planning poker tools. I built one anyway — because I liked some card illustrations, wanted to play with WebSockets, and needed an excuse to ship something fun with Claude Code.

react 5 min

Command palettes are an interaction primitive, not a feature

Why ⌘K deserves a seat at the table next to the menu bar and the URL bar, and how to build one that feels instant.

essay 7 min

I Had 130 Claude Code Skills and Couldn't Find Any of Them

How to organize Claude Code skills, commands, and plugins across projects. Global vs local, vendor skills, per-project profiles, and a bootstrap script for new machines.

tools 4 min

useEffect is a fire alarm

Treat every useEffect call like a fire alarm, loud, disruptive, and only acceptable when something is genuinely on fire. Most of what we use it for is a kettle boiling.

react 6 min

I'm Building a CSS-Only Component Library (For Fun)

In an era where AI spits out Tailwind for everything, I decided to build a CSS-only component library from scratch. Here's why and how.

css 3 min

INP, but for humans

Interaction-to-Next-Paint replaced FID as the responsiveness metric, and the change matters more than the acronym suggests. Here's the version I wish someone had given me.

perf 4 min
2025 -- 25 posts

React Performance: When One Slow Component Freezes Everything

When that one slow component holds your entire app hostage, here's how to negotiate its release without touching its terrible code.

react 3 min

Claude Code: Part 11 - Troubleshooting and Recovery

Master Claude Code troubleshooting with systematic approaches to common issues: installation problems, CLAUDE.md conflicts, performance optimization, custom commands, MCP servers, hooks, and emergency recovery...

perf 5 min

Claude Code: Part 10 - Common Issues and Quick Fixes

Solve the most common Claude Code problems: context overflow, conflicting rules, token optimization, and broken custom commands. Quick troubleshooting for experienced users.

tools 2 min

Claude Code: Part 9 - Complete Development Workflows

Learn how to combine all Claude Code features into complete development workflows. From feature planning to deployment, see how CLAUDE.md, slash commands, MCP servers, subagents, IDE integration, and hooks work...

tools 4 min

Claude Code: Part 8 - Hooks for Automated Quality Checks

Stop manually running the same quality checks after every Claude Code change. Learn how to use hooks to automatically run tests, linting, type checking, and custom validation whenever Claude modifies your code.

react 3 min

Claude Code: Part 7 - IDE Integration with VS Code and JetBrains

Eliminate context switching between your IDE and Claude Code. Learn how to use VS Code and JetBrains integration features to share context automatically and maintain development flow.

tools 3 min

Claude Code: Part 6 - Subagents and Task Delegation

Learn how to delegate complex, multi-step analysis and implementation tasks to autonomous subagents. Let specialized AI agents handle comprehensive codebase analysis, feature planning, and systematic problem-solving...

tools 3 min

Claude Code: Part 5 - MCP Servers and Tool Integration

Stop switching between Claude Code, GitHub, Sentry, and other development tools. Learn how MCP (Model Context Protocol) servers create seamless workflows by connecting all your tools directly within Claude Code.

tools 3 min

Claude Code: Part 4 - Slash Commands and Custom Commands

Stop repeating the same instructions every day. Learn to use built-in slash commands and create custom commands that automate your most common Claude Code workflows and development tasks.

tools 1 min

Claude Code: Part 3 - Conversation Management and Context

Move beyond basic Claude Code usage to advanced features like conversation management, multi-step workflows, context optimization, and preview mode. Transform from casual user to power user.

tools 3 min

Claude Code: Part 2 - CLAUDE.md Configuration Files

Learn how to use CLAUDE.md files to guide Claude Code's behavior, set project rules, and create consistent development patterns. Includes memory hierarchy, multi-AI tool sharing, and team collaboration strategies.

tools 2 min

Claude Code: Part 1 - Getting Started and Installation

Meet Claude Code, your brilliant but overeager AI teammate. Learn how to set up and start working with Claude Code for software development, from installation to your first productive coding session.

tools 4 min

Understand the Acronym Spaghetti: Part 3 - SOLID Principles

Master the SOLID principles for clean architecture in React and Node.js. Learn Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion with practical examples.

arch 3 min

Understand the Acronym Spaghetti: Part 4 - CQRS and Hexagonal Architecture

Apply CQRS and Hexagonal Architecture in React and Node.js. Learn when to separate queries from commands and how to structure frontend applications for maintainability.

arch 3 min

Understand the Acronym Spaghetti: Part 5 - Advanced Principles

Master the final set of programming principles: Law of Demeter, Composition over Inheritance, Tell Don't Ask, Convention over Configuration, and Principle of Least Astonishment. Advanced patterns for React and...

react 6 min

Understand the Acronym Spaghetti: Part 2 - The Quality Principles

Level up your code quality with principles like Pure Functions, Immutability, and Principle of Least Surprise. The second part of our programming principles series.

arch 3 min

Understand the Acronym Spaghetti: From WTF to SOLID Code

A developer's guide to programming principles and acronyms that matter - from core concepts like DRY and KISS to architectural patterns like SOLID. Stop drowning in alphabet soup and start writing better code.

arch 4 min

Building a CLI to Automate Etsy Listings with AI and Fetch Hacks

I built an AI-powered CLI to help my girlfriend publish 80+ handmade tattoo artworks on Etsy, skipping the forms, API delays, and automation traps.

tools 7 min

Building photoroom-cli with Claude Code: From API to NPM in 3 Days

How I built photoroom-cli using Claude Code as my pair programmer. Lessons about AI-assisted development, balancing speed with quality, and the art of guided coding.

ts 4 min

At-Least-Once vs. Exactly-Once - Understanding Message Delivery Guarantees

Learn about message delivery guarantees in distributed systems. Understand why most production systems implement at-least-once delivery with idempotency rather than attempting exactly-once delivery.

arch 2 min

How Idempotency Saves Your API from Chaos

Learn how to implement idempotency in your APIs to prevent duplicate actions and ensure data consistency. Includes practical examples with Supabase and Node.js.

arch 3 min

Vibe Coding ‑ Notes from the First Try

Quick lessons from spinning up a new blog with an AI pair‑programmer and Cursor.

tools 1 min

20 Years in Front-End – Lessons on Simplicity and Accessibility

Timeless lessons from two decades building for the web – why simplicity, accessibility, and good UX still matter most.

ui 2 min

The Meta-Framework Showdown – Angular, React, Vue in the New Era

A comparison of Angular, React, and Vue in 2025, exploring how each evolved and what they offer today.

react 2 min

Next-Gen Build Tools – Turbopacks and Beyond

A look at Turbopack and the future of JavaScript build tooling in 2025.

tools 1 min
2024 -- 5 posts
2023 -- 6 posts
2022 -- 6 posts
2021 -- 7 posts
2020 -- 7 posts
2019 -- 6 posts
2018 -- 6 posts
2017 -- 7 posts
2016 -- 6 posts
2015 -- 8 posts