Frontend Dogma

News and Tools for Frontend Developers

Featured on Frontend Dogma? Verify and whitelist your domain.

Articles and videos and books, people and projects and processes, tools and tips and tricks from the world of web development and design.

→ Stay up-to-date on all topics by RSS feed (recommended), on Mastodon and Bluesky, or through other channels

Entry (Sources) and TopicsDate#
Every Service Should Have a Killswitch16,149
,
AI Browsers: Dia’s Chat-Based UI and the Future of the Web (ric/the)16,148
, , , ,
Scope in CSS (chr/fro)16,147
, ,
How to Keep Up With New CSS Features (sac/css)16,146
, , ,
Selfish Reasons for Building Accessible Uis (nol)16,145
, , ,
Using “await” at the Top Level in ES Modules16,144
, ,
Design Systems of the Future (ben)16,143
, ,
Design Patterns for Securing LLM Agents Against Prompt Injections (sim)16,142
, , , , ,
5 Best JavaScript Web Scraping Libraries in 2025 (api)16,141
, , ,
“1fr 1fr” vs. “auto auto” vs. “50% 50%” (chr/fro)16,140
, , ,
Just a Designer Now: Shopify Dropped UX as a Title (uxd)16,139
, ,
Accessibility in Design Systems (dev)16,138
, ,
AI and Vibe Coding Are Radically Impacting Senior Devs in Code Review (the/the)16,137
, , ,
Is HTML Not a Programming Language?16,136
,
Testing Methods: Info and Relationships (dec)16,135
, , ,
The Designer’s Hierarchy of Career Needs (chr)16,134
,
We Added Chaos to Our CI/CD Pipelines—It Made Everything More Stable16,133
, ,
Accent Color (don)16,132
, ,
Faster Python: Concurrency in “async”/“await” and Threading (che/jet)16,131
, , ,
Pride, Shame, and Accessibility (hey)16,130
,
Decoding the SVG “path” Element: Line Commands (sma)16,129
Reimagining Design Systems as Evolving Products (uxm)16,128
A11y 101: 2.1.1 Keyboard (nat)16,127
, , ,
How to “import()” a JavaScript String (zac)16,126
, ,
Creating an Auto-Closing Notification With an HTML Popover (pre/css)16,125
, ,
Where to Put Focus When Opening a Modal Dialog (aar)16,124
, , ,
ARIA/HTML Relationship Severance (ste)16,123
, ,
Beware of End-of-Life Node.js Versions—Upgrade or Seek Post-EOL Support (mco/nod)16,122
, ,
The “<output>” Element (kev)16,121
Generative Engine Optimization: The New Era of Search (sem)16,120
, , ,
The Politics of Design Systems (jon)16,119
Beyond Code: What “The Pragmatic Programmer” Taught Me in One Chapter16,118
, ,
Quick Tip: WCAG Doesn’t Round (nat)16,117
, ,
“firstChild” Can Be White Space (chr/fro)16,116
,
Collaboration: The Most Underrated UX Skill No One Talks About (sma)16,115
, , ,
6 Ways to Use Documentation Analytics in Your Next Design System Launch16,114
, ,
Generative AI Runs on Gambling Addiction—Just One More Prompt, Bro (dav)16,113
,
How Imports Work in RSC (dan)16,112
, , ,
Chrome Achieves Highest Score Ever on Speedometer 3, Saving Users Millions of Hours (dev)16,111
, ,
HTML-Native Accordions (cfe)16,110
,
How to Access Local MCP Servers Through a Secure Tunnel (the)16,109
, , , ,
Performance and Stress Testing in Node.js (app)16,108
, , ,
Want to Be a Better Frontend Engineer? Try a Week On-Call16,107
, ,
The UX Butterfly Effect (mar/uxd)16,106
,
Translating Accessibility (tpg)16,105
, , ,
How to Make Accessibility “Stick”16,104
, , ,
State of CSS 2025 (sac/dev)16,103
,
Championing Accessibility: Technical and Non-Technical Tips (equ)16,102
, ,
Inclusive Development Practices in Next.js Projects (web/deq)16,101
, , , , , , , ,
Stop Losing Sleep Over Node.js Config: Here’s How to Get It Right (pla)16,100
,
Handling PostgreSQL Migrations in Node.js (har/bit)16,099
, , ,
Why Designers Get Stuck in the Details and How to Stop (sma)16,098
, ,
Getting Creative With HTML Dialog (mal/css)16,097
,
Functional Capturing (kiz)16,096
,
Colour Alone Can Be Used to Convey Meaning, and I Don’t Like It (tem)16,095
,
IE6, AI, and the Future of Browsing the Web (rac)16,094
, , , , , ,
TC39 Advances “Array.fromAsync”, “Error.isError”, and Explicit Resource Management to Stage 4 (sar/soc)16,093
, ,
My AI Skeptic Friends Are All Nuts (fly)16,092
“document.currentScript” Is More Useful Than I Thought (mac)16,091
The Death of Web Design: Why Websites Will Soon Auto-Design Themselves (web)16,090
, ,
Is the DOJ Web Accessibility Rule in Danger?16,089
,
Write More Reliable JavaScript With Optional Chaining16,088
Is It JavaScript? (jim)16,087
, , , , ,
Google Is Stealing Your International Search Traffic With Automated Translations (ahr)16,086
, , , ,
A11y 101: 1.4.13 Content on Hover or Focus (nat)16,085
, , ,
A JavaScript Developer’s Guide to Go (psu)16,084
, , ,
Angular 20 Is Here (ang)16,083
Up and Coming ARIA (web)16,082
, ,
The Template Trap: How Template Culture Is Dumbing Down UX16,081
, , , ,
Announcing Rolldown-Vite (eva/voi)16,080
It’s Not Your Codebase16,079
,
The Accessibility Advantage (moz)16,078
,
HTML Only Experiments (ala)16,077
, ,
Almost Half of Google Searches Are Branded—Here’s Why That Matters (tim+/ahr)16,076
, , , ,
Building an MCP Server With Nx (max/nx.)16,075
, ,
The “col” Element (hey)16,074
, ,
Architecting Components in Design Systems: Why It Feels Overwhelming (and How to Tackle It)16,073
,
New to the Web Platform in May (rac/dev)16,072
, , , , , , , ,
Re: Broken Promises (hbu)16,071
, ,
I Tried 100+ MCP Servers and Here’s My Top 1016,070
, ,
The Simplest Way to Deploy Your Own Updatable Portfolio Site (chr/fro)16,069
,
When Did UX and Content Get So Hard? (eri/uxd)16,068
, ,
The New “if()” Function in CSS Has Landed in the Latest Chrome (ami)16,067
, , , ,
Felix Arntz on How Speculative Loading Is Speeding Up Your WordPress Website (fel+)16,066
, , ,
The Promise That Wasn’t Kept (whi)16,065
, ,
Best Examples of EAA Compliant Websites in 202516,064
, , ,
Exploring the OKLCH Ecosystem and Its Tools (ina+/evi)16,063
,
5 Common Mistakes When Creating Design Specs16,062
, , ,
Why Are 2025/05/28 and 2025-05-28 Different Days in JavaScript?16,061
The 3 Ways JavaScript Frameworks Render the DOM (rya)16,060
, , , ,
Announcing Angular v20 (mge/ang)16,059
,
Privacy on the Web: Creating a More Trustworthy Web (set/w3c)16,058
, ,
Setting Targets for Developer Productivity Metrics (lau)16,057
, ,
Optimizing Time to First Byte (TTFB): 5 Key Strategies for Faster Load Times (des)16,056
, , , , , ,
Letter to Arc Members 202516,055
, , ,
Quick Tip: Context Is Key (nat)16,054
, ,
Why Is Quality So Rare?16,053
,
Seamlessly Blend PHP With Node.js (mco+/pla)16,052
, ,
Ready or Not, the EAA Is Here (uxd)16,051
, , ,
The Magic of the Most Minimal HTML Possible (and Why We Don’t Make Use of It) (j9t)16,050
, ,
Build a Blog With Angular in Under 30 Minutes Using Analog (pmb)16,049
, ,
AI Agents for Designers, Developers, and UX Strategists: What You Need to Know Now (web)16,048
, , ,
Data vs. Findings vs. Insights in UX (vit/sma)16,047
, , ,
What We Know (So Far) About CSS Reading Order (dxn/css)16,046
New in Chrome 137 (rac/dev)16,045
, , ,
Should We Stop Creating Informational Content? (moz)16,044
, , ,
What I Learnt About Making Websites by Reading Two Thousand Web Pages (ale)16,043
, , ,
CSS Spotlight Effect (ami/fro)16,042
,
Wake Up, Remix16,041
,
Why WordPress Scalability Starts With Smart Site Structure From Day One16,040
, , ,
AI Makes Bad Managers16,039
,
Decorative Text Within HTML (ede)16,038
, , ,
A Thought on JavaScript “Proof of Work” Anti-Scraper Systems (cks)16,037
, ,
Your React Meta-Framework Feels Broken, Here’s Why (red)16,036
, , , ,
What Svelte Promises (ric/sve)16,035
,
The Evolving Art and Science of Prompt Engineering: A Chronological Journey16,034
, ,
Are You Sure That Table Isn’t a List? (tem)16,033
, , ,
Stop Saying That AI Is Just a Tool and It Only Matters How It Is Used (fra)16,032
,
How the World Is Celebrating Open Source Maintainer Month (the)16,031
,
The Role of Captions and Transcripts in Accessibility16,030
,
Why Fonts Look Better on macOS Than on Windows (uxd)16,029
, , , , , , ,
JavaScript’s Upcoming Temporal API and What Problems It Will Solve16,028
,
My Request to Google on Accessibility (aar)16,027
, ,
Tools (ada)16,026
,
Multithreading in JavaScript With Web Workers (hon)16,025
, , ,
The End of Glitch (Even Though They Say It Isn’t) (kei)16,024
Modern CSS for Creative Developers (cyd/btc)16,023
, ,
On “Vibe Coding” (tan)16,022
,
Better CSS Shapes Using “shape()” (css/css)16,021
, ,
The Landing Zone (ada)16,020
,
Move Modal in on a… “shape()” (chr/fro)16,019
, ,
Make Screen Readers Talk With the ARIA Notify API (ale)16,018
, , , ,
Performance Debugging in DevTools (pau/dev)16,017
, , , , , ,
Deploying Accessibility at Scale: Strategy, Tactics, and Battle Stories (int)16,016
, ,
Announcing TypeScript Native Previews (dan/typ)16,015
Trip Report: Node.js Collaboration Summit (2025 Paris) (joy+/nod)16,014
How to Build Scalable Web Apps With React JS16,013
, , ,
What’s New in Angular (dev)16,012
,
Anthropic Launches Its Most Powerful Models for Coding Yet (fre/the)16,011
A Brief History of JavaScript (den)16,010
, , , , , , ,
Important Changes Are Coming to Glitch (ani/gli)16,009
,
CodeRabbit’s AI Code Reviews Now Live Free in VS Code, Cursor (dar/the)16,008
, , , , , ,
You Can Style Alt Text Like Any Other Text (geo/css)16,007
, , , ,
The “datalist” Element (kev)16,006
,
Web Animations Today and Tomorrow (bra/dev)16,005
, , , , ,
Masonry, Item Flow, and… GULP? (mey)16,004
, , , ,
ESLint v9.0.0: A Retrospective (nza/esl)16,003
,
Styling the Icon for HTML Date and Time Types (cas)16,002
, ,
Authenticating JavaScript WebSockets16,001
, ,
Coding Guidelines for Your AI Agents (jet)16,000
,
The Pipe Operator Is Coming to PHP 8.5 (ami)15,999
,
Visual Studio Code Now Supports Baseline (rvi/dev)15,998
, , , ,
Reports of Deno’s Demise Have Been Greatly Exaggerated (tin/den)15,997
,
Web Stage [Google I/O 2025] (pau+/dev)15,996
, , , ,
MCP Is the Coming of Web 2.0 2.0 (ani)15,995
, , ,
What’s New in Web (rac/dev)15,994
, , ,
Introduction to JavaScript Frameworks (rya)15,993
, , , , , , , ,
We Did the Math on AI’s Energy Footprint—Here’s the Story You Haven’t Heard (jam+/tec)15,992
, , , ,
ChatGPT and the Proliferation of Obsolete and Broken Solutions to Problems We Hadn’t Had for Over Half a Decade Before Its Launch (ana/fro)15,991
, , ,
CSS Logical Properties (cfe)15,990
,
What’s New in DevTools, Chrome 137 (dev)15,989
, , , ,
The “caption” Element (hey)15,988
, ,
Exploring the Role of Generative AI in Mobile UX Design (uxm)15,987
, , ,
The Role of Prototyping in Perfecting Product Designs (uxm)15,986
, ,
Is Thinking Outside the Box Still Possible in a Cancel Culture World? (web)15,985
, ,
WordPress Needs Documentation About Accessibility, Help Me Work on It (ria)15,984
, ,
The Problem With Web Components15,983
JavaScript in the Morning, JavaScript in the Evening… (ray)15,982
,
Creating Blob Shapes Using “clip-path: shape()” (css/fro)15,981
, ,
CSS Tips: Flexible Wrapping CSS Grid (zor/css)15,980
, , , ,
The State of JavaScript Debugging in WebAssembly (the)15,979
, ,
No Country for Junior Designers (uxd)15,978
,
Designing Calm: UX Principles for Reducing Users’ Anxiety (uxm)15,977
, ,
The Role of UX Design Strategy in Driving Product Adoption (uxm)15,976
, , , ,
There Is No Spoon (tin/btc)15,975
, ,
Unshipping: How (and When) to Break Web Features (ric+/iga)15,974
, , ,
How JavaScript’s “at()” Method Makes Array Indexing Easier15,973
,
6 Ways Slack, Notion, and VS Code Improved Electron App Performance15,972
, , , ,
A11y 101: 1.4.12 Text Spacing (nat)15,971
, , ,
JetBrains AI Assistant—Now in Visual Studio Code (jet)15,970
, , , ,
Docker Launches Hardened Images, Intensifying Secure Container Market (the)15,969
,
A Reader’s Question on Nested Lists (mon/css)15,968
,
No Server, No Database: Smarter Related Posts in Astro With transformers.js (ale)15,967
, ,
How to Convince People to Care and Invest in Accessibility (ste)15,966
, , ,
Design for Trust, Then for Possibility (uxd)15,965
,
Expanding/Collapsing With “details” (ons/oze)15,964
, ,
The Fastest Way to Spend Less Time Debugging15,963
, , ,
Why Strong Engineers Are Rarely Blocked15,962
,
Why AI Interviews Could Be Bad News for Honest Designers (and)15,961
, , ,
The Ingredients of a Productive Monorepo (swg)15,960
, , , ,
Just Fucking Use React (ome+)15,959
,
Is There a Correct Answer? Flipping Layouts When Google Translate Swaps Between a Left-to-Right Language and a Right-to-Left Language (chr/fro)15,958
, , ,
The Basics of Node.js Streams15,957
, ,
Fewer Ideas: An Unconventional Approach to Creativity (sma)15,956
, ,
Styling Console Text in Node.js (rau)15,955
, ,
Accessibility Report 2025 (ema)15,954
, , ,
Node.js TSC Declines to Endorse Feature Bounty Program (sar/soc)15,953
A11y 101: How to Test Manually (nat)15,952
, ,
Awareness (ada)15,951
,
React Router RSC Preview15,950
, ,
3 Tools to Help Fix the Web’s Most Common WCAG 2.2 Failures15,949
, , , , ,
My Glamorous Life: Broken by Design (zel)15,948
,
Behind the Scenes: How We Iterate on UI Copy (aut)15,947
, , , , ,
An Update on Fresh (mar/den)15,946
How Long Does It Take to Rank in Google? And How Old Are Top Ranking Pages? (ahr)15,945
, , ,
Scroll-Driven Animations Inside a CSS Carousel (geo/css)15,944
, , ,
“:out-of-range” (kev)15,943
,
Securing Your Node.js App From Command Injection15,942
,
How Often Should We Speak About HTML Conformance? (j9t)15,941
, ,
Wes Tatters on the Evolution of Internet Communities and WordPress Open Source (nat)15,940
, , , ,
We Launched Our First Shopify Theme (nic)15,939
, ,
Release Notes for Safari Technology Preview 219 (jon/web)15,938
, , ,
Focus on the Product, Not the Tech Stack15,937
, ,
Painting With the Web (mat/btc)15,936
, , , ,
Microsoft Lays Off TypeScript Veteran Ron Buckton Amid 6,000-Job Cut Restructuring15,935
,
How Google Is Accelerating Code Migrations With AI15,934
, , , , ,
What Is a Conforming Alternate Version and When Would We Use It? (mni)15,933
,
Finding the Joy in Alt Text (bry)15,932
, ,
The Perverse Incentives of Vibe Coding (fre/uxd)15,931
, , , ,
Cold vs. Hot Observables in Angular With RxJS15,930
, , , ,
How to Have the Browser Pick a Contrasting Color in CSS (jen/web)15,929
, , , , ,
Container Query for “Is There Enough Space Outside This Element?” (chr/fro)15,928
,
I Think the Ergonomics of Generators Is Growing on Me (mac)15,927
,
Just Fucking Use HTML (kyr)15,926
,
Update on CSS Anchor Positioning (fan/w3c)15,925
, ,
Enhancements to the Proposed “<permission>” Element (tom/dev)15,924
WebKit Features in Safari 18.5 (jen/web)15,923
, , , ,
Integrating Localization Into Design Systems (sma)15,922
, , ,
Why I Skipped Figma and Prototyped in Code Instead (uxd)15,921
, , , ,
The Height Enigma (jos)15,920
,
How to Title Your Blog Post or Whatever (dyn)15,919
, , ,
Understanding Java’s Asynchronous Journey15,918
, ,
JavaScript Compile Hints: What They Are and When to Use Them (tre)15,917
, , ,
Claude Code: AI Agent for Devops, SRE, and Platform Engineering15,916
, , ,
Designing AI With Purpose: The AI Intention Matrix (uxd)15,915
, ,
Figma Sites: When Accessibility Is an Afterthought (uxd)15,914
, ,
The Tech Bro Era Is Fading—So Who’s Next to Shape Our Culture? (uxd)15,913
, , , ,
Good Commit Messages Are Just Self-Care: Why I Document Everything15,912
, ,
Figma Sites Is Worse Than You Might Have Thought (kev)15,911
, ,
Dependency Inversion in React: Building Truly Testable Components15,910
, ,
Figma Dreamweaver (pav)15,909
, , ,
Foundations: Keyboard Accessibility (tet)15,908
, , , ,
Unlocking Accessibility: Information Architects Share Their Approach to Digital Accessibility and Design With People With Disabilities15,907
,
The True Path to Garbage Code: Figma Sites (joe)15,906
, , , ,
CSS Snippets (ada)15,905
Building the Bridge: Running JavaScript Modules From Dart15,904
, , , , ,
95% of Homepages Are Inaccessible (uxd)15,903
, , ,
“shape()”: A New Powerful Drawing Syntax in CSS (chr/fro)15,902
, , ,
Migrating a JavaScript Project From Prettier and ESLint to BiomeJS (app)15,901
, , , ,
Guitar Chords in CSS (sto)15,900
, ,