Frontend Dogma

News and Tools for Frontend Developers

Featured on Frontend Dogma? 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, on Mastodon and Bluesky, or through other channels

Entry (Sources) and TopicsDate#
Dropping Support for Twitter/X (fro)14,822
, ,
Lessons Learned From My First Dive Into WebAssembly14,821
,
How to Track and Analyze Your AI Traffic (lou/ahr)14,820
, , , ,
First Look at the Modern “attr()” (sha)14,819
, , ,
How I Found My Own Path as an Introverted Engineering Manager14,818
,
Mastering Cross-Framework State Management in Micro-Frontends14,817
, , , , , ,
SMIL On? (geo/css)14,816
, ,
React 19’s New Hooks: With Practical Examples (let)14,815
, , ,
New in Chrome 135 (rac/dev)14,814
, , ,
Micro-Scrum (j9t)14,813
, , ,
How Does Chrome Prioritize Image Requests? (deb)14,812
, , , ,
Testing Tools for Accessibility Enhancement II14,811
, , ,
Poisoning Well (hey)14,810
, , ,
State of Drupal Presentation (dri)14,809
How AI Agents Are Quietly Transforming Frontend Development (the)14,808
, , ,
Resolving Invalid Custom Tailwind Classname ESLint Warning (ama)14,807
, ,
My Favorite Tools for Web Accessibility Testing (ale)14,806
, , ,
Mastering Typography in Design Systems With Semantic Tokens and Responsive Scaling (uxd)14,805
, , , ,
Markup Languages (j9t)14,804
, , , , , , , , , ,
Automated Visual Regression Testing With Playwright (css)14,803
, , , ,
Scrum Not Working? Try It as Is Before You Modify It (ste)14,802
, ,
Website Hijack Campaign Now Impacting 150,000 Sites (gad)14,801
Online Tracking Is Out of Control—Privacy Badger Can Help You Fight Back (eff)14,800
, ,
How to Conduct an Accessibility Audit: A Step-by-Step Guide14,799
, , , ,
Direct Access vs. Sequential Access: Why Direct Is Better14,798
,
Malware Found on npm Infecting Local Package With Reverse Shell (rev)14,797
, ,
What’s the Future of Platform Engineering? (ma1+/the)14,796
, , ,
What’s New in WebGPU (Chrome 135) (dev)14,795
, , , ,
A11y 101: 1.4.3 Contrast (Minimum) (nat)14,794
, , , , ,
Land Ahoy: Leaving the Sea of Nodes14,793
, , ,
React Query API Design: Lessons Learned (tkd)14,792
, , , , ,
You Should Know This Before Choosing Next.js (edu)14,791
, ,
“input type="number"” (kev)14,790
,
Artificial Intelligence Needs Community Intelligence (all)14,789
, ,
Expressing Japanese Grammar Through TypeScript Type System14,788
, ,
Is Vibe Coding Agile or Merely a Hype? (scr)14,787
, , ,
War Story: The Hardest Bug I Ever Debugged (jak)14,786
, , , , ,
UX or PX? Why Naming Matters (uxd)14,785
,
Mission jQuery Zero: How FreeAgent Removed jQuery From Our Application (fre)14,784
, , ,
Layered Text Headers (chr/fro)14,783
, , ,
“aria-label” Is a Letdown (thi/wag)14,782
, , ,
Support Logical Shorthands in CSS (geo/css)14,781
, ,
Directives: A Core Feature of the Angular Toolkit14,780
,
AI Is the Future of Accessibility (kar)14,779
, ,
Is Vite Faster Than Turbopack?14,778
, , , , , ,
UI Algorithms: A Tiny Undo Stack (jul)14,777
, ,
How Navigation Should Work for Keyboard Users (tem)14,776
, , ,
How to Create Quality Content (Follow Our 5-Level Framework) (ahr)14,775
, , , ,
Cracking the Code of Vibe Coding (uxd)14,774
, , , , , ,
This Is the Optimal Team Size That Improves Performance by 400%14,773
,
Revisiting CSS “border-image” (mal/css)14,772
, , ,
How WebAssembly Components Can Replace JavaScript SDKs (sac)14,771
, ,
SSR Deep Dive for React Developers14,770
, , ,
Web Accessibility Requirements in the EU (mar/uxd)14,769
, , , , ,
Stop Chasing New JavaScript Frameworks: Build With Fundamentals Instead14,768
, , , , , , ,
My Thoughts on Asynchronous Accessibility APIs (jcs)14,767
, ,
The “contenteditable” “plaintext-only” Attribute Value Combination Is Now Baseline Newly Available (tom/dev)14,766
, , , ,
Where Frontend Dogma Gets Its News From (j9t)14,765
, , ,
Quick Reminder That “:is()” and “:where()” Are Basically the Same With One Key Difference (geo/css)14,764
, ,
Generate Growing Images Using Gemini API14,763
, ,
Minding the Gaps: A New Way to Draw Separators in CSS (pat)14,762
,
Understanding the European Accessibility Act (EAA) (tin/tet)14,761
, ,
Node.js TSC Votes to Stop Distributing Corepack (sar/soc)14,760
,
Introducing Motion for Vue (cit)14,759
, , ,
Style Legend (ada)14,758
,
GitHub Suffers a Cascading Supply Chain Attack Compromising CI/CD Secrets (inf)14,757
, ,
The Bare Minimum You Need to Enable View Transitions on Your Website (ami)14,756
, , ,
Next.js vs. TanStack14,755
,
Polite is Often Better Than Being Alerted (oze)14,754
, ,
How to Think About Baseline and Polyfills (mal/dev)14,753
, , , ,
Downtime vs. Slowtime: Which Costs You More? (tam/spe)14,752
, ,
A Deep Dive Into the Inline Background Overlap Problem (ana/fro)14,751
, , , ,
Reducing CSS Complexity With the “:is()” Pseudo-Class (cfe)14,750
, ,
Self Gap (sha)14,749
, ,
Past and Present Futures of User Interface Design14,748
, , ,
A11y 101: 1.4.2 Audio Control (nat)14,747
, , ,
Breadcrumbs Are Dead in Web Design (web)14,746
,
Bulk Actions: 3 Design Guidelines14,745
, , ,
Is React Accessible? That’s the Wrong Question14,744
, , , ,
Explaining UX Design Through the Lens of Construction (uxm)14,743
, , ,
Web Components vs. Framework Components: What’s the Difference? (sma)14,742
, , , ,
Leveraging 3 Types of User Feedback to Create Better User Experiences (uxm)14,741
,
Please Stop Externalizing Your Costs Directly Into My Face (sir)14,740
, , ,
Styling Counters in CSS (mon/css)14,739
, ,
But How to Get to That European Cloud? (ber)14,738
, ,
Let’s Knock Down Social Media’s Walled Gardens (tim)14,737
,
Web Scraping With Cheerio in 2025 (api)14,736
, ,
Maintaining Screenshot Quality and Color Profile in Figma (max)14,735
, , , ,
Accessibility Requires Clear Responsibilities or It Will Fail (cer)14,734
, ,
“Classless.css” Framework14,733
,
Coding vs. Vibe Coding14,732
, , , ,
Why the Latest JavaScript Frameworks Are a Waste of Time14,731
, , ,
The Hidden Burden of Architectural Decision Fatigue (and How to Fix It)14,730
,
System Design Roadmap for Beginners14,729
,
Designers, Your Excuse Is Gone. Stunning, Animated, and Accessible. Yes, You Can! (bov)14,728
,
Popping Preconceived Popover Ponderings (sco)14,727
, ,
How to Get Deep Traces in Your Node.js Backend With OTel and Deno (den)14,726
, , , ,
State of Vue.js Report 202514,725
, , ,
ADA Compliance vs. WCAG Conformance14,724
, , , , ,
Browse No More (sta)14,723
, , , ,
How to Prevent WordPress SQL Injection Attacks (sma)14,722
, , , ,
How GitHub Engineers Learn New Codebases (bri/git)14,721
, ,
“Intl.DurationFormat”: Format Time Durations With Locale Support (tre)14,720
,
How WebAssembly Crushes Technical Debt14,719
, ,
Chilled Out Text Underlines (chr/fro)14,718
, ,
“:in-range” Pseudo-Class (kev)14,717
, ,
Nobody Should Be a “Content Creator” (cod)14,716
, , ,
Create a Fun Quick Text Flip Effect (kev)14,715
, ,
A Perplexing JavaScript Parsing Puzzle (hil)14,714
, ,
A 10× Faster TypeScript14,713
,
Retrieval-Augmented Generation With Node.js, Podman AI Lab, and React14,712
, ,
View Transitions Applied: Smoothly Animating a “border-radius” With a View Transition (bra)14,711
, , ,
What’s Missing With AI-Generated Code? Refactoring (ste/the)14,710
, , , , , , ,
On JavaScript Closures (With Examples of Interview Questions) (mar)14,709
, , , , ,
Automated Tools Can Ensure Full Accessibility Compliance14,708
, , ,
Content Churn in Google Doubled Over Five Years (moz)14,707
, , , ,
DOJ Pushes for Google to Sell Chrome to Break Search Monopoly14,706
, , , ,
Future of CSS: “select” Styling Without the Hacks14,705
, , ,
CSS System Colors (ant)14,704
,
Ten Years Ago Today I Coined the Shorthand “js;dr” for “JavaScript Required; Didn’t Read” (tan)14,703
, ,
Design Systems Report 2025 (zer)14,702
, , , ,
A11y 101: 1.4.1 Use of Color (nat)14,701
, , ,
Lazarus Strikes npm Again With New Wave of Malicious Packages (soc)14,700
, ,
The Hype and Risks of Vibe Coding (uxd)14,699
, , , ,
Relative Colors (sha)14,698
, , ,
Here’s How Chrome Could Lose the Browser War14,697
, , , ,
How to Handle “Urgent Request” in Scrum14,696
, , , ,
Is Cursor Better Than VS Code With Copilot? Absolutely and It’s Not Close14,695
, , , , , , ,
WAI a Day (yat)14,694
, ,
Devs: Draw Your Line (rem)14,693
, ,
Great Software Design Looks Underwhelming14,692
,
Prompt Engineering for Web Development14,691
,
What Is the OWASP Top 10 and How Can Your Team Benchmark Security? (jet)14,690
, , , ,
Page Speed: Avoid Large Base64 Data URLs in HTML and CSS (deb)14,689
, , , ,
Implementing “aria-describedby” for Web Accessibility (flo/a11)14,688
, , , ,
DeepSeek and HTML (j9t)14,687
, , ,
Creating Animated Accordions With the “details” Element and Modern CSS (ste/bui)14,686
, , ,
“aria-label” Requires a Valid Role (cfe)14,685
,
Updates on CVE for End-of-Life Versions (raf/nod)14,684
,
Why Do We Have a “Cache-Control” Request Header? (css)14,683
, ,
Usability Testing With Disabled Users Is a Good Investment (nic)14,682
, ,
Top 10 Common Accessibility Issues in Websites14,681
Standards for ANSI Escape Codes (b0r)14,680
,
Introducing “command” and “commandfor” (kei/dev)14,679
, ,
10 Hidden Gems in Angular That You Should Use14,678
,
Node Just Added TypeScript Support. What Does That Mean for Deno? (tin/den)14,677
, ,
JavaScript Best Practice: Use “return await”14,676
, ,
How to Fix Largest Contentful Paint Issues With Subpart Analysis (sma)14,675
, , ,
The Angular Language Server: Understanding IDE Integration Approaches (nik/jet)14,674
, , , , , ,
From Designing Things to Designing Change (uxd)14,673
, ,
Defending Tailwind (don)14,672
, , , , ,
How to Protect Your Web Applications From XSS (tor/w3c)14,671
, , ,
Maybe Don’t Use Custom Properties in Shorthand Properties (mat)14,670
, ,
On Ethics in Web Development (With a Brief Overview of Ethical Theories) (j9t)14,669
,
Cool Native HTML Elements You Should Already Be Using (hrr)14,668
, , ,
Making the Fediverse More Accessible With Claude 3.7 Sonnet (jud/the)14,667
, , ,
Delaying the Shipping of CSS “@ function” From Chrome 136 to 139 (arg/dev)14,666
, , ,
Accessible Solutions Benefit Everyone: Here’s How14,665
, , ,
Grouping Selection List Items Together With CSS Grid (css)14,664
, , , , ,
5 Questions to Ask Your Manager to 10× Your Impact at Work (cod)14,663
, , , ,
Our Favorite DevTools Features of 2025 (deb)14,662
, , , , ,
How to Troubleshoot Node.js Images in OpenShift14,661
, , , ,
From “You Will Fail” to 15,000 GitHub Stars: The Story of Wasp, a “Laravel for JS” Full-Stack Framework14,660
,
Is Biome Ready to Replace Prettier and ESLint?14,659
, , , , ,
Automatically Generate Changelogs With Git (dan)14,658
, ,
An Aura of Accessibility (tpg)14,657
, , ,
Super Crispy SVG Icons (ale)14,656
, , ,
How ECMAScript Engines Optimize Your Variables (boa)14,655
, ,
Don’t Use Fake Bold or Italic in Social Media (aar)14,654
, , , ,
Firefox 136 Launches With Vertical Tabs, but One Requested Feature Is Still Missing14,653
, ,
View Transitions Applied: Dealing With the Snapshot Containing Block (bra)14,652
,
Myth: Technical Debt Is the Developers Problem14,651
, , , ,
SEO Is the Worst It’s Ever Been (and It’s Still Your Best Marketing Channel) (ahr)14,650
, , , ,
Using and Styling the “details” Element (geo/css)14,649
, ,
Unlock Exciting Use Cases With the Document Picture-in-Picture API (jad/dev)14,648
,
Underrated Angular Features (arm/dan)14,647
Truth, Lies, and Progress Bars (tyl/clo)14,646
,
The Professional Standing of Frontend Developers (mar)14,645
, , , , , , , , ,
Tailwind UI Is Now Tailwind Plus (ada/tai)14,644
Ethical Foundations in Modern Software Development (fra)14,643
, , , ,
Building Websites With LLMS (jim)14,642
, ,
Agentic AI Is the New Web App, and Your AI Strategy Must Evolve (the)14,641
,
The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks (sma)14,640
, , ,
One Kilobyte to Copilot: My Journey Through Programming History14,639
, ,
10 Best AI Code Review Tools and How They Work14,638
, , , ,
License to Kill: Coding With Cursor AI Agents14,637
, ,
UX Analytics: How to Measure Your User Experience the Right Way (uxm)14,636
, , , , ,
AI in the Workplace: A Productivity Boost, Not a Replacement14,635
, ,
7 Best Practices of File Upload With JavaScript and React14,634
, , ,
JavaScript (htt)14,633
, , , , , , , , , ,
Secure UX: Building Cybersecurity and Privacy Into the UX Lifecycle (uxm)14,632
, ,
Who Is Free Software For? (tan)14,631
,
Other Causes of Signed Exchanges Errors (paw)14,630
, , , , ,
Functions in CSS?! (mon/css)14,629
,
Everything I Was Lied to About Node.js Came True With Elixir14,628
, , ,
CSS Meets Voxel Art: Building a Rendering Engine With Stacked Grids (cod)14,627
, ,
A11y 101: 1.3.5 Identify Input Purpose (nat)14,626
, , ,
“I’m Not a Designer But…” (ada)14,625
, , ,
Be Wary of Accessibility Guarantees From Anyone (aar)14,624
,
AX, DX, UX (jim)14,623
, , ,
Values (yat)14,622
, , ,
Update on QUIC (jas/nod)14,621
, , , ,
My Sales Pitch for TypeScript (rau)14,620
Image Comparison Slider in 6 Lines of JavaScript14,619
,
I Quit My FAANG Job Because It’ll Be Automated by the End of 202514,618
,
Leverage on Redux to Execute Your Tests 100× Times Faster14,617
, , , ,
Mozilla Updates Firefox Terms Again After Backlash Over Broad Data License Language (the)14,616
, , ,
Learn Zod So You Can Trust Your Data and Your Types (did)14,615
, , ,
What’s New in Svelte: March 2025 (dre/sve)14,614
,
Building APIs With Next.js (nex)14,613
,
Testing Tools for Accessibility Enhancement14,612
, , ,
When Config Becomes the Code: The Trap of Over-Abstracting Logic (max)14,611
, ,
There’s No Such Thing as “Menubar Navigation” (tem)14,610
, ,
Custom Property Fallbacks (mat/fro)14,609
,
Views on Views (hdv)14,608
, ,
New to the Web Platform in February (rac/dev)14,607
, , , , , , , ,
JavaScript Fatigue Strikes Back (all)14,606
, , , ,
Chrome on Android Edge-to-Edge Migration Guide (bra/dev)14,605
, , , ,
When to Use Lists for Better Accessibility14,604
, ,
How to Reduce Web Application Bundle Size? (ant)14,603
, , , ,
What Is TypeScript? An Overview for JavaScript Programmers (rau)14,602
, , ,
Using AI in the Browser for Typo Rewriting (ray)14,601
, , , , ,
New to Web Development? Run Your Own Website (j9t)14,600
,
Is the Button Focusable? (mat)14,599
, ,
Advanced Network Analysis With Chrome DevTools (jec/dev)14,598
, , , , , , ,
The Fallacy of Balance: Challenging the Notion of Security and Accessibility as Opposing Objectives (deq)14,597
, ,
The Six Cs of Accessibility14,596
What It Really Takes: Building an Accessibility-First Corporate Culture (deq)14,595
, , ,
Firefox: Mozilla Confirms Support for Classic Extensions and Manifest V3 Add-Ons14,594
, ,
8 Best Things About Working in UX14,593
, ,
Google’s Principles for Measuring Developer Productivity14,592
, , , ,
Next.js 15.2 (nex)14,591
,
Examples of Why the Web Needs Anchored Popovers (chr/fro)14,590
, ,
The Existential Challenge of Design System Team Morale (pjo)14,589
, ,
Open-Source Is Where Dreams Go to Die (tre)14,588
, , ,
5 Tips to Do Less and Better Work With AI (pro)14,587
, , ,
Turbocharging V8 With Mutable Heap Numbers14,586
, , , ,
Accessibility Maturity Models (deq)14,585
,
Better Anchor Positioning With “position-area” (jam/odd)14,584
,
Intent to Experiment for Longer (kiz)14,583
, , , , ,
Justified Text, JS “moveBefore” Method, Performance Optimization (zor/css)14,582
, , , , ,
Why I Like Designing in the Browser (tyl/clo)14,581
, ,
How to Use “attr()” in CSS for Columns, Colors, and Font-Size (chr/fro)14,580
, , , , ,
CSS Snapshot 2024 (tab+/w3c)14,579
,
Browsers: A Snapshot (bry)14,578
, , , , , , ,
5 Questions for Jeremy Keith (ada+/fro)14,577
, , , ,
2024 Web Almanac: Uncovering Global Accessibility Insights With axe (mgi/deq)14,576
, , , , , ,
@ 11ty/image-color (zac)14,575
, , ,
11 Practical Tips to Make Code Reviews Easier as a Developer14,574
, , , , , , ,
Web Scraping With Playwright14,573
, , , ,