A.ArticoteAn Article-Style Note
  • HTML4
    • DOM Render Pipeline: From HTML String to Pixels on Screen
    • Resource Hints
    • async & defer
    • Semantic HTML tags
  • CSS4
    • Building component-level responsive design with Container Queries
    • CSS Architecture Strategies: From BEM to Tailwind CSS and UnoCSS
    • Why top/left animations stutter but transform/opacity stay silky smooth
    • CSS Specificity and the Cascade: Who Actually Wins?
  • JavaScript6
    • JavaScript's this: who is it actually pointing at?
    • A Mental Model for the JavaScript Event Loop
    • A Complete Guide to Promises and Async/Await
    • Understanding JavaScript Closures: Why Can a Function Remember Outer Variables?
    • Hoisting: What's Actually Getting Hoisted
    • var vs let vs const: Which One Should You Actually Use?
  • TypeScript4
    • Teaching TypeScript to Read Your Mind: Type Narrowing and Type Guards
    • Conditional Types and Template Literal Types: Making TypeScript Compute Your Types
    • Generics 101: Reusable Functions and Types Without Sacrificing Type Safety
    • TypeScript's interface vs. type: What's Actually Different?
  • React3
    • React State Management: Context, Props, or an External Store?
    • Rendering and Performance: When to Reach for useMemo, useCallback, and React.memo
    • React Hooks Fundamentals: useState and the useEffect Dependency Array
  • Vue4
    • Vue's Virtual DOM and Diff Algorithm: How PatchFlags and Static Hoisting Speed Up Rendering
    • Vue Component Communication: When to Use props, emit, provide/inject, and Store
    • Vue 3 Reactivity: Why Proxy Replaced Object.defineProperty
    • ref vs. reactive: The Difference, the Internals, and When to Use Each
  • Design Pattern7
    • Strategy: Pulling Algorithms Out So Behavior Stays Swappable
    • Mediator: Untangling Communication Between Objects
    • Observer: Subscriptions and State-Change Notifications
    • Decorator: Extending an Object's Behavior at Runtime Without Touching Its Class
    • Facade: Hiding Complex Subsystems Behind One Unified Interface
    • Factory: Encapsulating and Abstracting Object Creation
    • Singleton: Guaranteeing One Global Instance, and What It Costs You
  • Performance4
    • Slimming Down Your Bundle: Tree-Shaking, Code Splitting, and Bundle Analysis
    • Rendering Long Lists: Why Thousands of Rows Feel Slow, and How Virtualization Works
    • Core Web Vitals: What Drives LCP, INP, and CLS, and How to Fix Them
    • Debounce, Throttle, and requestAnimationFrame
  • Web7
    • From URL to Pixels: What Really Happens Behind the Scenes
    • Browser Caching Strategies Explained: Cache-Control, ETag, and Service Worker
    • CSR vs. SSR vs. SSG: How Rendering Strategies Really Differ
    • CSP: Building the Browser's Last Line of Defense with Content Security Policy
    • XSS: Cross-Site Scripting in the Browser
    • CSRF: How Cross-Site Request Forgery Actually Works
    • CORS: The Browser's Cross-Origin Resource Sharing Mechanism
  • System Design6
    • Sharding: How Databases Scale Horizontally
    • Caching: Put Data Closer, Get Speed — and New Problems
    • Replication: Copying Your Database, Without Sacrificing Performance or Consistency
    • Scalability: How a System Goes From Falling Over to Getting Sturdier as It Grows
    • Idempotency: Why Retrying an API Call Should Not Break Things
    • The CAP Theorem — Why Distributed Systems Can't Have It All
  • AWS7
    • Cloud Infrastructure: Building a Three-Tier Architecture with EC2, S3, and RDS
    • AWS Networking Services: How Do VPC, Security Group, NACL, ELB, and Route 53 Divide the Work?
    • AWS Management Tools: How CloudWatch, CloudTrail, Config, CloudFormation, and EventBridge Divide the Work
    • AWS Security Services: How Do IAM, Secrets Manager, KMS, ACM, WAF, Shield, and Cognito Divide the Work?
    • AWS Database Services: How Do You Choose Between RDS, Aurora, DynamoDB, and Neptune?
    • AWS Storage Services: How Do You Choose Between S3, EBS, EFS, Snow Family, FSx, and Storage Gateway?
    • AWS Compute Services: How Do You Choose Between EC2, ECS, EKS, and Lambda?
  • Docker4
    • From Docker to Production: Multi-Stage Builds, Slim Images, and Security Best Practices
    • Docker Compose in Practice: Networks, Volumes, and Environment Variables
    • Docker Layers and Build Cache: How to Write a Dockerfile That Doesn't Rebuild Everything Every Time
    • How Docker actually works under the hood: namespaces, cgroups, and union filesystems
  • Kubernetes1
    • Kubernetes Under the Hood: How the Control Plane and Node Components Split the Work
  1. CSS

CSS

4 posts

5/14/2024

Building component-level responsive design with Container Queries

Starting from the limits of media queries and the old JS-based hacks for watching element size, this post walks through how Container Queries work, how to write @container syntax, and when to reach for it instead of page-level responsive thinking.

1/25/2024

CSS Architecture Strategies: From BEM to Tailwind CSS and UnoCSS

A comparison of how BEM, CSS Modules, Tailwind CSS, and UnoCSS each tackle naming collisions and scoping, to help you figure out which strategy fits a large project.

8/25/2023

Why top/left animations stutter but transform/opacity stay silky smooth

A look at the browser's rendering pipeline to explain why top/left animations tend to drop frames, and how pairing transform and opacity with will-change gets your animation onto the GPU for genuinely smooth CSS.

7/26/2023

CSS Specificity and the Cascade: Who Actually Wins?

A walkthrough of the order the browser uses to resolve style conflicts — how specificity is calculated, the three layers of the cascade, and whether you should ever reach for !important.