Tech does not just watch: Take action against Russia’s war on Ukraine 🇺🇦, and take action against Israel’s genocide on the Palestinian people and the destruction of Palestine 🇵🇸 Protest, boycott, ostracize. Hide

Frontend Dogma

News and Tools for Frontend Developers

Featured on Frontend Dogma? Verify and whitelist your domain (no rel=nofollow).

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 various RSS feeds (main feed: only $10/year), on Mastodon and Bluesky, or through other channels

Entry (Sources) and TopicsDate#
Single-Colour Gradients (kev)17,304
,
What Can We Actually Do With “corner-shape”? (dxn/css)17,303
, , ,
You Can’t Track AI Like Traditional Search—Here’s What to Do Instead (lou/ahr)17,302
,
How Maintainer Burnout Is Causing a Kubernetes Security Disaster (the)17,301
, , , ,
How Do You Optimize for AI Search? (sem)17,300
, ,
2025: 0 of the Global Top 200 Websites Use Valid HTML (j9t)17,299
, , , ,
100 Most Cited Domains in ChatGPT (ahr)17,298
,
AI Cuts Onboarding Time in Half for New Hires in the Enterprise (lau)17,297
, , ,
View Transitions: What Could Possibly Go Wrong? (mar/vtb)17,296
,
I’m Moving Away From GitHub (pal)17,295
, ,
Chrome Mask: Make Firefox Appear as Chrome With a Single Click17,294
, , , ,
npm Author Qix Compromised via Phishing Email in Major Supply Chain Attack (bur+/soc)17,293
, ,
Will Vibe Coding Kill Low-Code17,292
, ,
Anatomy of a Billion-Download npm Supply-Chain Attack17,291
, ,
The Web Behind Glass (med)17,290
, , ,
Composition in CSS (zel/css)17,289
“Make Invalid States Unrepresentable” Considered Harmful17,288
,
The Node.js Handbook, 2025 Edition (fla)17,287
,
How to Perform a Comprehensive WCAG Audit (a11)17,286
, , , ,
20 Footer Design Myths You’re Still Believing (and How to Fix Them (web)17,285
, ,
“Why Would Anybody Start a Website?” (dav)17,284
What You Need to Know About CSS Color Interpolation (sun/css)17,283
, , ,
Liquid Glass in the Browser: Refraction With CSS and SVG17,282
, , ,
Don’t Inherit the Box Model (mia/odd)17,281
,
Accessible Writing Techniques for Web Content (a11)17,280
, , ,
You Don’t Need Animations (emi)17,279
,
The Fundamentals of CSS Alignment (css)17,278
, , ,
Functional Custom Elements the Easy Way (gin/pic)17,277
,
Baby Steps Accessibility—Color Contrast of Text (dec)17,276
, , ,
Advanced PostgreSQL Indexing: Multi-Key Queries and Performance Optimization (ada/fro)17,275
, , ,
.htaccess: A Helper Script to Easily Block Website Traffic by Country (j9t)17,274
, , , ,
15 Ways Your Website Loads From Google Search and How to Measure Each One (paw)17,273
, , , , ,
What the Internet Was Like in 1999 (ric)17,272
, , , , , ,
Testing Methods: Low or No Background Audio (dec)17,271
, , ,
No, You Don’t Want to Hire “the Best Engineers” (oth)17,270
,
Learning Web Development: Asynchronous JavaScript—Promises and “async” Functions (rau)17,269
, , ,
Why You Should Test Your Page Without JavaScript17,268
, , ,
Why Did I Ever Abandon HTML/CSS? (syl)17,267
,
What We Actually Know About Optimizing for LLM Search (lou/ahr)17,266
, , ,
The Most Popular Python Frameworks and Libraries in 2025 (jet)17,265
, , , ,
Should the CSS “light-dark()” Function Support More Than Light and Dark Values? (sun/css)17,264
, ,
Google Chrome at 17—a History of Our Browser (add)17,263
, , , ,
Why Inclusive Products Are Green Products (tet)17,262
, , , , ,
Who Owns the Web Now? Centralization vs. Decentralization in the Age of AI (web)17,261
, ,
Introduction to Postgres Indexes (ada/fro)17,260
, ,
Best LLM Visibility Trackers for 2025: Track Your Brand in AI Search17,259
, , ,
Learning Web Development: JSON and Processing Files in Node.js (rau)17,258
, , , ,
Focus on the People That Make Things Happen (tem)17,257
, ,
Why Do Browsers Throttle JavaScript Timers? (nol)17,256
, ,
Learning Web Development: JavaScript Maps (rau)17,255
The Git Workflow That Eliminated Merge Conflicts Forever17,254
, ,
The “-path” of Least Resistance II (ami/fro)17,253
,
Vibe Coding Is Not the Same as AI-Assisted Engineering (add)17,252
, , ,
9 JavaScript Patterns I Wish I Used Earlier17,251
,
Prompting Is a Design Act: How to Brief, Guide, and Iterate With AI (sma)17,250
, ,
Learning Web Development: JavaScript Exceptions (rau)17,249
,
JavaScript’s Trademark Problem (rau)17,248
, , ,
Partytown: Optimize Third Party Scripts With Web Workers (jac/deb)17,247
, , , ,
Learning Web Development: Plain Objects in JavaScript (rau)17,246
,
10 CSS Features I’ve Found Really Useful17,245
Should You Preload Fonts for Performance? (erw)17,244
,
The History of Themeable User Interfaces (bra)17,243
, ,
You No Longer Need JavaScript (reb)17,242
, , ,
Why You Absolutely Need to Have Automated Dependency Management in Place (j9t)17,241
, , , , ,
Why Digital Accessibility Starts Within: Lessons From Crystal Preston-Watson (tri/hac)17,240
,
VS Code Tips—How to Restore Deleted Files Easily Using Local History (zor/css)17,239
, , , , ,
The Basics of Anchor Positioning (sha)17,238
, ,
Python: The Documentary (cul)17,237
, ,
Open Source Is One Person (jos)17,236
, ,
Do the Simplest Thing That Could Possibly Work17,235
, ,
Added Support for WebP Images (git)17,234
, ,
The “-path” of Least Resistance (ami/fro)17,233
,
Learning Web Development: Modules and Testing in JavaScript (rau)17,232
, ,
Designing for Discovery: Why AI and Accessibility Are Now UX Priorities (web)17,231
, , ,
Accessible Authentication (kar)17,230
, ,
Hack to the Future—Frontend (the)17,229
, , , , , , , , , , , , , ,
Visualizing Responsive Typography (mia/odd)17,228
, , ,
Optimizing PWAs for Different Display Modes (val/sma)17,227
, , , , ,
Opening a “details” Element From the URL (chr/fro)17,226
, ,
Nested Scroll Bars Are the One of the Biggest Accessibility Evils, Ever17,225
, , ,
Learning Web Development: Web Servers (rau)17,224
,
JavaScript Engines Explained—Comparing V8, SpiderMonkey, JavaScriptCore, and More (des)17,223
, , , ,
I Am an AI Hater (ant)17,222
How Developers Can Use Tracing in the UI to Add Backend-Style Observability17,221
, , ,
Being a Developer in the Vibe Coding Era17,220
, ,
AI Contrarians on the Problems With Vibe Coding (low/the)17,219
, , ,
10 Web Dev Trends for 2025 That Will Make or Break Your Career (web)17,218
, , , , , , , , ,
Understanding “Promise.any()”: When One Success Is Enough17,217
, ,
Enable “--strict” by Default (dan/typ)17,216
,
Accessibility Statements Are Not Legal Contracts—They’re Value Signals17,215
, , ,
Why Disabled Buttons Hurt UX (and How to Fix Them)17,214
, , ,
Where AI Is Failing Design Systems, and Where We Are Failing AI (ben)17,213
,
Very Early Playing With “random()” in CSS (chr/fro)17,212
, ,
Learning Web Development: Shells and Node.js (rau)17,211
,
How to Create an Accessible Table With Clickable Rows (ale)17,210
, , ,
From McCabe to Essential Complexity17,209
, , ,
An Illustrated Guide to OAuth17,208
, ,
A11y 101: 2.4.3 Focus Order (nat)17,207
, ,
10 Python Libraries That Supercharge Web Scraping17,206
, , ,
Handling 500M Clicks With a $4 VPS (asc)17,205
, ,
Use of Color (Level A) WCAG 1.4.1—Accessibility Design Tips17,204
, , ,
Why Does Big Tech Not Run Accessibility Bug Bounties?17,203
,
React 19 Broke Update Stability, Keeping Half of Developers Stuck17,202
, , , ,
Learning Web Development: Loops in JavaScript (rau)17,201
,
Boosting Laravel Boost17,200
, ,
Big O (sam)17,199
, ,
Unit Formatting With “Intl” in JavaScript (ray)17,198
, ,
Quick Dark Mode Toggles (chr/fro)17,197
, ,
No, Google Did Not Unilaterally Decide to Kill XSLT (mey)17,196
, , ,
Making Sense of CSS Length Units17,195
,
Google Games Numbers to Make AI Look Less Thirsty (tob/the)17,194
, ,
Experimental: Firefox Now Supports Progressive Web Apps on Windows17,193
, , , ,
Design Hacks From the Pre-CSS Era (den/hac)17,192
, , , ,
4 Reasons to Stop Using CSS Preprocessors (hel)17,191
,
3D Layered Text: The Basics (ami/css)17,190
, ,
What Makes Claude Code So Damn Good (and How to Recreate That Magic in Your Agent)!?17,189
, , ,
Interaction Design and Accessibility: UX Without Barriers (a11)17,188
, ,
You’re Loading Fonts Wrong (and It’s Crippling Your Performance) (jon)17,187
, , , , ,
What Are OKLCH Colors? (jak)17,186
,
The ARRM Framework: What It Is and How It Can Be Leveraged for Digital Inclusion (dbo+/kno)17,185
, , ,
Rolling the Dice With CSS “random()” (jon+/web)17,184
, , ,
New Bookmarklet: WCAG SCs Lookup Tool (llo)17,183
, ,
How We Migrated Our Rush.js Monorepo to Node Type Stripping (cal)17,182
, ,
How to Create a CRO Strategy That Turns Traffic Into Revenue (moz)17,181
, , , , ,
How to Audit Developer Docs: A Quick, Effective Method (hac)17,180
, ,
Why Is CSS “::first-letter” Not Working? (whi)17,179
,
What’s Next for JavaScript? (jsd)17,178
,
To Infinity… but Not Beyond (mey)17,177
Open Source Is Dying and We’re All to Blame17,176
, ,
Obsessing Over Smooth “radial-gradient()” Disc Edges (ana/fro)17,175
, ,
Michelle Frechette and Jonathan Desrosiers on the Story of .com and .org (mic+)17,174
, , , ,
Firefox 142 for Developers (mdn)17,173
, , ,
Constant Refactoring: Refactoring My Refactored Website (ope)17,172
,
“Best Practice” Is Just Your Opinion (cra)17,171
, , ,
AWS in 2025: The Stuff You Think You Know That’s Now Wrong (qui/las)17,170
, , , , ,
About “Best Practices” (yat)17,169
,
A Proposal for Inline LLM Instructions in HTML Based on llms.txt (ind/ver)17,168
,
Universal Design vs. Inclusive Design (ons/tpg)17,167
, , , ,
The Good, the Bad, and the Unreadable (mal)17,166
, , , ,
Testing Methods: Images of Text (dec)17,165
, , ,
Launching MDN’s New Front End (mdn)17,164
AGENTS.md17,163
, , ,
Web Design: What Is the Web Capable of That Is Hard to Express in Design Software? (chr/fro)17,162
, ,
The State of Python 2025 [Results] (mke/jet)17,161
,
The First Rule of ARIA (nat)17,160
, , ,
Resize Any DOM Element Using Two Lines of CSS (ami)17,159
, ,
Learning Web Development: Arrays in JavaScript (rau)17,158
,
Jack Dorsey’s Vibe Coding Tips (ang/ope)17,157
, ,
Icon Interpretation vs. Recognizability17,156
, , ,
How to Rank in Google’s AI Overviews: 7 Pro Tips (sem)17,155
, , , ,
GitHub for AI Engineers17,154
Accessibility Issues of CAPTCHA (oze)17,153
,
Learning Web Development: Strings and Methods in JavaScript (rau)17,152
, ,
10 Programming Mistakes That Will Ruin Your Life17,151
,
Vibe Coding and the Illusion of Progress17,150
, , ,
Is There an “AsyncLocalStorage” Penalty?17,149
, ,
Interviewer: “So You’re a Senior Dev? Then Optimize This Code”—Here’s the Perfect Answer17,148
, , ,
Email Is Easy (sam)17,147
, ,
The Future of Vue Is You (and You) (eva)17,146
, ,
Simple Is Not Always Easy17,145
,
My Top 4 [CSS Properties] (don)17,144
Learning Web Development: Numbers, Variables, Functions in JavaScript (rau)17,143
, ,
How AI Is Changing Search Behaviors17,142
, , ,
CSS-Only Solutions Are Not Accessible (cfe)17,141
, ,
Covering “hidden=until-found” (geo/css)17,140
,
React Mock Interview: Kent C. Dodds, Jack Herrington, and Roadside Coder Solve React Coding Question (ken+/shr)17,139
, , ,
How Much Should You Spend on Accessibility? (kar)17,138
, ,
Eliminating JavaScript Cold Starts on AWS Lambda (goo)17,137
, , ,
Dynamic Media/Container Queries Using “if()” (css)17,136
, , ,
Another Article About Centering in CSS (bel/pic)17,135
, ,
Animated Sites Are Unique, but Not Always Accessible (uxd)17,134
, , , ,
We Might Need Something Between Root and Relative CSS Units for “Base Elements” (zel/css)17,133
,
Tailwind CSS vs. Bootstrap: Which Framework Is Right for Your Next Project?17,132
, ,
Style Your Underlines (ada)17,131
, , ,
On Dashes, AI, and Screen Readers (ons/tpg)17,130
, , ,
How to Write Clean Code, Actually…17,129
, , ,
Has Efficiency Killed Beauty? A Designer’s Search for Meaning (uxd)17,128
, , ,
Can Components Conform to WCAG? (hdv)17,127
, , ,
5 Useful CSS Functions Using the New “@ function” Rule (una)17,126
, ,
State of CSS 2025 [Results] (sac/dev)17,125
,
Nobody’s Hiring You Because You Lack These 7 Developer Skills17,124
,
How a Blind Person Uses Social Media and AI to Drive Accessibility (equ)17,123
, , ,
Conformance vs. Compliance, Accessibility Standards Edition (hdv)17,122
, , , , , ,
A Gentle Introduction to Anchor Positioning (sar/web)17,121
, ,
Reflections on the React Community (lee)17,120
, , ,
jQuery 4.0.0 Release Candidate 1 (tim/jqu)17,119
,
Git Rebase—Explained Like You’re New to Git17,118
,
Getting Creative With Quotes (mal/css)17,117
,
Designing With AI, Not Around It: Practical Advanced Techniques for Product Design Use Cases (sma)17,116
, , , ,
CSS Questions (sun)17,115
, ,
Agent Experience (AX): The Concept of AI Agent Designing17,114
, , ,
A Nice Vanilla App [Architecture] Using Web Components and CSS Module Scripts (chr/fro)17,113
, ,
5 Heading Accessibility Issues to Avoid (pop)17,112
, ,
Speeding Up the JavaScript Ecosystem—SemVer (mar)17,111
, , , ,
Personalization vs. Customization: The Misunderstanding Between the Two (uxd)17,110
, , ,
7 Architecture Mistakes Even Senior Engineers Make (and How to Fix Them)17,109
, ,
Mozilla Under Fire for Firefox AI “Bloat” That Blows Up CPU and Drains Battery (neo)17,108
, , , ,
AI Automation Won’t Kill Developer Jobs17,107
, , ,
Your A/B Tests Are Lying to You—the Myth of Data Driven Design (web)17,106
, ,
This One CSS Property Fixed My Font Headaches Forever17,105
,
The Power of the “Intl” API: A Definitive Guide to Browser-Native Internationalization (fuq/sma)17,104
, , ,
Should We Never Use Non-Logical Properties? (j9t)17,103
,
I Built the Perfect Portfolio—it Got Me Zero Interviews (oso)17,102
,
Bulk Upgrade Deprecated Node.js Versions (ver)17,101
,
An Engineer’s Perspective on Hiring (jyn)17,100
, ,
Accessibility Pushback17,099
,
Using the Custom Highlight API (chr/fro)17,098
,
Think Twice Before Adopting the AI Label (uxd)17,097
, ,
There’s a New “stretch” Keyword in CSS? (mia/odd)17,096
,
The Best Line Length (gly)17,095
,
Node.js Supports Import Maps (ste)17,094
,
Let’s Stop Pretending That Managers and Executives Care About Productivity (bal)17,093
, , ,
Item Flow: Next Steps for Masonry (jen+/web)17,092
, ,
Infinite Pixels (mey)17,091
HTML Popovers Shown on Interest Should Be Accessible on Mobile Devices (uti)17,090
, , ,
How I Learned System Design17,089
,
Agentic AI: On Evaluations (ils)17,088
, ,
Your Website Doesn’t Rank #1 Because You’re Missing These 3 Pages17,087
When HTML Speaks Clearly17,086
, , ,
We Keep Reinventing CSS, but Styling Was Never the Problem (den)17,085
The Psychology of Coding: Why Developers Avoid Planning (and How AI Planning Tools Like Continue Fix It) (bek)17,084
, ,
Rebuilding Graphs for Accessibility: Inside Khan Academy’s Inclusive Design (kha)17,083
, , ,
HTML Is Dead, Long Live HTML (unc)17,082
, , , ,
Get the Number of “auto-fit”/“auto-fill” Columns in CSS (ana/fro)17,081
,
Baseline for CSS Properties Now in Chrome DevTools (mal/dev)17,080
, , , , , ,
Automating Design Systems: Tips and Resources for Getting Started (sma)17,079
, , , ,
What’s the European Accessibility Act Got to Do With My Design System? (ger/zer)17,078
, , , ,
What’s New in ViteLand: July 2025 Recap (man/voi)17,077
,
What We Learned From Creating PostCSS (sit+/evi)17,076
, , ,
What Building Products Looks Like in the Age of AI (uxd)17,075
, , , ,
The Hidden Cost of Context (mco/pla)17,074
, , , ,
Run Express.js on Cloudflare Workers (jro)17,073
, ,
July 2025 Baseline Monthly Digest (mal/dev)17,072
, , , , , , , , ,
Information Pollution, Poisoning, and Hygiene (uxd)17,071
, , ,
How to Use the Safari Developer Tools (deb)17,070
, , , ,
Thinking Deeply About Theming and Color Naming (zel/css)17,069
, , , , ,
The Problems With Modals, and How to Solve Them (noe)17,068
, , ,
Skeleton Screens Are Just Gray Lies We Tell Ourselves (web)17,067
, ,
Perplexity Is Using Stealth, Undeclared Crawlers to Evade Website No-Crawl Directives (clo)17,066
,
Our Fight With Oracle Is Getting Crazy… (den)17,065
, , , ,
New in PHP 8.5: Closures as Constant Expressions (chr)17,064
Infinite Marquee Animation Using Modern CSS (css/fro)17,063
, ,
How We Made “JSON.stringify” More Than Twice as Fast17,062
, , , , , ,
How to Collect and Clean Usability-Testing Data (uxm)17,061
, ,
How JavaScript Really Evolves: Inside TC39 With Daniel Ehrenberg (lit+/wee)17,060
, , ,
From Data to Decisions: UX Best Practices for Real-Time Performance Dashboard Design (uxm)17,059
, ,
Friends at Last: Tailwind and CSS… Whodathunkit?! (jar/van)17,058
,
Building Extensible Frontend Systems (cfe)17,057
, , ,
A11y 101: 2.4.1 Bypass Blocks (nat)17,056
, , ,
The Great Disappointment (j9t)17,055
,