Tech is political: The people under attack in Palestine 🇵🇸, Iran 🇮🇷, and Lebanon 🇱🇧 are people like us. They’re our brothers and sisters, too. Read up on their history, scrutinize what you’re told, and demand that they be respected. Hide

Frontend Dogma

News and Tools for Web Developers, 1990s to Now (3)

→ Stay up-to-date on all topics by various RSS feeds (main feed with exclusive news: only $1/month), on Mastodon, and on Bluesky

Entry (Sources) and TopicsDate#
Popover API or Dialog API: Which to Choose? (zel/css)20,624
pop-overs, modals, apis, accessibility, javascript
My Personal Skills for AI-Assisted Node.js Development (mco)20,623
ai, tooling, nodejs
Expose Your Design System to LLMs (hvp)20,622
design-systems, ai
You Can Use Newline Characters in URLs (lem)20,621
urls, data-urls, links, html, attributes
The Hardest Part of Being a Developer Isn’t Coding—It’s Disappearing Quietly (nor)20,620
career, community
Figcaptions Versus Alt Text (tem)20,619
html, images, alt-text, accessibility, comparisons
Quick Tip: Hosting HTML/CSS/JS Demos From Source Code on GitHub Pages (cod)20,618
hosting, github-pages, tips-and-tricks
The Most-Seen UI on the Internet? Redesigning Turnstile and Challenge Pages20,617
cloudflare
We Deserve a Better Streams API for JavaScript (jas)20,616
javascript, streaming, apis
Put “aria-hidden=true” on Decorative SVGs (mat)20,615
svg, images, aria, accessibility, attributes
Accessibility Matters20,614
accessibility
[Svelte] Best Practices (sve)20,613
svelte, best-practices
Accessibility People Are a Superpower (jar)20,612
accessibility
“role=presentation” Is No Alternative for “aria-hidden=true” (mat)20,611
accessibility, aria, html, attributes, comparisons
Three Reasons Your “scroll-snap” Container May Be Overflowing on Mobile (sch)20,610
css, scrolling, mobile
Have We Forgotten How to Design? (lou)20,609
design
Anatomy of a CSS Phone Mockup20,608
css, design, effects
Security Advisory: Addressing Recent Vulnerabilities in Angular (ang)20,607
angular, security
A New Path for Digital Accessibility? (web)20,606
accessibility, ai, outlooks
Design System Contributions Work Better When Everyone Knows Your Name (pjo)20,605
design-systems, components, collaboration
JavaScript DRMs Are Stupid and Useless20,604
javascript, drm
Configuration Collapse (nat)20,603
figma, components, configuration, props
Define the Theme Color for Safari 26 (gro)20,602
safari, apple, browsers, css
Claude Code vs. Cursor: Which AI IDE Wins for Real Development Work?20,601
claude, anthropic, cursor, ai, code-editors, comparisons
Yet Another Way to Center an (Absolute) Element (mon/css)20,600
css, centering
I Set Up My Own Web Server and Here’s What I Learned About nginx20,599
servers, nginx
When Building Is Free, What’s Worth Building?20,598
ai, vibe-coding, prototyping, user-experience, usability
New to the Web Platform in February (rac)20,597
release-notes, web-platform, browsers, chrome, google, firefox, mozilla, safari, apple
Before, During, and After20,596
accessibility, processes, legal, compliance, community
Native Random Values in CSS (alv)20,595
css, functions, randomness
What Claude Code Actually Chooses20,594
ai, claude, anthropic, studies, research
Eleventy: How to Work Around the “Git Last Modified” Performance Bottleneck (j9t)20,593
how-tos, eleventy, git, performance
Why Is WebAssembly a Second-Class Language on the Web? (eqr/moz)20,592
webassembly
A Design Turn20,591
design, ai, career
Release Notes for Safari Technology Preview 238 (jon/web)20,590
release-notes, safari, apple, browsers
Lessons Learned From Failed Demos: Pure CSS Nav Thumb Flip on Scroll (ana/fro)20,589
lessons, css, effects
CSS Snapshot 2026 (fri+/w3c)20,588
css, standards
Create Pages From JSON Files With Eleventy (san)20,587
eleventy, json, static-site-generation
The Pentagon Is Making a Mistake by Threatening Anthropic (bin)20,586
ai, anthropic
An Exploit… in CSS?! (css)20,585
css, security
When Is a Link Not a Link? (dec)20,584
html, links, semantics, accessibility
AdonisJS v7 Is Here (vir/ado)20,583
release-notes, adonisjs
“Harmless” Website Updates Can Create Serious Problems for Your Users—Here’s How It Happens20,582
maintenance, accessibility
Accessibility Considerations for Off-Site Navigation and Downloads20,581
accessibility, navigation
16 Modern JavaScript Features That Might Blow Your Mind20,580
javascript
A Complete Guide to Bookmarklets (val/css)20,579
guides, bookmarklets, javascript, link-lists
The Rise of “Micro-Backends”: Why Frontend Devs Are Adopting Hono20,578
hono, express, comparisons, backend-for-frontend, architecture
Developer Experience at Scale—Lessons From Dropbox20,577
interviews, developer-experience, productivity, tooling, ai, lessons
CSS Masonry Layout Is Finally Coming: Native Grid Support Explained20,576
css, masonry, layout, examples
20,000 (fro)20,575
frontend-dogma
The React Foundation: A New Home for React Hosted by the Linux Foundation (mat/rea)20,574
react, facebook+meta, linux-foundation
Writing a Good AGENTS.md (phi)20,573
ai, documentation, agentsmd
How We Rebuilt Next.js With AI in One Week (sou)20,572
nextjs, ai, cloudflare, deploying
SVGs on the Web: Performance Comparison Based on How You Load Them (nuc)20,571
svg, images, performance, comparisons
Let’s Break Some WCAG Rules (ndc)20,570
videos, accessibility, wcag
Shift-Left Sustainability: How to Develop Green Software by Design20,569
how-tos, sustainability
Rewriting a 12-Year-Old JavaScript Library in TypeScript20,568
refactoring, javascript, typescript
Goodbye “innerHTML”, Hello “setHTML”: Stronger XSS Protection in Firefox 148 (moz)20,567
javascript, methods, xss, security, firefox, mozilla, browsers
If Code Is Cheap, Intent Is the Currency20,566
ai-agents, ai, code-reviews, documentation
Best Practices for CSS Scope in Angular Applications (ale)20,565
css, scope, angular, best-practices
Oxfmt Beta (bos+)20,564
release-notes, formatting, tooling
x86 CPU Made in CSS (reb)20,563
css, programming, functionality
Firefox 148 Brings Central AI Control and New Web Standards (hei)20,562
firefox, mozilla, browsers
How I Setup Production-Grade Deployment for My (Somewhat) Vibe-Coded App (mar/fro)20,561
deploying, aws
Web AI: Everything You Need to Know About On-Device AI for the Web20,560
ai
Stop Using “/init” for AGENTS.md (add)20,559
ai, configuration, agentsmd
AI as Art Director: Can Machines Develop Taste? (web)20,558
ai, design, aesthetics, art-direction
Breakpoints (css)20,557
design, accessibility, mobile, breakpoints, css
How Many AIs Does It Take to Read a PDF? (jos/ver)20,556
ai, pdf, tooling
A Designer’s Guide to Eco-Friendly Interfaces (sma)20,555
guides, design, user-experience, sustainability
Design Systems Are Platform Problems, Not Feature Problems (sha)20,554
design-systems
Virtual Scroll-Driven 3D Scenes (fro)20,553
css, scrolling, animations
“aria-haspopup” Might Not Do What You Think It Does (mat)20,552
html, aria, attributes, navigation, accessibility
On Software Quality (nic/pxl)20,551
quality, apple
Loading Smarter: SVG vs. Raster Loaders in Modern Web Design (hol/css)20,550
images, svg, progress-indicators, performance
How to Publish to npm From GitHub Actions (bah)20,549
how-tos, npm, github-actions
Dictionary Compression Is Finally Here, and It’s Ridiculously Good (pim/htt)20,548
compression, performance, javascript
From “instanceof” to “Error.isError”: Safer Error Checking in JavaScript20,547
javascript, errors
Upskilling in the AI Age (dac)20,546
ai, tooling, learning
Getting Started With the Vercel AI SDK in Node.js20,545
introductions, nodejs, ai, vercel
Matt May Speaks (mat+)20,544
videos, interviews, accessibility, html, standards
Sprites on the Web (jos)20,543
css, images, sprites, techniques
Wasm vs. JavaScript: Who Wins at a Million Rows?20,542
webassembly, javascript, comparisons, performance
The Problem With HTML Reset Buttons (ada)20,541
html, buttons, user-experience
AI Is Locking People Out—at Scale (kc)20,540
accessibility, ai, studies, research, metrics
Native HTML Components Don’t Guarantee Good UX (ada)20,539
html, components, user-experience
Standard HTML Video and Audio Lazy-Loading Is Coming (sco)20,538
html, multimedia, lazy-loading, standards, performance
ACCESSIBILITY.md (mgi)20,537
accessibility, documentation
Why AI Is Exposing Design’s Craft Crisis20,536
ai, design, craft, figma, link-lists
My Malware Story Gets Stolen; Yet Another Argument for the IndieWeb (bre)20,535
malware, indieweb, licensing
Big Tech Still Dreams of Mass Surveillance—Now People Are Pushing Back (tro/sal)20,534
privacy, amazon, google, ai, politics
What Is the IndieWeb? (bre)20,533
indieweb, terminology, concepts
“Made in EU”—It Was Harder Than I Thought20,532
privacy, hosting, tooling, tech-stacks
Everything You Never Wanted to Know About “visually-hidden” (dbu)20,531
html, css, hiding, accessibility
Lil’ Fun Langs (sur)20,530
programming, overviews, link-lists
Git Is the New Code (nec)20,529
ai, git, command-line, code-reviews
The Software Development Lifecycle Is Dead (bor)20,528
processes, ai, ci-cd
Weird Issues With CSS Calculations in Safari 26.2 (cit)20,527
css, functions, safari, apple, browsers
Potentially Coming to a Browser “:near()” You (dxn/css)20,526
css, functions
WordPress 7.0 Beta 1 (wor)20,525
release-notes, wordpress
An Official* Logo for HTML (zac)20,524
html
How to Cut LLM Token Costs and Speed Up AI Apps20,523
how-tos, ai, token-optimization, economics
A Considered Approach to Generative AI in Front-End Development (cle)20,522
ai, processes
Notes on Relying on the ARIA Authoring Practices Guide (ste)20,521
aria, accessibility, html
Design Systems Can’t Automate Away All of Your Accessibility Considerations (eri/zer)20,520
design-systems, components, automation, accessibility, aria
Using the Browser’s “<canvas>” for Data Compression20,519
canvas, compression
A Web Revival: The Internet Didn’t Die, You’re Just Not on It20,518
videos, indieweb, web
An In-Depth Guide to Customising Lists With CSS (ric/pic)20,517
guides, css, lists
8 Things You Didn’t Know About Code Mode (bla)20,516
ai
Fastest Frontend Tooling for Humans and AI20,515
tech-stacks, tooling, typescript, developer-experience, optimization
Suffering From Bugs: How I Almost Deleted My Entire Project20,514
bugs, lessons
“border-shape”: The Future of the Non-Rectangular Web (una)20,513
css, shapes, borders
Vitest vs. Jest 2026: The Migration Guide With Real Benchmarks20,512
guides, migrating, vitest, jest, comparisons
Tailwind CSS v4: Container Queries and the Death of Media Queries20,511
tailwind, container-queries, media-queries, css
Claude Sonnet 4.6 vs. GPT-5: The 2026 Developer Benchmark20,510
claude, anthropic, openai, ai, comparisons, metrics, programming, documentation
Sometimes the Best Accessibility Fix Is a Usability Fix20,509
accessibility, usability
When Accessibility Demand Letters Land on Your Desk: A Framework for Strategic Response (dec)20,508
accessibility, strategies
Why Separate Guest and Logged in States Create Accessibility Barriers20,507
accessibility, authentication
Why You Need to Close Open Objects When Users Navigate Away20,506
accessibility, wcag
AI Is Giving Tech Companies Power That Once Belonged to Governments (res)20,505
ai, economics
5 CSS Fouls That I See Way Too Often (kev)20,504
videos, css
Distinguishing “Components” and “Utilities” in Tailwind (zel/css)20,503
tailwind, terminology
Analyst Reactions: How AI Is Reshaping Engineering Organizations20,502
ai, engineering-management
Editor Improvements: Smooth Caret Animation and New Selection Behavior (jet)20,501
code-editors, jetbrains
Europeans Are Dangerously Reliant on US Tech—Now Is a Good Time to Build Our Own (joh/the)20,500
economics, politics, google, microsoft, amazon
Designing for Transparent Screens20,499
design, transparency+opacity, readability
Preserving the Web Is Not the Problem—Losing It Is (tec)20,498
web, ai
Web Rewind20,497
websites, web, history
Frontend Memory Leaks: A 500-Repository Static Analysis and Five-Scenario Benchmark Study20,496
memory, react, vuejs, angular, studies
From Random Chunks to Real Code—Wiring Up Next.js Source Maps in Sentry (get)20,495
nextjs, source-maps
Design Docs Considered Harmful20,494
documentation, software-design
The Future of Design Is Code and Canvas (zoi/fig)20,493
figma, design, outlooks
Building Typographic Scales in CSS With “:heading()”, “sibling-index()”, and “pow()” (stu)20,492
css, functions, math, typography
Igalia’s Eric Meyer and Ujjwal Sharma Chat With Designer, CSS Developer, and Illustrator Lynn Fisher (lyn+/iga)20,491
podcasts, interviews, css, design
Web Development Is More Than Frontend and Backend (Here’s What Actually Matters)20,490
programming, career
Selectors Level 5 (fan+/w3c)20,489
css, selectors, standards
5 Source Map Best Practices for Frontend Production Deployments (ele/des)20,488
guest-posts, source-maps, javascript, best-practices
Europe Is Ready to Ditch US Tech for Private Alternatives (pro)20,487
tooling, privacy, security, metrics
We Cut Node.js’ Memory in Half (mco/pla)20,486
nodejs, v8, javascript, memory, metrics
Interop 2026 (geo/css)20,485
interoperability, web-platform, browsers, support, link-lists
Spiral Scrollytelling in CSS With “sibling-index()” (css)20,484
css, functions, scrolling, gsap
Agentic UX: 7 Principles for Designing Systems With Agents20,483
ai-agents, ai, design, principles
The Hidden Cost of AI Prototypes That Are Made to Die20,482
prototyping, ai, design, product-management
Why We Hate AI (fal)20,481
ai
Angular Bindings: What Are They and How Do I Use Them? (ato)20,480
angular
Anchored Menus and a Lesson in Scoping (chr/fro)20,479
css, anchor-positioning, scope, lessons
Here’s How to Instruct a LLM to Reference the ARIA Authoring Practices Guide (eri)20,478
how-tos, ai, aria, accessibility
How “Liquid Design” Broke the iPhone and Forced Apple’s Great Reset (web)20,477
design, usability, readability, liquid-glass, apple
Why It’s Important to Manually Test for Accessibility20,476
accessibility, testing
Style Headings Using the CSS “:heading” Pseudo-Class (stu)20,475
headings, css, selectors
Why Your CEO Acts Like a Clown: The Tribal Myths of Leadership20,474
leadership, culture, engineering-management
AI Is Accidentally Making Documentation More Accessible (ger)20,473
ai, accessibility, documentation
Why WebAIM’s Report Only Found 6 Issues on a Million Pages20,472
videos, accessibility, webaim
We Scanned 250 Node.js Repos for Blocking I/O: 76% Had It—and the Benchmarks Explain Why That Matters20,471
nodejs, file-handling, performance, metrics
How Fast Is Fast Enough? Rethinking Web Performance in Pragmagical Terms (tam/spe)20,470
performance, user-experience, concepts
Justifying “text-wrap: pretty”20,469
css, typography
Quick and Dirty Linting (sto)20,468
linting, typescript, javascript, biome
A Programmer’s Loss of a Social Identity (rat)20,467
programming, career, community
JS-Heavy Approaches Are Not Compatible With Long-Term Performance Goals (ser)20,466
javascript, frameworks, performance, prioritization
Fun With TypeScript Generics (ada/fro)20,465
typescript, generics
Evaluating AGENTS.md: Are Repository-Level Context Files Helpful for Coding Agents? (ves+)20,464
studies, research, ai, ai-agents, agentsmd
Are We Having the Wrong AI Dreams? (jet)20,463
ai, outlooks
The EU Moves to Kill Infinite Scrolling (egr)20,462
social-media, scrolling, legal
How to Debug the “@starting-style” At-Rule in Polypane (pol)20,461
how-tos, debugging, css, animations, polypane, browsers
Interop 2026: Continuing to Improve the Web for Developers (rac)20,460
interoperability, web-platform, browsers, support
Virtual Scrolling for Billions of Rows—Techniques From HighTable (sev)20,459
html, tables, scrolling, performance, react
State of React 2025 [Results] (sac/dev)20,458
surveys, metrics, react
You Might Not Need “role="presentation"” (stv/pic)20,457
html, aria, accessibility
Mastering Dialog Accessibility20,456
accessibility, modals, html, aria
Launching Interop 2026 (jaf/moz)20,455
interoperability, web-platform, browsers, support
The 80% Job: How Design Leads Are Using AI—and It’s Not About Mockups20,454
design, ai, prototyping, communication, leadership, product-management, link-lists
Accessibility Contractors Have Their Place-but It’s Not Everywhere20,453
accessibility, business-relations, processes
The Beautiful Web (j9t)20,452
web, indieweb
Radix UI vs. Base UI (sha)20,451
react, libraries, radix, comparisons
What It Really Costs to Run a WordPress Website in 202620,450
wordpress, economics
Life After Figma Is Coming (and It Will Be Glorious) (jon)20,449
design, ai, tooling, figma
Designing for Agentic AI: Practical UX Patterns for Control, Consent, and Accountability (sma)20,448
design, user-experience, design-patterns, ai-agents, ai
ChatGPT Has 12% of Google’s Search Volume but Google Sends 190× More Traffic to Websites (ahr)20,447
traffic, search, chatgpt, google, metrics
How to Create a CSS-Only Elastic Text Effect (css/fro)20,446
how-tos, css, effects
Re-Creating a Pantone Color Deck in CSS (sto)20,445
css
Announcing TypeScript 6.0 Beta (dan/typ)20,444
typescript
Saying No to Good Ideas (kvl)20,443
processes, communication
The Natural Design Process20,442
design, processes
Container Timing: Measuring Web Components Performance (jda/iga)20,441
performance, web-components, chromium
You Know What? Just Don’t Split Words Into Letters (aar)20,440
accessibility, html, screen-readers, support
Does Your Navigation Need an ARIA Menu? Probably Not (pop)20,439
accessibility, navigation, aria, keyboard-navigation
Building an Endless Procedural Snake With Three.js and WebGL (suj/cod)20,438
threejs, webgl, javascript
Shades of Halftone (max)20,437
effects, halftone
Polypane 28: Project Improvements, Elements Panel Updates, and Chromium 146 (pol)20,436
release-notes, polypane, browsers
The Software Sovereignty Scale (dri)20,435
foss, licensing, legal
It’s About to Get a Lot Easier for Your JavaScript to Clean Up After Itself (wil/pic)20,434
javascript, garbage-collection
The 2026 Frontend Dogma Survey (fro)20,433
frontend-dogma, surveys
Designing Useful Ads20,432
design, monetization, ai
Emotional Design: Let’s Design for Silence20,431
design
Fast by Default (den)20,430
performance, architecture, tooling, code-reviews, processes
WebSocket Penetration Testing: A Complete Guide to CSWSH20,429
guides, security, websockets, testing
Webspace Invaders (mat)20,428
ai, traffic
“Design Courage”20,427
design
Modern CSS Code Snippets20,426
websites, css, examples, comparisons
Design Is Dead, It’s All Evolution Now (ily)20,425
design, processes
Background Patterns With CSS “corner-radius” (pre/fro)20,424
css, backgrounds, effects, examples
Vite, Rust, and the Future of JavaScript Tooling (eva+/bet)20,423
videos, interviews, vuejs, rust, javascript, oxc, bundling, tooling, ai
Trying to Make the Perfect Pie Chart in CSS (mon/css)20,422
css, html
AI Fatigue Is Real and Nobody Talks About It20,421
ai, code-reviews
Large Tech Companies Don’t Need Heroes (sea)20,420
processes, engineering-management, career
Underlining Links With CSS (stu)20,419
css, links
Definitive Guide to Multi-Threaded Rendering on the Web (hac)20,418
guides, dom, rendering
Why Your Brain Rebels Against Redesigns—Even Good Ones20,417
design, redesigning, link-lists
The Return of the Intuitive Designer in the Age of AI20,416
design, user-experience, ai
Why JavaScript Needs Structured Concurrency20,415
javascript, concurrency, asynchronicity
Interop 2025: A Year of Convergence (stu/web)20,414
interoperability, web-platform, browsers, retrospectives, metrics
How Generative AI Is Redefining Brand Identity Systems20,413
ai, branding, design
How (and Why) to Stop Users From Selecting Text on Your Website20,412
css
The Browser Hates Surprises (fro)20,411
browsers, performance
The CSS Selection (ven/pro)20,410
css, metrics, studies, research
What to Expect in Angular 2220,409
angular
A New Meta Tag for Respecting Text Scaling on Mobile (mat)20,408
accessibility, metadata, scaling
Your Design System Needs an Enforcer (nng)20,407
design-systems, processes
Minifier Benchmarks (j9t)20,406
minification, tooling, metrics, comparisons, swc, html-minifier, htmlnano
CSS “@scope”: An Alternative to Naming Conventions and Heavy Abstractions (sma)20,405
css, scope, naming
Git’s Magic Files (and)20,404
git, configuration
How to Use the “Auto” Value With “clamp()” (css)20,403
how-tos, css, functions
Accessibility Conformance Testing (ACT) Rules Format 1.1 (wil+/w3c)20,402
accessibility, compliance, testing, documentation
Measuring SVG Rendering Time (sto)20,401
svg, png, images, rendering, performance, web-vitals, metrics
How to Write Alt Text for News (sta/the)20,400
how-tos, alt-text, accessibility, images
Why Designers Secretly Love Constraints (Even When We Complain About Them) (web)20,399
design
Quick Tip: Do Not Replicate OS Behavior (nat)20,398
accessibility, tips-and-tricks
What’s New in ViteLand: January 2026 Recap (man/voi)20,397
release-notes, vite, vitest, rolldown, oxc
Clarity Is Not the Enemy of Depth (the)20,396
content, writing, accessibility
How to Improve Your HTML Game (j9t)20,395
how-tos, html, conformance, learning, career
You Probably Shouldn’t Be Annotating Focus Order (eri)20,394
accessibility, focus, forms, annotations
[Webpack] Roadmap 2026 (eve)20,393
webpack
AI Will Eliminate the Need for Accessibility Professionals? I Think Not20,392
ai, accessibility, testing, career
Stop Installing Libraries: 10 Browser APIs That Already Solve Your Problems20,391
javascript, libraries, apis, web-platform
Introduction to the New HTML Element “<geolocation>” (mat)20,390
introductions, html, geolocation
CSS Properties That Solve Annoying Problems (kev)20,389
videos, css
From Basic Adoption to Meaningful Measurement: How Design System Metrics Evolve (zer)20,388
design-systems
Building Bulletproof React Components20,387
react, components
How to Shoot a Screen Using a Board of Keys (mwi)20,386
screenshots, keyboard-shortcuts, history, apple
Introducing Deno Sandbox (tin/den)20,385
deno
State of JavaScript 2025 [Results] (sac/dev)20,384
surveys, metrics, javascript
Deno Deploy Is Generally Available (lca+/den)20,383
deno
Combobox vs. Multiselect vs. Listbox: How to Choose the Right One (vit/sma)20,382
how-tos, forms, design-patterns, comparisons
Nice Select (arg)20,381
forms, css
How Eleventy Survived: Funding, Growth, and Open Source Reality (zac+/fon)20,380
podcasts, interviews, eleventy, foss
A Percise Parser (rem)20,379
javascript, parsing
Elastic/Bouncy Text Effect (css)20,378
css, effects
Accessible Inline Collapsible (eri)20,377
accessibility, html, disclosure-widgets
Accessibility Progress and Healthy Engineering Teams (hbu)20,376
accessibility, technical-debt, web-platform, prioritization
Node.js Path Traversal: Prevention and Security Guide (loi)20,375
guides, nodejs, security
Implementing the Temporal Proposal in JavaScriptCore (you/iga)20,374
javascriptcore, javascript-engines, time
Accessible Design Is Digital Infrastructure (ann)20,373
accessibility, design
What’s Missing From the Web Platform? (wes+/syn)20,372
podcasts, web-platform, wish-lists
Performance-Optimized Video Embeds With Zero JavaScript (stf/fro)20,371
multimedia, performance
What Is JPEG XL: Do We Really Need Another Image Format? (aar/deb)20,370
jpeg-xl, images, quality, performance, metrics
Release Notes for Safari Technology Preview 236 (jon/web)20,369
release-notes, safari, apple, browsers
Building an RSS Aggregator With Astro (ray)20,368
astro, rss, syndication, functionality
Explicit Resource Management in JavaScript20,367
javascript
Stop Asking “Is This on Brand?”—It’s Killing Your Creativity (web)20,366
design, branding, creativity
Limiting Work in Progress Is a Superpower20,365
project-management, processes, productivity, agile, scrum
HTML Minifier Next 5, a Quick Upgrade Guide (j9t)20,364
guides, html-minifier
Selfish AI (cre)20,363
ai
The Indie Web Is Not Defined by Its Enemies (khu)20,362
indieweb, ai
Tim Cook Sold Apple’s Soul (kev)20,361
apple
Google Helped Israeli Military Contractor With AI, Whistleblower Alleges (was)20,360
google, ai, ethics, privacy
When Design Stops Asking Why and Starts Asking, “Can AI Do It?”20,359
design, ai, processes, quality
The Too Early Breakpoint (sha)20,358
css, layout, breakpoints
Repeatable Form Fields Made Simple (aar)20,357
forms, html, web-components
A Broken Heart (api)20,356
performance, fonts, emoji
My Opinionated ESLint Setup for Vue Projects (ale)20,355
eslint, configuration, vuejs
Tickering With Node.js Core on ARM64 Windows (joy)20,354
nodejs, building, windows, microsoft
New to the Web Platform in January (rac)20,353
release-notes, web-platform, browsers, firefox, mozilla, chrome, google
“WCAG Is Difficult to Read, Don’t Read It” Is a Self-Fulfilling Prophecy (yat)20,352
wcag, standards, accessibility
AI Agents Explained (tre)20,351
ai-agents, ai
Practical Use of AI Coding Tools for the Responsible Developer (ska/sma)20,350
ai, tooling, prompting
Announcing Rspress 2.020,349
release-notes
How the Same Content Always Has Multiple Different Versions20,348
accessibility, content, comparisons
React’s “ViewTransition” Element (chr/fro)20,347
react, view-transitions
Understanding Hydration in Frontend Frameworks: Definition, Challenges, and Optimization Strategies (ele/des)20,346
guest-posts, frameworks, hydration, optimization, concepts, strategies
Vibe Prototyping Is a Double-Edged Sword (edd)20,345
prototyping, vibe-coding, ai, design
The Design System Paradox: How Abstraction Can Hollow Out Quality (pjo/zer)20,344
design-systems, quality, training
How to Make an HTTP Request in Node.js (loi)20,343
how-tos, nodejs, http
Is Learning CSS a Waste of Time in 2026?20,342
css, learning, career, discussions
OpenJS Foundation Security Program: Annual Report 2025 (ope)20,341
openjs, security
Cryptography Usage in Web Standards (w3c)20,340
standards, cryptography, security
llms.txt and robots.txt: Optimizing for AI Bots and Answer Engines20,339
ai, optimization, aiso, robotstxt, llmstxt, comparisons
Why I Use Kirby CMS (jon)20,338
kirby
Making Interesting Borders With CSS “corner-shape” (cas)20,337
css, borders
How Rolldown Works: High-Performance Code Splitting With Bitset Logic (atr)20,336
rolldown, bundling, code-splitting, performance
Why I Don’t Call Myself an Accessibility Expert20,335
accessibility, career
How an Accessibility Designer Adds Keyboard Shortcuts to a Web App (eri)20,334
web-apps, keyboard-shortcuts, accessibility
The Next Decade of UX: Why Psychology Matters More Than Ever (tbf/nng)20,333
videos, interviews, user-experience, design, outlooks
How to Design Great Alt Text: An Introduction (deq)20,332
how-tos, introductions, alt-text, images, accessibility
How to Style the New “::search-text” and Other Highlight-y Pseudo-Elements (dxn/css)20,331
how-tos, css, selectors
Introducing ReliCSS: A Tool for Front-End Archaeology (stu)20,330
introductions, tooling, css, auditing
AI’s Text-Trap: Moving Towards a More Interactive Future20,329
ai, interaction-design, user-experience
Are We Doing UX for AI the Right Way? (cxo)20,328
user-experience, design, conversational-design, ai, link-lists
7 Learnings From Anders Hejlsberg: The Architect Behind C# and TypeScript20,327
lessons, scalability, typescript, foss, ai, collaboration
A Year of Creator Wins: Highlights From the JetBrains Content Creators Program 2025 (jet)20,326
jetbrains, community
How AI Is Redefining the Way We Find Content (cle)20,325
ai, crawling, search, content, seo
Some Notes on Starting to Use Django (b0r)20,324
django
More Invoker Commands, and More Reasons Not to Use JavaScript Please (paw)20,323
html, examples
Unstacking CSS Stacking Contexts (sma)20,322
css, positioning
Try Text Scaling Support in Chrome Canary (jos)20,321
chrome, google, browsers, scaling, accessibility
We’re Creating a Knowledge Collapse and No One’s Talking About It20,320
ai, documentation, learning, career
Solving Shrinkwrap: New Experimental Technique (kiz)20,319
css, techniques
On the Need for Neutral Maintained Minifier Metrics (j9t)20,318
minification, tooling, html-minifier, htmlnano
A Security Checklist for Your React and Next.js Apps20,317
security, react, nextjs
How Web Performance Impacts User Experience (mat/deb)20,316
performance, user-experience, web-vitals, metrics
Claude Code for Designers: A Practical Guide20,315
guides, design, claude, anthropic, ai
Design Systems Checklist (tyc)20,314
design-systems, checklists
9 Reasons to Choose Sketch in 2026 (fre/ske)20,313
sketch
Supporting Open Source in 2026: Why It Matters More Than Ever ($50,000) (mar/fro)20,312
foss, web-platform
Drawing Connections With CSS Anchor Positioning20,311
css, anchor-positioning
Improving Single Executable Application Building for Node.js (joy)20,310
nodejs
Density vs. Clarity: The Core Tension in Modern UI Design (web)20,309
design, information-design, minimalism, comparisons, figma
Why the Future of Design Is Less Flash and More Thought20,308
design, outlooks
There Is No Need to Trap Focus on a “dialog” Element (zel/css)20,307
modals, focus, accessibility
SPAs Are a Performance Dead End (yeg)20,306
single-page-apps, html, performance
How to Implement Rate Limiting in nginx (naw/one)20,305
how-tos, servers, nginx, rate-limiting, security
Porting 100k Lines From TypeScript to Rust Using Claude Code in a Month (vje)20,304
migrating, typescript, rust, claude, anthropic, ai
Vibe Prototyping Isn’t Solving Any Problems—but It’s Creating Many New Ones (pav)20,303
prototyping, design, ai, vibe-coding
Using Maturity Models to Build Accessibility That Lasts (ted)20,302
accessibility
npmx (dan/npm)20,301
websites, npmx, npm, packages
Figma Slots for Repeating Items (nat)20,300
figma, components
How to Use Font Ligatures20,299
how-tos, typography, fonts, tooling, adobe, figma, microsoft, css
Software Design Principles That Matter20,298
software-design, principles, examples
6 Ways to Set Better Content Accessibility Goals in 202620,297
accessibility, processes
Anchor Interpolated Morph (AIM) (arg)20,296
css, animations, techniques
Responsive Hexagon Grid Using Modern CSS (css/css)20,295
css, functions, math, responsive-design
The Context Collapse Problem20,294
ai, documentation
CSS Scope and Mixins (chr+/odd)20,293
videos, interviews, css, scope, mixins
Do We All See the Same Colors? (tba)20,292
colors, color-blindness, accessibility
Names Are Hard but They Don’t Have to Be (col)20,291
internationalization, naming, validation
Handling Breaking Changes in a Design System Without Causing Chaos (sha/zer)20,290
design-systems, maintenance, semver, communication
Understanding the Fundamentals of CSS Layout (pol)20,289
fundamentals, css, layout, grids, flexbox, positioning
CSS Optical Illusions (alv)20,288
css, effects, examples
Claude’s New Constitution (ant)20,287
claude, anthropic, ai
Why Webflow Isn’t the Future—Yet (web)20,286
webflow, low-and-no-code
10 Digital Accessibility Predictions for 2026 (ons)20,285
accessibility, outlooks, wcag, career, ai, legal, assistive-tech
When Will CSS Grid Lanes Arrive? How Long Until We Can Use It? (jen/web)20,284
css, grids, masonry, layout
CTA Hierarchy in the Wild (jim)20,283
user-experience, buttons, youtube
10 Tips for Effective User Experience Evaluation20,282
user-experience, usability, content, design, testing, tips-and-tricks
Barriers From Links With ARIA (aar)20,281
accessibility, links, html, aria
The Conditionally Open Web (cor)20,280
open-web
What Makes Generated UI Worth Keeping?20,279
design, ai, branding, tooling
How to Diagnose Lighthouse Score Discrepancies Between Tools (mat/deb)20,278
how-tos, performance, lighthouse, google, tooling
Floating Action Buttons Are Bad, and What to Do Instead (eri)20,277
buttons, usability, material-design, google
Mobile App Accessibility Under EN 301 549 v4.1.020,276
accessibility, mobile, standards
Why Light-Weight Websites May One Day Save Your Life (mah)20,275
performance, accessibility, print, frameworks
Accessibility 101 and Core Concepts (kno)20,274
videos, accessibility, introductions, concepts
The Accessibility Manager Moment No One Warns You About20,273
accessibility, leadership, legal, communication
Securing npm Is Table Stakes (nza+/cha)20,272
podcasts, interviews, npm, security, ai
Demystifying Screen Reader Use for Manual Testing: Deneb Pulsipher and Kosi Asabere20,271
videos, accessibility, testing, screen-readers
CSS in 2026: The New Features Reshaping Frontend Development (log)20,270
css, functions
How to Favicon in 2026: Three Files That Fit Most Needs (sit/evi)20,269
how-tos, images, favicons
I Learned the First Rule of ARIA the Hard Way (css)20,268
accessibility, aria, semantics, html
Designing Beyond the Happy Path in Design Systems (ste/zer)20,267
design-systems, design
Developing Trustworthy Information (jma)20,266
writing, content, ai
Faking a Fieldset-Legend (tyl/clo)20,265
html, forms, css
Node.js 16 to 25 Performance Benchmarks20,264
nodejs, performance, metrics, comparisons
Lowering the Specificity of Multiple Rules at Once (mat)20,263
css, cascade
Inside Turbopack: Building Faster by Building Less (she+)20,262
turbopack, performance
A Brief History of Programming… (fir)20,261
videos, programming, history
Animating Responsive Grid Layout Transitions With GSAP Flip (cod)20,260
css, grids, layout, animations, gsap, plugins
Rethinking “Pixel Perfect” Web Design (ami/sma)20,259
design, quality
View Transitions and Playing Video (chr/fro)20,258
javascript, view-transitions, multimedia
AI’s Missing Ingredient (cwo)20,257
ai, vibe-coding, creativity, design
Some Thoughts on the Open Web (mno)20,256
open-web, web
Design Tokens With Confidence (luk)20,255
design-tokens, json, css
What Figma Got Wrong About Design Systems (web)20,254
figma, design-systems
The State of WebAssembly—2025 and 2026 (uno)20,253
webassembly, retrospectives, outlooks
What Design Leaders Must Unlearn to Lead in an AI-First World20,252
design, leadership, ai
“Code Only” Props in Figma (nat)20,251
figma, props
Design in Code, Get Praise (ada)20,250
design, processes, communication
How to Build a WordPress Block Theme20,249
how-tos, wordpress, theming
Vercel vs. Netlify vs. Cloudflare: Serverless Cold Starts Compared20,248
vercel, netlify, cloudflare, serverless, comparisons, metrics
jQuery 4.0.0 (tim/jqu)20,247
jquery, release-notes
AdonisJS v7 Is Feature-Complete and Entering Final Validation (vir/ado)20,246
release-notes, adonisjs
ASCII Characters Are Not Pixels: A Deep Dive Into ASCII Rendering20,245
deep-dives, ascii, rendering
The Astro Technology Company Joins Cloudflare20,244
astro, cloudflare
Beyond Compliance: 5 Surprising Ways the UVAC Framework Turns Accessibility Into a Brand Powerhouse (wil)20,243
accessibility, processes, concepts
When Design Kills Usability—Meet the Custom Cursor (mal)20,242
videos, design, usability, cursors
Chrome 145 Adds Experimental Support for Vertical Tabs (bra)20,241
chrome, google, browsers
Better Defaults for Popovers (mat)20,240
pop-overs, css, resets
State of UX 2026: Design Deeper to Differentiate (nng)20,239
user-experience, design, outlooks, career, ai
PWA (htt)20,238
web-almanac, studies, research, metrics, progressive-web-apps, web-apps, web-workers
Ecommerce (htt)20,237
web-almanac, studies, research, metrics, ecommerce, tooling, performance, web-vitals, lighthouse
CMS (htt)20,236
web-almanac, studies, research, metrics, content-management, tooling, wordpress, user-experience, performance, web-vitals, lighthouse, apis
Security (vik+/htt)20,235
web-almanac, studies, research, metrics, security, tls, certificates, cookies, csp, http-headers, apis, sanitization, configuration
StyleX vs. Tailwind: Meta’s Take on CSS-in-JS Maintainability (ric)20,234
tailwind, comparisons, css-in-js, maintainability, css, javascript
Usability Heuristics and Competition in Games20,233
usability, heuristics, design, aesthetics
The Incredible Overcomplexity of the Shadcn Radio Button (pau)20,232
html, forms, shadcn, complexity
On Coding Agents and the Future of Design (jef)20,231
ai, ai-agents, design, outlooks
Software as Fast Fashion (tan)20,230
programming, ai, sustainability, economics
Fonts (htt)20,229
web-almanac, studies, research, metrics, fonts, performance, css
The Missing Link for Web Components (kin/fro)20,228
web-components, typescript, json, mcp, ai, tooling
Building a Scroll-Driven Dual-Wave Text Animation With GSAP (cod)20,227
gsap, animations, scrolling
Performance (25p+/htt)20,226
web-almanac, studies, research, metrics, performance, web-vitals, hints, speculation
Third Parties (htt)20,225
web-almanac, studies, research, metrics, embed-code
Using “100vw” Is Now Scrollbar-Aware (in Chrome 145+, Under the Right Conditions) (bra)20,224
css, units, scrolling, chrome, google, browsers
Accessibility (bog+/htt)20,223
web-almanac, studies, research, metrics, accessibility, colors, contrast, zooming, scaling, internationalization, keyboard-navigation, skip-links, forms, labels, placeholders, multimedia, images, aria, overlays, ai
Why Designers Are the New Bureaucrats (web)20,222
design, processes
Accessible Faux-Nested Interactive Controls (eri/pic)20,221
accessibility, conformance, html, nesting
Privacy (htt)20,220
web-almanac, studies, research, metrics, privacy, legal, consent-management, do-not-track
Generative AI (chr+/htt)20,219
web-almanac, studies, research, metrics, ai, robotstxt, llmstxt
WebAssembly (htt)20,218
web-almanac, studies, research, metrics, webassembly
CDN (htt)20,217
web-almanac, studies, research, metrics, content-delivery, http, performance, http-headers, compression, tls, hints
SEO (htt)20,216
web-almanac, studies, research, metrics, seo, robotstxt, llmstxt, links, content, structured-data, amp, html, internationalization
Cookies (htt)20,215
web-almanac, studies, research, metrics, cookies
Page Weight (bar+/htt)20,214
web-almanac, studies, research, metrics, performance, web-vitals, lighthouse, google
So You Think Your Website Is Doing Great (cit)20,213
html, javascript, css, quality
Beyond Manual Audits: How Automation Strengthens Accessibility (equ)20,212
accessibility, auditing, automation, wcag
Making GitHub Actions Suck a Little Less20,211
github-actions
Node.js January 2026 Security Release: What Changed and Why It Matters (nod)20,210
nodejs, security
The “Senior Developer” Is Now the New “Entry Level”20,209
career, ai
Smashing Animations: Theming Animations Using CSS Relative Colour (mal/sma)20,208
animations, colors, theming, css
The Unhinged World of Tech in 2026… (fir)20,207
videos, outlooks, ai, javascript
Live Region Support (aar)20,206
accessibility, live-regions, support, screen-readers, nvda, jaws, voiceover
Everything You Need to Know About Ruby 4.0 (hon)20,205
ruby
EPUB and HTML—Survey Results and Next Steps (rei/w3c)20,204
surveys, epub, html
Traditional Code Review Is Dead: What Comes Next?20,203
code-reviews, ai, processes, infrastructure, scalability
How to Use OpenCode: A Practical Guide and Builds20,202
guides, opencode, ai, mcp, tooling, installing
Introducing the “<geolocation>” HTML Element (tom+)20,201
introductions, html, geolocation, chrome, google, browsers
ARIA Roles Can Remove Their Children’s Semantics (ste)20,200
html, aria, semantics, accessibility
18 Predictions for 202620,199
outlooks, ai, usability, user-experience
The Invisible Work (hvp)20,198
leadership, productivity, processes
Mitigating Denial-of-Service Vulnerability From Unrecoverable Stack Space Exhaustion for React, Next.js, and APM Users (mco+/nod)20,197
nodejs, security, vulnerabilities, react, nextjs, tooling, monitoring, performance
Tuesday, January 13, 2026 Security Releases (nod)20,196
release-notes, nodejs, security
Simulating Crop Marks (chr/fro)20,195
css
Astro 6 Beta (mat)20,194
release-notes, astro
Just the Browser (cor)20,193
websites, browsers, chrome, google, firefox, mozilla, edge, microsoft
Aspire for JavaScript Developers (dav)20,192
tooling, javascript, typescript
Design Systems and Shareable Browser Support (rob)20,191
design-systems, browsers, browserslist, support
A Polyfill for the HTML “switch” Element (tom)20,190
html, forms, polyfills
Solid.js Best Practices (bre)20,189
solidjs, best-practices, examples
Is There Too Much Design in Design Systems? (sha)20,188
design, design-systems
Don’t Start With AI, Start With the Problem (cal/nng)20,187
videos, ai, processes
Manufacturing as Code Is the Future, and the Future Is Now20,186
programming, outlooks
OpenCode vs. Claude Code (bui)20,185
opencode, claude, anthropic, ai, comparisons
Stop Turning Everything Into Arrays (and Do Less Work Instead)20,184
javascript, methods, arrays
SVG Filters Are Just Amazing (ami)20,183
svg, filters
Comments Considered Harmful in the Age of LLMs (yeg)20,182
comments, ai, maintainability
Focus Rings With Nested “contrast-color()”? (dav)20,181
css, selectors, functions, focus, contrast
Stop Using MySQL in 2026, It Is Not True Open Source (ott)20,180
mysql
Don’t Fall Into the Anti-AI Hype (ant)20,179
ai, career
How Wrong Can a JavaScript Date Calculation Go? (phi)20,178
javascript, time, apis
On Abbreviating Accessibility (ons)20,177
accessibility, microcontent
What Is the Minimum Markup Needed to Create a Modal? (rus)20,176
modals, minimalism, html, css, accessibility
Prompt Engineering Won’t Fix Your Architecture20,175
architecture, ai
How to Steal Any React Component20,174
react, components
Beyond the Mouse: Animating With Mobile Accelerometers (ami/fro)20,173
mobile, javascript, animations
Death to Scroll Fade (dbu)20,172
scrolling, effects, performance
How Markdown Took Over the World (ani)20,171
markdown, web
Not All Browser APIs Are “Web” APIs (pol)20,170
apis
Brief Note on Application Keyboard Shortcuts (aar)20,169
accessibility, keyboard-shortcuts, screen-readers
Your Brand Just Evolved: The Rise of AI-Generated Identities (web)20,168
design, branding, ai
Very Good Components (bee)20,167
websites, components, html
Popover Context Menus With Anchor Positioning (chr/fro)20,166
css, tooltips, pop-overs, anchor-positioning
Node.js Package Configuration Guide (nod)20,165
guides, packages, dependencies, configuration, commonjs, esm
Judging Severity in Accessibility Issues (joe)20,164
accessibility
What Makes a Good Tech Meet-Up?20,163
discussions, community
A Data Model for Git (and Other Docs Updates) (b0r)20,162
git
Getting Started With Mistral Vibe CLI and Exploring Devstral 2 Small—Best Local Model?20,161
videos, introductions, mistral, ai
Async React20,160
videos, react, asynchronicity
Exploring React Performance (en-)20,159
videos, react, performance
Profiling With React Performance Tracks20,158
videos, react, profiling, performance
Designing Page Transitions20,157
videos, design, transitions, effects
Software Is Culture (fig)20,156
culture
2026 Accessibility Hiring Looks Busy, Yet the Patterns Show Underlying Weakness20,155
accessibility, career
Common Misconceptions About Testing Accessibility (tet)20,154
accessibility, testing
Modern Emails Using React20,153
videos, email, react
Date Is Out, Temporal Is In (wil/pic)20,152
javascript, time
Ethical and Resilient Blog Hosting (pad)20,151
hosting, blogging, ethics
npm to Implement Staged Publishing After Turbulent Shift Off Classic Tokens (sar/soc)20,150
npm, dependencies, security, github
Web Dependencies Are Broken—Can We Fix Them? (lea)20,149
dependencies, javascript, import-maps, web-platform
4 CSS Features Every Front-End Developer Should Know in 2026 (arg)20,148
css, functions, scrolling
Designing With AI-Readable Design Systems in Cursor20,147
design, design-systems, ai, cursor, code-editors
5 Accessibility Checks to Run on Every Component (hdv/zer)20,146
accessibility, components, testing, keyboard-navigation, design-tokens, microcontent, zooming, screen-readers
Google Broke My Heart (per)20,145
google, search, licensing, legal
2025 JavaScript Rising Stars20,144
javascript, frameworks, libraries, react, vuejs, tooling, ai, mobile, desktop, state-management, css-in-js, testing, static-site-generation, graphql, retrospectives
WASI 1.0: You Won’t Know When WebAssembly Is Everywhere in 202620,143
webassembly, components, standards
We Fixed a 6-Year-Old JavaScript Memory Leak (mat/deb)20,142
javascript, memory
The Text Mode Lie: Why Modern TUIs Are a Nightmare for Accessibility20,141
accessibility, command-line, ai, gemini, nvda, vi+vim, unix-like
How to “@scope” CSS Now That It’s Baseline (dxn/fro)20,140
css, scope, examples
How to Create a Pixel-to-Voxel Video Drop Effect With Three.js and Rapier (cod)20,139
how-tos, javascript, effects, tooling, gsap, threejs
JavaScript Frameworks—Heading Into 2026 (rya/thi)20,138
javascript, frameworks, outlooks, ai
How I Evaluate an ACR (VPAT) (aar)20,137
accessibility, compliance, vpat-acr, processes
Claude Devs Complain About Surprise Usage Limits, Anthropic Blames Expiring Bonus (tho/the)20,136
claude, anthropic, ai
Eric Bailey’s Predictions for the Future of Accessibility (eri)20,135
accessibility, outlooks
Streaming JSON in Just 200 Lines of JavaScript20,134
streaming, json, javascript
Anna Thielke’s Predictions for the Future of Accessibility20,133
accessibility, outlooks
Damian Sian’s Predictions for the Future of Accessibility20,132
accessibility, outlooks
Kai Wong’s Predictions for the Future of Accessibility20,131
accessibility, outlooks
The Nine Levels of JavaScript Dependency Hell (and)20,130
javascript, dependencies, maintainability
Pre-Tenuring in V8 (win)20,129
v8, javascript-engines
I Built an App in Every Frontend Framework20,128
frameworks, libraries, react, vuejs, svelte, angular, lit, marko, jquery, alpinejs, solidjs, astro, qwik, comparisons
How GitHub Monopoly Is Destroying the Open Source Ecosystem (plo)20,127
foss, github, microsoft
The Next Two Years of Software Engineering (add)20,126
programming, career, outlooks, ai
V7: Typographic Scales and Technical Pens20,125
design, typography, css, case-studies