Frontend Dogma

News and Tools for Frontend Developers

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

Entry (Sources) and TopicsDate#
Leverage on Redux to Execute Your Tests 100× Times Faster (drp)14000
, , , ,
Using AI in the Browser for Typo Rewriting (ray)13999
, , , , ,
What Is TypeScript? An Overview for JavaScript Programmers (rau)13998
, , ,
Google’s Principles for Measuring Developer Productivity (abi)13997
, , , ,
Firefox: Mozilla Confirms Support for Classic Extensions and Manifest V3 Add-Ons (mar/gha)13996
, ,
5 Tips to Do Less and Better Work With AI (pro)13995
, , ,
Open-Source Is Where Dreams Go to Die (tre)13994
, , ,
Turbocharging V8 With Mutable Heap Numbers (vic/v8j)13993
, , , ,
@ 11ty/image-color (zac)13992
, , ,
How to Use “attr()” in CSS for Columns, Colors, and Font-Size (chr/fro)13991
, , , , ,
Why I Like Designing in the Browser (tyl/clo)13990
, ,
Browsers: A Snapshot (bry)13989
, , , , , , ,
CSS Snapshot 2024 (tab+/w3c)13988
,
5 Questions for Jeremy Keith (ada+/fro)13987
, , , ,
The Figma Dilemma: Too Many Cooks, Too Few Decisions (web)13986
, ,
Top 10 Front-End Dev Trends for 2025 (bhu)13985
, , , , , , , , , ,
Subverting Control With Weak References (jlo)13984
,
Solved by Style Observer: “Element.matchContainer()” (bra/bra)13983
,
1.4.10: Adversarial Conformance (aar)13982
, ,
It Is No Longer Safe to Move Our Governments and Societies to U.S. Clouds (ber)13981
, , ,
Clean Code in JavaScript: A Comprehensive Guide13980
, , , , , , , , ,
Debugging Mutable Subresources: A Detective Story (paw)13979
, ,
Introduction to Frontend Development (the)13978
, , , , , , , ,
What I Wish I Knew as a Junior Developer (cod)13977
,
TC39 Advances 3 Proposals to Stage 4: RegExp Escaping, Float16Array, and Redeclarable Global Eval Vars (sar/soc)13976
, , , , , ,
3 Best Practices for Multi-Language Support in Frontend Development (ele/des)13975
, , , ,
Documenting Web Components With Storybook13974
, , , ,
Breakpoint-Free CSS Grid Layouts (kev)13973
, , , ,
20 Years of AJAX: The Technology That Revolutionized Web Development (lav)13972
, , ,
Demystifying MIME Types: Basics, Use Cases, Best Practices (mar)13971
, , , , , , , ,
These (Still) Aren’t the SCs You’re Looking For (pat)13970
, , ,
Navigating the Web Platform (pat)13969
, , , , ,
CDEs Aren’t Just for Developers: How QA, Tech Writers, and Designers Benefit Too (jet)13968
, ,
AI Killed the Tech Interview. Now What?13967
, , , ,
How OWASP Helps You Secure Your Full-Stack Web Applications (eri/sma)13966
, , , , , , ,
Decoding CSS Selectors: “:has(:not)” vs. “:not(:has)” (pol)13965
, ,
CSS “@ function” + CSS “if()” = 🤯 (bra/bra)13964
, , ,
Meeting European Accessibility Act (EAA) Standards: A Developer’s Checklist (sit)13963
, , ,
A Color Input That Also Shows the Value (chr/fro)13962
, ,
Static vs. Dynamic Content: Which Should Developers Favor? (the)13961
, , , , ,
React Libraries for 2025 (rwi)13960
, , ,
Implementing a Dissolve Effect With Shaders and Particles in Three.js (0xj/cod)13959
,
The Dark Side of UX: Lessons From OnlyFans’ Addictive Design (web)13958
, , , , ,
10 Common Web Development Mistakes to Avoid Right Now (sit)13957
, , , , , , , ,
The Difference Between Zoom and Scale (css)13956
, , ,
Interaction Design Demands More Than Visual Creativity (fil/uxd)13955
, , ,
It’s Right There in the Back of the Book (xir)13954
, ,
Top Lawyers in 16 States Push Back on Anti-DEIA Executive Orders (lfl)13953
, ,
Rethinking Find-in-Page Accessibility: Making Hidden Text Work for Everyone (sch)13952
, , ,
Getting the Relationship Between UX Design and Business Strategy Right (sil/uxm)13951
, , , , , ,
10 Awesome CSS Text Effects for Your Next Project (pau)13950
, ,
The “attr()” Function in CSS Now Supports Types (ami)13949
, , ,
How to Move the First Element to the End in JavaScript (jos)13948
,
How to Use Chrome’s Developer Tools (mat/deb)13947
, , , ,
The “:not” Selector in Use (cit)13946
,
Generic LLM Chatbot Attestation (aar)13945
,
Top 5 Uses of WebAssembly for Web Developers (the)13944
, , , ,
The New “withAttributes” Method for Relationships and Scopes in Laravel (ami)13943
,
Advice to New Engineering Managers (tre)13942
, ,
5 Ways to Increase the Quality of Your Design System Documentation (lew)13941
, ,
10 Secret Git Commands That Will Save You 5+ Hours Every Week13940
,
Create Contextual Console Loggers (pat/dev)13939
, , , , , , , ,
Sunsetting “Create React App” (mat+/rea)13938
Comcast: A New Standard for Internet Energy Efficiency (jas/ene)13937
, ,
Rainbow Selection in CSS (chr/fro)13936
, ,
Does WebPerf Matter to Your SEO Ranking? (tod/per)13935
, , ,
We Were Wrong About GPUs (mrk/fly)13934
, , , , ,
Which HTML Element Are You?13933
Launching Interop 2025 (moz)13932
, , ,
Interop 2025 (pat)13931
, , ,
Don’t Start Testing Accessibility With a Screen Reader (eri)13930
, , ,
When an Engineering Manager Marries a Product Manager: Planning, Roadmaps, and Bug Fixes (dar/cod)13929
, , , ,
Interop 2025: Another Year of Web Platform Improvements (rac/dev)13928
, , ,
Reimagining Fluid Typography (mia/odd)13927
, , ,
Better Text Rendering in Chromium-Based Browsers on Windows (kur+/dev)13926
, , , , , ,
Faux Containers in CSS Grids (tyl/clo)13925
, ,
Time to First Byte: Beyond Server Response Time (mat/sma)13924
, , ,
Why Emojis Are the Ultimate User Interface (web)13923
, ,
Tech Continues to Be Political (mia)13922
, , , , ,
Style Observer: JS to Observe CSS Property Changes, for Reals (lea)13921
, , ,
State of React 2024 [Results] (sac+/dev)13920
,
Testing 10 JavaScript Frameworks on Their HTML Defaults (j9t)13919
, , , , ,
State of AI 2025 (sac/dev)13918
, , ,
12 Web Accessibility Tips to Make Your Site More User-Friendly (edi)13917
, , , , , , , , ,
How to Refactor Code With GitHub Copilot (git)13916
, , , ,
How to Start a React Project (rwi)13915
,
The Mystery of Mutable Subresources in Signed Exchanges (paw)13914
, , , , , , ,
Web Components Toolkit (stu)13913
,
Don’t Put Your Team in a Bubble (reb/scr)13912
, , ,
“Create React App” Officially Deprecated Amid React 19 Compatibility Issues (sar/soc)13911
, , ,
Organizing Design System Component Patterns With CSS Cascade Layers (mrt/css)13910
, , ,
Optimizing Images for Web Performance (tod/fro)13909
, , , , , , , ,
How I Created a Popular WordPress Theme and Coined the Term “Hero Section” (Without Realizing It) (sma)13908
, , ,
Exploring Routes Rendering Modes in Angular (mai)13907
,
Control Scope Creep Before It Controls You (ana)13906
,
10 Must Read Microservices Architecture Books for Experienced Developers13905
, ,
Tightening Every Bolt (bag)13904
, , , ,
TypeScript: The “satisfies” Operator (rau)13903
,
Preload Fonts on Your Website for Better Core Web Vitals (deb)13902
, , ,
Taking RWD to the Extreme (sma)13901
, ,
Beware the Faux Bold (and How to Fix It) (ric)13900
, ,
Three Approaches to the “&” (Ampersand) Selector in CSS (rps/fro)13899
,
The Popover API Is Now Baseline Newly Available (dev)13898
, , , ,
View Transitions Applied: More Performant “::view-transition-group(*)” Animations (bra/bra)13897
, , ,
Beyond DX: Developers Must Now Learn Agent Experience (AX) (ric/the)13896
, , ,
Here Is Why Microsoft’s “Uninstall Edge” Page Offers No Instructions to Remove the Browser (mar/gha)13895
, ,
6 Questions for Eric Eggert (yat+/fro)13894
, , ,
Definition Layers Within Semantic Tokens (ikn)13893
How to Bring Structure and Clarity to Design System Components (vil/but)13892
, , ,
The Jetbrains Platform Gets a New Community Space (kle/jet)13891
,
My Experience as a Designer Working at Bit13890
,
GitHub Copilot Brings Mockups to Life by Generating Code From Images (web)13889
, , , ,
What I Learned From Migrating a Vue Project From Vuex to Pinia (mic/pic)13888
, , ,
Which Rich Text Editor Framework Should You Choose in 2025? (aur+/liv)13887
, ,
Read-Only Accessibility in TypeScript (rau)13886
63% of Websites Receive AI Traffic (New Study of 3,000 Sites) (lou/ahr)13885
, ,
Move on to ESM-Only (ant)13884
, , , , ,
HTML and CSS for a One-Time Password Input (chr/fro)13883
, , ,
DORA, SPACE, DevEx, DX Core 4 (j9t)13882
, , ,
How to Declare Your Page’s Language (pop)13881
, ,
Optimizing the Critical Rendering Path (mat/deb)13880
,
How to Build a Landing Page in 6 Easy Steps (luk/sem)13879
,
Activism Matters for Tech Development and #FOSS Paths (inf)13878
, , ,
The State of PHP 2024 [Results] (jet)13877
, , , , , , , , , ,
Some Terminal Frustrations (b0r)13876
,
On Generative AI Security (sch)13875
, , ,
The End of Programming as We Know It (tim/ore)13874
, , , , ,
Understanding the Trade-Offs of Using Tailwind CSS (mon/mea)13873
, ,
Reasons Not to Refactor (fri/tho)13872
, , ,
Which VoiceOver? (aar)13871
, , , ,
How to Favicon in 2025: Three Files That Fit Most Needs (sit/evi)13870
, ,
Introducing Fusion: Write PHP Inside Vue and React Components (eri/lar)13869
, , , , ,
Angular: The Documentary (hon)13868
, , ,
Alt Text Accessibility: Balancing AI and Human Oversight (cda+/equ)13867
, , , , , ,
A Content List With Bulk Actions Using Ancient HTML and Modern CSS (tyl/clo)13866
, , ,
Tutorial: Publishing ESM-Based npm Packages With TypeScript (rau)13865
, , ,
Live CSS Colors: What You Can Safely Use (jar/van)13864
, ,
Oracle Justified Its JavaScript Trademark With Node.js—Now It Wants That Ignored (tin/den)13863
, , , ,
10 Digital Accessibility Mistakes to Avoid (gov)13862
, , , , , , , , , , , , ,
Using Padding to Space an Input and Label (dar)13861
, , , ,
How I Learned to Code With My Voice (whi)13860
, ,
Integrations: From Simple Data Transfer to Modern Composable Architectures (edo/sma)13859
, , , , , , ,
How to Gif (2025 Edition) (oll)13858
, , , , , , ,
Build a Link Blog (xua)13857
,
Firefox 135 Launches With New Translation Languages, New Tab Layout, Security, and Privacy Improvements (mar/gha)13856
, ,
Notes on the “Code Editors With AI” Landscape (chr/fro)13855
, , , , , , ,
Fast and Smooth Third-Party Web Fonts (sco)13854
, , , ,
Developer Philosophy (qnt)13853
, , ,
How to Perform Comprehensive ADA Testing (a11)13852
, , , , , ,
Typecasting and Viewport Transitions in CSS With “tan(atan2())” (mon/css)13851
, , , ,
Generating Image Descriptions and Alt-Text With AI (dri)13850
, , , ,
Extending the Cursor (kyl)13849
, , ,
There Are a Lot of Ways to Break Up Long Tasks in JavaScript (mac)13848
, ,
Compiling CSS With Vite and Lightning CSS (mrt/css)13847
, , ,
How to Manage Old Content on a News Website (moz)13846
, , , , , ,
Introducing the JSR Open Governance Board (tin+/den)13845
, , , ,
Smarter, Faster, Human: The Future of Design Systems With AI (vis/uxm)13844
, ,
Change “font-weight” Based on the User’s Screen DPI13843
, ,
The Paradox of UX Personalization (def/uxd)13842
, ,
Before You Buy an Accessibility Audit (cer)13841
, , , ,
Combining “currentColor” With Relative Color Syntax (oll)13840
,
Demo: Running TypeScript Directly in Node.js (rau)13839
,
OKLCH, Explained for Designers (des)13838
, ,
How to Write a Good Design Document (gra)13837
, , ,
We Can’t Keep Simply Repeating This Mess (inf)13836
,
CSS “scrollbar-color” and “scrollbar-gutter” Are Baseline Newly Available (bra/dev)13835
, , , ,
React Is Just “document.createElement()” With Good Marketing, and I Can Prove It13834
, ,
How to Set Up an Accessible Page Structure and Navigation (pop)13833
, , ,
Effective Steps for Conducting a Thorough ADA Audit (tae/a11)13832
, , , , ,
The Myth of “Fully Accessible” (sor/uxd)13831
,
Understanding CORS Errors in Signed Exchanges (paw)13830
, , ,
Foundations: Grouping Forms With “<fieldset>” and “<legend>” (tet)13829
, , ,
Why Next.js Leads the Future of Web Development in 2025 (fro)13828
Microsoft Improves Text Contrast for All Windows Chromium Browsers (ser/ble)13827
, , , , ,
The Politics of Accessibility (bri)13826
, ,
AI Transparency Framework (jos/uxd)13825
, ,
Our Coding Obsession Is Pushing Kids Out of Tech13824
On Diversity (aar)13823
How I Use AI: Meet My Promptly Hired Model Intern (mit)13822
, , ,
The European Accessibility Act for Websites and Apps (mar)13821
, , ,
Is npm Enough? Why Startups Are Coming After This JavaScript Package Registry (kat/red)13820
, , , , ,
Vite With TypeScript (rwi)13819
, , , ,
CSS Nesting: Use With Caution (bel/pic)13818
,
The Internet Is Unusable (ste/uxd)13817
, , , ,
U.S. Blocks Open Source “Help” From These Countries (sjv/the)13816
Google Says “Links Matter Less”—We Looked at 1,000,000 SERPs to See if It’s True (pat/ahr)13815
, , ,
XHTML in Modern Web Development (mar)13814
, ,
On Building AI Understanding and Automation Muscle (With 18 Random Problems Solved With AI) (j9t)13813
, ,
Transitioning Top-Layer Entries and the Display Property in CSS (uti/sma)13812
, , , ,
Computing With Tuples in TypeScript (rau)13811
,
How to Determine if You Are Ready for a Leadership Position? (tec/cod)13810
, ,
How Data Structures Organize the Chaos of Modern Apps (yan/cod)13809
, , ,
How to Set WebGL Shader Colors With CSS and JavaScript (nma)13808
, , ,
A Modern Node.js and TypeScript Setup for 2025 (sse/woo)13807
, ,
Keep Your Node.js Apps Secure With “npx is-my-node-vulnerable” (tre)13806
, , ,
The 2025 Frontend Dogma Survey (fro)13805
,
Here’s Why Your Anchor Positioning Isn’t Working (jam/odd)13804
,
New to the Web Platform in January (rac/dev)13803
, , , , , , , ,
Making Good on the Promise of Open Source AI (the)13802
,
Introducing AX: Why Agent Experience Matters (bii)13801
, ,
Intro to Wasm in Deno (and+/den)13800
, ,
Differences Between ESLint and TypeScript (jos/esl)13799
, , , , ,
Page Bloat Update: How Does Ever-Increasing Page Size Affect Your Business and Your Users? (tam/spe)13798
, , , , , ,
Dynamic Focus Zoom Effect with CSS “@ property” (leo)13797
,
The Era of Agent Experience (AX) (jav/net)13796
Svelte 5 and the Future of Frameworks: A Chat With Rich Harris (ric+/sma)13795
, , ,
The DOJ Provides Practical Guidance on How to Implement a Digital Accessibility Program (sey)13794
, , ,
Considerations for Making a Tree View Component Accessible (eri/git)13793
, , , ,
What Text Area Popovers Taught Me About Browser APIs (bla)13792
, , ,
Why Teams Are Ditching DynamoDB (car+/the)13791
, ,
The European Accessibility Act 2025: An Internet for All13790
, ,
Did the U.S. Government Cancel Accessibility? (mic/a11)13789
, ,
Figma Branches Best Practices (hp)13788
, , , , ,
Best Practices for EU Web Accessibility Compliance Monitoring (tae/a11)13787
, , , ,
Why Should You Read Tech Books in the 2025 AI Age (bur)13786
,
The Mistakes of CSS (mon/css)13785
,
Revisiting CSS Multi-Column Layout (mal/css)13784
,
Introducing Mentoss: The Fetch Mocker (nza)13783
, ,
Pure CSS Mixin for Displaying Values of Custom Properties (kiz)13782
, ,
My Failed Attempt to Shrink All npm Packages by 5% (eva)13781
, ,
The Browser Back Button: Hero, Villain, or Outdated Relic? (web)13780
, ,
Full-Bleed Layout With Modern CSS (css/fro)13779
,
How Does a Compiler Work? (cod)13778
,
Focus Styles and Programmatic Focus (oll)13777
, ,
How Long Is a Second in JavaScript? (iag/tim)13776
What Is Cloud Computing? (sit)13775
, , ,
AI-Generated Art Is Postmodern Art (def/uxd)13774
,
Only One “<details>” Open at a Time (osv)13773
AI Slop, Suspicion, and Writing Back (ben)13772
The Modern Way to Write JavaScript Servers (mar)13771
, ,
React.js vs. Next.js (bhu)13770
, , ,
Tailwind CSS Gets a “Ground-Up Rewrite” for Version 4.0 (low+/the)13769
Your Clean Code Might Be Someone Else’s Technical Debt (drp)13768
, ,
It’s Time for Design to Think Less and Feel More (dar/cre)13767
,
WCAG 3 a Change of Context (ste)13766
, ,
Section 508 Compliance: What You Need to Know (kar)13765
, , ,
TypeScript 5.8 Ships “--erasableSyntaxOnly” to Disable Enums (mat)13764
The 4 Top IDEs for Developers in 2025 (ele/des)13763
, , , , , ,
How to Build a “Copy Code” Snippet Button and Why It Matters (whi)13762
, , , ,
Designing for Clarity: How We Restructured Intercom’s Information Architecture (pra/int)13761
, ,
Build It Yourself (mit)13760
, , ,
Creating Accessibility Systems to Fix Accessibility Issues (vis/ass)13759
, ,
Ensuring Excellence: Proven Strategies for Quality Vue.js Development (fro)13758
, ,
Positioning Text Around Elements With CSS Offset (rps/css)13757
,
How to Build a CMS With React-Admin (thi/mar)13756
,
Node.js EOL Versions CVE Dubbed the “Worst CVE of the Year” by Security Experts (sar/soc)13755
, ,
How I Open-Sourced My Secret Access Tokens From GitHub, Slack, and npm—and Who Actually Cares (iva)13754
, , ,
When DEI Fails: Is Diversity Just a Marketing Gimmick? (web)13753
Announcing the Web AI Acceleration Fund (add/dev)13752
, , , ,
JavaScript Temporal Is Coming (bsm/mdn)13751