Frontend Dogma

News and Tools for Frontend Developers

Following Frontend Dogma? It’s free—and free-time work. Support once or with only 50¢ per month.

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#
AI and Vibe Coding Are Radically Impacting Senior Devs in Code Review (the/the)16,071
, , ,
Is HTML Not a Programming Language?16,070
,
We Added Chaos to Our CI/CD Pipelines—It Made Everything More Stable16,069
, ,
Accent Color (don)16,068
, ,
Faster Python: Concurrency in “async”/“await” and Threading (che/jet)16,067
, , ,
Decoding the SVG “path” Element: Line Commands (sma)16,066
Reimagining Design Systems as Evolving Products (uxm)16,065
A11y 101: 2.1.1 Keyboard (nat)16,064
, , ,
How to “import()” a JavaScript String (zac)16,063
, ,
Creating an Auto-Closing Notification With an HTML Popover (pre/css)16,062
, ,
Where to Put Focus When Opening a Modal Dialog (aar)16,061
, , ,
ARIA/HTML Relationship Severance (ste)16,060
, ,
Beware of End-of-Life Node.js Versions—Upgrade or Seek Post-EOL Support (mco/nod)16,059
, ,
The “<output>” Element (kev)16,058
Generative Engine Optimization: The New Era of Search (sem)16,057
, , ,
“firstChild” Can Be White Space (chr/fro)16,056
,
Collaboration: The Most Underrated UX Skill No One Talks About (sma)16,055
, , ,
6 Ways to Use Documentation Analytics in Your Next Design System Launch16,054
, ,
Generative AI Runs on Gambling Addiction—Just One More Prompt, Bro (dav)16,053
,
How Imports Work in RSC (dan)16,052
, , ,
Chrome Achieves Highest Score Ever on Speedometer 3, Saving Users Millions of Hours (dev)16,051
, ,
HTML-Native Accordions (cfe)16,050
,
How to Access Local MCP Servers Through a Secure Tunnel (the)16,049
, , , ,
Translating Accessibility (tpg)16,048
, , ,
How to Make Accessibility “Stick”16,047
, , ,
State of CSS 2025 (sac/dev)16,046
,
Championing Accessibility: Technical and Non-Technical Tips (equ)16,045
, ,
Inclusive Development Practices in Next.js Projects (web/deq)16,044
, , , , , , , ,
Stop Losing Sleep Over Node.js Config: Here’s How to Get It Right (pla)16,043
,
Handling PostgreSQL Migrations in Node.js (har/bit)16,042
, , ,
Why Designers Get Stuck in the Details and How to Stop (sma)16,041
, ,
Getting Creative With HTML Dialog (mal/css)16,040
,
Functional Capturing (kiz)16,039
,
IE6, AI, and the Future of Browsing the Web (rac)16,038
, , , , , ,
TC39 Advances “Array.fromAsync”, “Error.isError”, and Explicit Resource Management to Stage 4 (sar/soc)16,037
, ,
My AI Skeptic Friends Are All Nuts (fly)16,036
“document.currentScript” Is More Useful Than I Thought (mac)16,035
The Death of Web Design: Why Websites Will Soon Auto-Design Themselves (web)16,034
, ,
Is the DOJ Web Accessibility Rule in Danger?16,033
,
Write More Reliable JavaScript With Optional Chaining16,032
Is It JavaScript? (jim)16,031
, , , , ,
Google Is Stealing Your International Search Traffic With Automated Translations (ahr)16,030
, , , ,
A11y 101: 1.4.13 Content on Hover or Focus (nat)16,029
, , ,
A JavaScript Developer’s Guide to Go (psu)16,028
, , ,
Announcing Rolldown-Vite (eva/voi)16,027
It’s Not Your Codebase16,026
,
The Accessibility Advantage (moz)16,025
,
HTML Only Experiments (ala)16,024
, ,
Almost Half of Google Searches Are Branded—Here’s Why That Matters (tim+/ahr)16,023
, , , ,
The “col” Element (hey)16,022
, ,
Architecting Components in Design Systems: Why It Feels Overwhelming (and How to Tackle It)16,021
,
New to the Web Platform in May (rac/dev)16,020
, , , , , , , ,
Re: Broken Promises (hbu)16,019
, ,
I Tried 100+ MCP Servers and Here’s My Top 1016,018
, ,
The Simplest Way to Deploy Your Own Updatable Portfolio Site (chr/fro)16,017
,
When Did UX and Content Get So Hard? (eri/uxd)16,016
, ,
The New “if()” Function in CSS Has Landed in the Latest Chrome (ami)16,015
, , , ,
Felix Arntz on How Speculative Loading Is Speeding Up Your WordPress Website (fel+)16,014
, , ,
The Promise That Wasn’t Kept (whi)16,013
, ,
Best Examples of EAA Compliant Websites in 202516,012
, , ,
Exploring the OKLCH Ecosystem and Its Tools (ina+/evi)16,011
,
5 Common Mistakes When Creating Design Specs16,010
, , ,
Why Are 2025/05/28 and 2025-05-28 Different Days in JavaScript?16,009
The 3 Ways JavaScript Frameworks Render the DOM (rya)16,008
, , , ,
Announcing Angular v20 (mge/ang)16,007
,
Privacy on the Web: Creating a More Trustworthy Web (set/w3c)16,006
, ,
Setting Targets for Developer Productivity Metrics (lau)16,005
, ,
Optimizing Time to First Byte (TTFB): 5 Key Strategies for Faster Load Times (des)16,004
, , , , , ,
Quick Tip: Context Is Key (nat)16,003
, ,
Why Is Quality So Rare?16,002
,
Seamlessly Blend PHP With Node.js (mco+/pla)16,001
, ,
Ready or Not, the EAA Is Here (uxd)16,000
, , ,
The Magic of the Most Minimal HTML Possible (and Why We Don’t Make Use of It) (j9t)15,999
, ,
Build a Blog With Angular in Under 30 Minutes Using Analog (pmb)15,998
, ,
AI Agents for Designers, Developers, and UX Strategists: What You Need to Know Now (web)15,997
, , ,
Data vs. Findings vs. Insights in UX (vit/sma)15,996
, , ,
What We Know (So Far) About CSS Reading Order (dxn/css)15,995
New in Chrome 137 (rac/dev)15,994
, , ,
Letter to Arc Members 202515,993
,
Should We Stop Creating Informational Content? (moz)15,992
, , ,
What I Learnt About Making Websites by Reading Two Thousand Web Pages (ale)15,991
, , ,
CSS Spotlight Effect (ami/fro)15,990
,
Wake Up, Remix15,989
,
Why WordPress Scalability Starts With Smart Site Structure From Day One15,988
, , ,
AI Makes Bad Managers15,987
,
Decorative Text Within HTML (ede)15,986
, , ,
A Thought on JavaScript “Proof of Work” Anti-Scraper Systems (cks)15,985
, ,
Your React Meta-Framework Feels Broken, Here’s Why (red)15,984
, , , ,
What Svelte Promises (ric/sve)15,983
,
The Evolving Art and Science of Prompt Engineering: A Chronological Journey15,982
, ,
Are You Sure That Table Isn’t a List? (tem)15,981
, , ,
Stop Saying That AI Is Just a Tool and It Only Matters How It Is Used (fra)15,980
,
How the World Is Celebrating Open Source Maintainer Month (the)15,979
,
Why Fonts Look Better on macOS Than on Windows (uxd)15,978
, , , , , , ,
JavaScript’s Upcoming Temporal API and What Problems It Will Solve15,977
,
My Request to Google on Accessibility (aar)15,976
, ,
Tools (ada)15,975
,
Multithreading in JavaScript With Web Workers (hon)15,974
, , ,
The End of Glitch (Even Though They Say It Isn’t) (kei)15,973
Modern CSS for Creative Developers (cyd/btc)15,972
, ,
On “Vibe Coding” (tan)15,971
,
Better CSS Shapes Using “shape()” (css/css)15,970
, ,
The Landing Zone (ada)15,969
,
Move Modal in on a… “shape()” (chr/fro)15,968
, ,
Make Screen Readers Talk With the ARIA Notify API (ale)15,967
, , , ,
Performance Debugging in DevTools (pau/dev)15,966
, , , , , ,
Deploying Accessibility at Scale: Strategy, Tactics, and Battle Stories (int)15,965
, ,
Announcing TypeScript Native Previews (dan/typ)15,964
Trip Report: Node.js Collaboration Summit (2025 Paris) (joy+/nod)15,963
How to Build Scalable Web Apps With React JS15,962
, , ,
What’s New in Angular (dev)15,961
,
Anthropic Launches Its Most Powerful Models for Coding Yet (fre/the)15,960
A Brief History of JavaScript (den)15,959
, , , , , , ,
Important Changes Are Coming to Glitch (ani/gli)15,958
,
CodeRabbit’s AI Code Reviews Now Live Free in VS Code, Cursor (dar/the)15,957
, , , , , ,
You Can Style Alt Text Like Any Other Text (geo/css)15,956
, , , ,
The “datalist” Element (kev)15,955
,
Web Animations Today and Tomorrow (bra/dev)15,954
, , , , ,
Masonry, Item Flow, and… GULP? (mey)15,953
, , , ,
ESLint v9.0.0: A Retrospective (nza/esl)15,952
,
Styling the Icon for HTML Date and Time Types (cas)15,951
, ,
Authenticating JavaScript WebSockets15,950
, ,
Coding Guidelines for Your AI Agents (jet)15,949
,
The Pipe Operator Is Coming to PHP 8.5 (ami)15,948
,
Visual Studio Code Now Supports Baseline (rvi/dev)15,947
, , , ,
Reports of Deno’s Demise Have Been Greatly Exaggerated (tin/den)15,946
,
Web Stage [Google I/O 2025] (pau+/dev)15,945
, , , ,
MCP Is the Coming of Web 2.0 2.0 (ani)15,944
, , ,
What’s New in Web (rac/dev)15,943
, , ,
Introduction to JavaScript Frameworks (rya)15,942
, , , , , , , ,
We Did the Math on AI’s Energy Footprint—Here’s the Story You Haven’t Heard (jam+/tec)15,941
, , , ,
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,940
, , ,
CSS Logical Properties (cfe)15,939
,
What’s New in DevTools, Chrome 137 (dev)15,938
, , , ,
The “caption” Element (hey)15,937
, ,
Exploring the Role of Generative AI in Mobile UX Design (uxm)15,936
, , ,
The Role of Prototyping in Perfecting Product Designs (uxm)15,935
, ,
Is Thinking Outside the Box Still Possible in a Cancel Culture World? (web)15,934
, ,
WordPress Needs Documentation About Accessibility, Help Me Work on It (ria)15,933
, ,
The Problem With Web Components15,932
JavaScript in the Morning, JavaScript in the Evening… (ray)15,931
,
Creating Blob Shapes Using “clip-path: shape()” (css/fro)15,930
, ,
CSS Tips: Flexible Wrapping CSS Grid (zor/css)15,929
, , , ,
The State of JavaScript Debugging in WebAssembly (the)15,928
, ,
No Country for Junior Designers (uxd)15,927
,
Designing Calm: UX Principles for Reducing Users’ Anxiety (uxm)15,926
, ,
The Role of UX Design Strategy in Driving Product Adoption (uxm)15,925
, , , ,
There Is No Spoon (tin/btc)15,924
, ,
Unshipping: How (and When) to Break Web Features (ric+/iga)15,923
, , ,
How JavaScript’s “at()” Method Makes Array Indexing Easier15,922
,
6 Ways Slack, Notion, and VS Code Improved Electron App Performance15,921
, , , ,
A11y 101: 1.4.12 Text Spacing (nat)15,920
, , ,
JetBrains AI Assistant—Now in Visual Studio Code (jet)15,919
, , , ,
Docker Launches Hardened Images, Intensifying Secure Container Market (the)15,918
,
A Reader’s Question on Nested Lists (mon/css)15,917
,
No Server, No Database: Smarter Related Posts in Astro With transformers.js (ale)15,916
, ,
How to Convince People to Care and Invest in Accessibility (ste)15,915
, , ,
Design for Trust, Then for Possibility (uxd)15,914
,
Expanding/Collapsing With “details” (ons/oze)15,913
, ,
The Fastest Way to Spend Less Time Debugging15,912
, , ,
Why Strong Engineers Are Rarely Blocked15,911
,
Why AI Interviews Could Be Bad News for Honest Designers (and)15,910
, , ,
The Ingredients of a Productive Monorepo (swg)15,909
, , , ,
Just Fucking Use React (ome+)15,908
,
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,907
, , ,
The Basics of Node.js Streams15,906
, ,
Fewer Ideas: An Unconventional Approach to Creativity (sma)15,905
, ,
Styling Console Text in Node.js (rau)15,904
, ,
Accessibility Report 2025 (ema)15,903
, , ,
Node.js TSC Declines to Endorse Feature Bounty Program (sar/soc)15,902
A11y 101: How to Test Manually (nat)15,901
, ,
Awareness (ada)15,900
,
React Router RSC Preview15,899
, ,
3 Tools to Help Fix the Web’s Most Common WCAG 2.2 Failures15,898
, , , , ,
My Glamorous Life: Broken by Design (zel)15,897
,
Behind the Scenes: How We Iterate on UI Copy (aut)15,896
, , , , ,
An Update on Fresh (mar/den)15,895
How Long Does It Take to Rank in Google? And How Old Are Top Ranking Pages? (ahr)15,894
, , ,
Scroll-Driven Animations Inside a CSS Carousel (geo/css)15,893
, , ,
“:out-of-range” (kev)15,892
,
How Often Should We Speak About HTML Conformance? (j9t)15,891
, ,
Wes Tatters on the Evolution of Internet Communities and WordPress Open Source (nat)15,890
, , , ,
We Launched Our First Shopify Theme (nic)15,889
, ,
Release Notes for Safari Technology Preview 219 (jon/web)15,888
, , ,
Focus on the Product, Not the Tech Stack15,887
, ,
Painting With the Web (mat/btc)15,886
, , , ,
Microsoft Lays Off TypeScript Veteran Ron Buckton Amid 6,000-Job Cut Restructuring15,885
,
How Google Is Accelerating Code Migrations With AI15,884
, , , , ,
What Is a Conforming Alternate Version and When Would We Use It? (mni)15,883
,
Finding the Joy in Alt Text (bry)15,882
, ,
The Perverse Incentives of Vibe Coding (fre/uxd)15,881
, , , ,
Cold vs. Hot Observables in Angular With RxJS15,880
, , , ,
How to Have the Browser Pick a Contrasting Color in CSS (jen/web)15,879
, , , , ,
Container Query for “Is There Enough Space Outside This Element?” (chr/fro)15,878
,
I Think the Ergonomics of Generators Is Growing on Me (mac)15,877
,
Just Fucking Use HTML (kyr)15,876
,
Update on CSS Anchor Positioning (fan/w3c)15,875
, ,
Enhancements to the Proposed “<permission>” Element (tom/dev)15,874
WebKit Features in Safari 18.5 (jen/web)15,873
, , , ,
Integrating Localization Into Design Systems (sma)15,872
, , ,
Why I Skipped Figma and Prototyped in Code Instead (uxd)15,871
, , , ,
The Height Enigma (jos)15,870
,
How to Title Your Blog Post or Whatever (dyn)15,869
, , ,
Understanding Java’s Asynchronous Journey15,868
, ,
JavaScript Compile Hints: What They Are and When to Use Them (tre)15,867
, , ,
Claude Code: AI Agent for Devops, SRE, and Platform Engineering15,866
, , ,
Designing AI With Purpose: The AI Intention Matrix (uxd)15,865
, ,
Figma Sites: When Accessibility Is an Afterthought (uxd)15,864
, ,
The Tech Bro Era Is Fading—So Who’s Next to Shape Our Culture? (uxd)15,863
, , , ,
Good Commit Messages Are Just Self-Care: Why I Document Everything15,862
, ,
Figma Sites Is Worse Than You Might Have Thought (kev)15,861
, ,
Dependency Inversion in React: Building Truly Testable Components15,860
, ,
Figma Dreamweaver (pav)15,859
, , ,
Foundations: Keyboard Accessibility (tet)15,858
, , , ,
Unlocking Accessibility: Information Architects Share Their Approach to Digital Accessibility and Design With People With Disabilities15,857
,
The True Path to Garbage Code: Figma Sites (joe)15,856
, , , ,
CSS Snippets (ada)15,855
Building the Bridge: Running JavaScript Modules From Dart15,854
, , , , ,
95% of Homepages Are Inaccessible (uxd)15,853
, , ,
“shape()”: A New Powerful Drawing Syntax in CSS (chr/fro)15,852
, , ,
Migrating a JavaScript Project From Prettier and ESLint to BiomeJS (app)15,851
, , , ,
Guitar Chords in CSS (sto)15,850
, ,
“:placeholder-shown” (kev)15,849
,
Why Is Nobody Using the “hwb()” Color Function? (css)15,848
, ,
Do Not Publish Your Designs on the Web With Figma Sites… (aar)15,847
,
Is Web Development Dying? Inside Information15,846
,
Angular: “httpResource” in the Wild15,845
, ,
7 Things I Do Regularly as a Senior Frontend Developer (nde)15,844
, ,
Node.js 24 Is Here: What You Need to Know (nod)15,843
The Hidden Gold of Web Accessibility: Everything About ARIA Labels (flo/a11)15,842
, , ,
Getting Things “Done” in Large Tech Companies15,841
, ,
Masonry in CSS: Should Grid Evolve or Stand Aside for a New Module? (sma)15,840
, , ,
Are “CSS Carousels” Accessible? (sar)15,839
, , ,
Node v24.0.0 (Current) (raf/nod)15,838
,
Updates to Popover and CSS Anchor Positioning Polyfills (jam/odd)15,837
, , ,
Next.js Deployment Spec Simplifies Frontend Hosting (low/the)15,836
, , , ,
How to Create Full Width Containers in CSS (lia)15,835
,
Using Container Query Units Relative to an Outer Container (ana/fro)15,834
, ,
The Growing Divide Among React Developers… (fir)15,833
, , , ,
There Should Be No AI Button15,832
, , ,
How to Launch Big Complex Projects (vit/sma)15,831
, ,
The “code” Element (hey)15,830
,
Mozilla Say Google Search Deal Vital to Firefox’s Survival (d0o/omg)15,829
, , ,
Rethinking Responsive Grids With a Content-Aware Approach (web)15,828
, , ,
You’re Misunderstanding DDD in Angular (and Frontend) (duc/dan)15,827
,
Measuring Developer Productivity in the LLM Era15,826
, , ,
Database Internals Explained: The Invisible Engine Behind Every App You Use (rak)15,825
,
Passkeys for Normal People (tro)15,824
, , , ,
K.I.S.S. ARIA (nat)15,823
, ,
The Power of the Spread and Rest Syntax in JavaScript15,822
,