Tech is political: The people under attack in Palestine 🇵🇸, Iran 🇮🇷, and Lebanon 🇱🇧 are people like us. They’re our brothers and sisters, too. Read up on their history, scrutinize what you’re told, and demand that they be respected. Hide

Frontend Dogma

“2025” News Archive (6)

Entry (Sources) and Additional TopicsDate#
Expanding CSS Shadow Effects (pre/fro)819
css, shadows, effects
How to Easily Reproduce a Flaky Test in Playwright (cha)818
how-tos, playwright, testing, flakiness
How to Set Up TypeScript With Node.js and Express (log)817
how-tos, typescript, nodejs, express
Interop 2025—Which Browser Features to Get Acquainted With This Year and Why You Should Care (uti/iod)816
interoperability, support, browsers, web-platform
Item Flow: A New Unified Concept for Layout (sar+/web)815
css, layout, grids, flexbox, masonry
Markup Languages (j9t)814
overviews, link-lists, sgml, html, xml, xhtml, hdml, dhtml, mathml, wml, chtml
React Email 4.0813
react, email, tooling
Robots Refresher: Future-Proof Robots Exclusion Protocol (met)812
robotstxt
Meet llms.txt, a Proposed Standard for AI Website Content Crawling (sea)811
ai, crawling, scraping, llmstxt, robotstxt
Mastering Typography in Design Systems With Semantic Tokens and Responsive Scaling810
typography, design-systems, design-tokens, semantics, responsive-design, scaling
How to Conduct an Accessibility Audit: A Step-by-Step Guide809
how-tos, guides, accessibility, auditing, processes
How to Write Blog Posts That Developers Read (mtl)808
how-tos, writing, blogging
If It Works, It’s Right (bel/pic)807
css
Mind the WCAG Automation Gap (ste)806
accessibility, automation, wcag
Online Tracking Is Out of Control—Privacy Badger Can Help You Fight Back (eff)805
privacy, tooling, browser-extensions, eff
Scrum Not Working? Try It as Is Before You Modify It (ste)804
scrum, agile, processes
5 GitHub Actions Every Maintainer Needs to Know (kli)803
github-actions, github, tooling, automation, maintenance
Website Hijack Campaign Now Impacting 150,000 Sites (gad)802
security
[“a:focus-visible”] (ada)801
css, focus, links
AI Won’t Take Your Job—but Someone Who Uses It Better Than You Will (cwo)800
ai, career, tooling, learning
Eleventy—Use Passthrough File Copy to Add Assets (w3t)799
eleventy, configuration
Malware Found on npm Infecting Local Package With Reverse Shell (rev)798
npm, dependencies, security
Direct Access vs. Sequential Access: Why Direct Is Better (nng)797
videos, usability
Jo Minney on Website Usability Testing for WordPress Projects (jom+)796
podcasts, interviews, wordpress, usability, testing
What’s New in WebGPU (Chrome 135)795
release-notes, webgpu, chrome, google, browsers
JavaScript’s Missing Link: Wasp Offers Full Stack Solution (low)794
wasp, javascript, frameworks, history
What’s the Future of Platform Engineering? (ma1+)793
videos, platform-engineering, outlooks, ai
A11y 101: 1.4.3 Contrast (Minimum) (nat)792
introductions, accessibility, wcag, contrast, colors, apca
Artificial Intelligence Needs Community Intelligence (all)791
videos, ai, community
“input type="number"” (kev)790
html, forms
React Query API Design: Lessons Learned (tkd)789
videos, lessons, react, apis, state-management, data-fetching, tanstack
The Case for “Old School” CSS (hui)788
css, drupal, twig
You Should Know This Before Choosing Next.js (edu)787
nextjs, vercel, frameworks
Land Ahoy: Leaving the Sea of Nodes786
v8, javascript-engines, javascript, compiling
“aria-label” Is a Letdown (thi/wag)785
accessibility, aria, labels, html
Expressing Japanese Grammar Through TypeScript Type System784
typescript, types, localization
Is Vibe Coding Agile or Merely a Hype? (scr)783
processes, ai, vibe-coding, agile
Layered Text Headers (chr/fro)782
typography, css, svg, shadows
Mission jQuery Zero: How FreeAgent Removed jQuery From Our Application (fre)781
refactoring, jquery, technical-debt, maintenance
Support Logical Shorthands in CSS (geo/css)780
css, logical-properties, shorthands
War Story: The Hardest Bug I Ever Debugged (jak)779
debugging, javascript, google, v8, chrome, browsers, bugs
The “<select>” Element Can Now Be Customized With CSS (arg)778
forms, css
UX or PX? Why Naming Matters777
user-experience, naming
AI Is the Future of Accessibility (kar)776
accessibility, ai, outlooks
Grid First, Flex Third (fim)775
css, layout, grids, flexbox
Directives: A Core Feature of the Angular Toolkit774
angular, extensibility
Whose Design Process?773
design, ai, creativity, processes
When Do Retry, Backoff, and Jitter Work?772
dev-ops, concepts
Don’t Use Scores From Automatic Tools in Your Accessibility Statement (cer)771
accessibility, documentation, compliance, tooling
Holographic Masks (hej)770
code-pens, css, gradients, blend-modes, effects
How Navigation Should Work for Keyboard Users (tem)769
navigation, keyboard-navigation, focus, accessibility
UI Algorithms: A Tiny Undo Stack (jul)768
javascript, algorithms, functionality, undo-redo
Collecting Code Coverage in Node.js (nod)767
nodejs, code-coverage
Is Vite Faster Than Turbopack?766
nextjs, webpack, turbopack, vite, rollup, rolldown, bundling, performance, comparisons
Create an HTML Dialog When You Click an Image (cas)765
html, images, modals
How to Create Quality Content (Follow Our 5-Level Framework) (ahr)764
how-tos, content, microcontent, seo, sem
JavaScript Basics for a Senior Dev763
fundamentals, concepts, javascript, examples
Mitigating Browser Fingerprinting in Web Specifications (npd+/w3c)762
standards, privacy, fingerprinting, browsers, w3c
Previewing Content Changes in Your Work With “document.designMode” (sma)761
browsers, dev-tools, javascript, content, design
Revisiting CSS “border-image” (mal/css)760
css, borders, images, data-urls
The Software Engineering Identity Crisis (cod)759
career, craft, ai, vibe-coding
This Is the Optimal Team Size That Improves Performance by 400%758
engineering-management, productivity
Cursor, “Vibe Coding,” and Manus: The UX Revolution That AI Needs757
ai, chatgpt, cursor, history, vibe-coding, user-experience
Cracking the Code of Vibe Coding756
programming, processes, ai, vibe-coding, craft, technical-debt, design-debt
Composite vs. Simple Tokens755
design-tokens, comparisons, terminology, maintainability
Cowardly Defaults and Courageous Overrides With Modern CSS (tyl/clo)754
css, presentational-html, cascade
Keyword Research for SEO in 2025: Step-By-Step Tutorial753
videos, keywords, seo, google, tooling
My Thoughts on Asynchronous Accessibility APIs (jcs)752
accessibility, asynchronicity, apis
Quick Reminder That “:is()” and “:where()” Are Basically the Same With One Key Difference (geo/css)751
css, selectors, cascade
Revisiting Fluid Type (ric+/odd)750
videos, interviews, typography, fonts, responsive-design
Stop Chasing New JavaScript Frameworks: Build With Fundamentals Instead749
fundamentals, javascript, frameworks, react, vuejs, angular, svelte, solidjs
Testing Design Systems in 2025 (blv)748
design-systems, testing, storybook, vitest
SSR Deep Dive for React Developers747
deep-dives, server-side-rendering, react, javascript
Where Frontend Dogma Gets Its News From (j9t)746
cross-posts, frontend-dogma, community, link-lists
The “contenteditable” “plaintext-only” Attribute Value Combination Is Now Baseline Newly Available (tom)745
html, attributes, browsers, support, web-platform
Carousels With CSS (arg)744
css, carousels, scrolling
One Thing “@scope” Can Do Is Reduce Concerns About Source Order (chr/fro)743
css, scope, source-order
How WebAssembly Components Can Replace JavaScript SDKs (sac)742
webassembly, components, javascript
Web Accessibility Requirements in the EU (mar)741
accessibility, eaa, legal, compliance, history, metrics
Five Things Vibe Coders Should Know (From a Software Engineer)740
vibe-coding, security, sanitization, rate-limiting
GitHub Suffers a Cascading Supply Chain Attack Compromising CI/CD Secrets (inf)739
github, security, ci-cd
Naming Things in Design Systems—and Why It’s the Worst (pjo)738
design-systems, naming, components
Node.js TSC Votes to Stop Distributing Corepack (sar/soc)737
nodejs, corepack
Not All AI-Assisted Programming Is Vibe Coding (but Vibe Coding Rocks) (sim)736
programming, processes, ai, vibe-coding
Quick Accessibility Wins That Are Easy to Implement (kev)735
videos, accessibility, html, semantics, alt-text, images, contrast, colors, keyboard-navigation, focus, skip-links
Style Legend (ada)734
forms, css
The Bare Minimum You Need to Enable View Transitions on Your Website (ami)733
html, css, view-transitions, minimalism
Understanding the European Accessibility Act (EAA) (tin/tet)732
eaa, legal, accessibility
Vibe Coding and CHOP: What You Need to Know About AI-Driven Development (big/gra)731
ai, vibe-coding, processes, tooling
Why UI Automation Is Insufficient as an Accessibility API for the Web (jcs)730
accessibility, automation, microsoft
Introducing Motion for Vue (cit)729
introductions, animations, tooling, vuejs
Minding the Gaps: A New Way to Draw Separators in CSS (pat)728
css, borders
Generate Growing Images Using Gemini API727
images, ai, gemini, apis
A Deep Dive Into the Inline Background Overlap Problem (ana/fro)726
deep-dives, css, svg, filters, backgrounds
Downtime vs. Slowtime: Which Costs You More? (tam/spe)725
performance, economics, branding
Next.js vs. TanStack724
nextjs, tanstack, comparisons
Past and Present Futures of User Interface Design723
design, desktop, history, outlooks
Polite Is Often Better Than Being Alerted (oze)722
accessibility, aria, screen-readers
Reducing CSS Complexity With the “:is()” Pseudo-Class (cfe)721
css, selectors, complexity
Self Gap (sha)720
css, flexbox, layout
Twenty Twenty-Five Theme: The Ultimate Guide (abr)719
guides, wordpress, themes
Designing Design Systems: A Framework for Names, Terms, and Definitions718
design-systems, naming, documentation, processes
How to Think About Baseline and Polyfills (mal)717
how-tos, support, browsers, web-platform, polyfills
A11y 101: 1.4.2 Audio Control (nat)716
introductions, accessibility, wcag, multimedia
Breadcrumbs Are Dead in Web Design (web)715
design-patterns, navigation, breadcrumbs
Explaining UX Design Through the Lens of Construction (uxm)714
user-experience, design, processes, concepts
Is React Accessible? That’s the Wrong Question713
accessibility, react, jsx, semantics, html
Leveraging 3 Types of User Feedback to Create Better User Experiences (uxm)712
user-experience, testing
Please Stop Externalizing Your Costs Directly Into My Face (sir)711
ai, crawling, traffic, economics
Web Components vs. Framework Components: What’s the Difference? (sma)710
web-components, components, frameworks, html, comparisons
Bulk Actions: 3 Design Guidelines (nng)709
videos, guidelines, design, usability
What Are MCPs? A Beginner’s Guide to the Future of AI and Automation708
guides, ai, mcp, architecture, automation
A Review of HTML Linters707
overviews, html, linting, conformance, tooling, link-lists, comparisons
But How to Get to That European Cloud? (ber)706
cloud-computing, politics, foss
Styling Counters in CSS (mon/css)705
overviews, css, lists, counters
10 Uses for Variables Beyond Light and Dark Mode (ali)704
figma, variables, dark-mode
Accessibility Requires Clear Responsibilities or It Will Fail (cer)703
accessibility, processes, culture
“Classless.css” Framework702
frameworks, css
Maintaining Screenshot Quality and Color Profile in Figma (max)701
figma, screenshots, images, quality, colors
Let’s Knock Down Social Media’s Walled Gardens (tim/fin)700
web, social-media
Web Scraping With Cheerio in 2025 (api)699
guides, scraping, tooling
Coding vs. Vibe Coding698
processes, ai, vibe-coding, programming, comparisons
Designers, Your Excuse Is Gone. Stunning, Animated, and Accessible. Yes, You Can! (bov)697
design, accessibility
Popping Preconceived Popover Ponderings (sco)696
accessibility, html, pop-overs
Why the Latest JavaScript Frameworks Are a Waste of Time695
frameworks, javascript, react, angular
System Design Roadmap for Beginners694
architecture, system-design, concepts
The Hidden Burden of Architectural Decision Fatigue (and How to Fix It)693
architecture, documentation
ADA Compliance vs. WCAG Conformance692
accessibility, ada, wcag, compliance, comparisons, legal
Browse No More (sta)691
browsing, searching, ai, web, user-experience
How to Prevent WordPress SQL Injection Attacks (sma)690
how-tos, wordpress, sql, databases, security
“Intl.DurationFormat”: Format Time Durations With Locale Support (tre)689
javascript, localization
Accelerating Large-Scale Test Migration With LLMs688
testing, migrating, ai, case-studies
How GitHub Engineers Learn New Codebases (bri)687
github, learning, documentation
How to Get Deep Traces in Your Node.js Backend With OTel and Deno (den)686
how-tos, observability, tracing, nodejs, deno, tooling
State of Vue.js Report 2025685
surveys, vuejs, metrics, frameworks
Chilled Out Text Underlines (chr/fro)684
css, links, colors
Create a Fun Quick Text Flip Effect (kev)683
videos, css, effects
“:in-range” Pseudo-Class (kev)682
css, selectors, forms
Nobody Should Be a “Content Creator” (cod)681
content, social-media, ai, career
A Perplexing JavaScript Parsing Puzzle (hil)680
javascript, parsing, history
How WebAssembly Crushes Technical Debt679
webassembly, technical-debt, metrics
Connect Claude Code to a GitHub MCP Server (mat)678
github, claude, anthropic, ai, mcp
Support for CSS and Baseline Has Shipped in ESLint (mal)677
eslint, css, browsers, support, web-platform
A 10× Faster TypeScript676
videos, typescript
View Transitions Applied: Smoothly Animating a “border-radius” With a View Transition (bra)675
css, animations, view-transitions, borders
Why Microsoft Is Rewriting Their TypeScript Compiler in Go (imp)674
microsoft, typescript, compiling, go
Retrieval-Augmented Generation With Node.js, Podman AI Lab, and React673
rag, ai, nodejs, podman, react
What’s Missing With AI-Generated Code? Refactoring (ste)672
surveys, studies, research, ai, productivity, quality, maintenance, refactoring
On JavaScript Closures (With Examples of Interview Questions) (mar)671
guest-posts, javascript, closures, variables, examples, interviewing
A11y 101: 1.4.1 Use of Color (nat)670
introductions, accessibility, wcag, colors
Content Churn in Google Doubled Over Five Years (moz)669
google, search, content, seo, metrics
CSS System Colors (ant)668
css, colors
Future of CSS: “select” Styling Without the Hacks667
css, selectors, forms, html
Lazarus Strikes npm Again With New Wave of Malicious Packages (soc)666
npm, dependencies, security
Ten Years Ago Today I Coined the Shorthand “js;dr” for “JavaScript Required; Didn’t Read” (tan)665
javascript, support, terminology
Angular Hacks Every Developer Should Know664
angular
Automated Tools Can Ensure Full Accessibility Compliance663
accessibility, compliance, tooling, automation
Design Systems Report 2025 (zer)662
surveys, studies, research, design-systems, metrics
DOJ Pushes for Google to Sell Chrome to Break Search Monopoly661
google, search, legal, chrome, browsers
Relative Colors (sha)660
css, colors, functions, contrast
Here’s How Chrome Could Lose the Browser War659
chrome, google, browsers, browser-wars, history
The Hype and Risks of Vibe Coding658
trends, design, processes, ai, vibe-coding
Devs: Draw Your Line (rem)657
privacy, ethics, career
How to Handle “Urgent Request” in Scrum656
how-tos, scrum, agile, project-management, prioritization
WAI a Day (yat)655
websites, accessibility, link-lists
Is Cursor Better Than VS Code With Copilot? Absolutely and It’s Not Close654
code-editors, cursor, vs-code, microsoft, github-copilot, ai, comparisons
“aria-label” Requires a Valid Role (cfe)653
accessibility, aria
Creating Animated Accordions With the “details” Element and Modern CSS (ste/bui)652
html, css, disclosure-widgets, accordions, animations, transitions
Implementing “aria-describedby” for Web Accessibility (flo/a11)651
accessibility, aria, forms, labels, html
Top 10 Common Accessibility Issues in Websites650
accessibility
Updates on CVE for End-of-Life Versions (raf/nod)649
nodejs, security
Usability Testing With Disabled Users Is a Good Investment (nic)648
testing, usability, accessibility
What Is the OWASP Top 10 and How Can Your Team Benchmark Security? (jet)647
owasp, security, vulnerabilities, qodana, jetbrains
Why Do We Have a “Cache-Control” Request Header? (css)646
caching, http-headers, http
10 Hidden Gems in Angular That You Should Use645
angular, functions
Great Software Design Looks Underwhelming (sea)644
software-design, simplicity
Page Speed: Avoid Large Base64 Data URLs in HTML and CSS (deb)643
performance, html, css, data-urls, compression, base64
Standards for ANSI Escape Codes (b0r)642
escaping, encoding
Introducing “command” and “commandfor” (kei)641
introductions, html, attributes
DeepSeek and HTML (j9t)640
ai, deepseek, html, minimalism, conformance
Coding With AI: How to Do It Well and What This Means (chr)639
how-tos, ai, processes
Prompt Engineering for Web Development638
ai, prompting, examples
Cool Native HTML Elements You Should Already Be Using (hrr)637
html, modals, disclosure-widgets, forms, progress-indicators
Defending Tailwind (don)636
tailwind, presentational-html, naming, productivity, maintainability, scalability
How to Protect Your Web Applications From XSS (tor/w3c)635
how-tos, web-apps, security, xss
JavaScript Best Practice: Use “return await”634
javascript, asynchronicity, best-practices
Maybe Don’t Use Custom Properties in Shorthand Properties (mat)633
css, shorthands, custom-properties
On Ethics in Web Development (With a Brief Overview of Ethical Theories) (j9t)632
overviews, ethics
The Angular Language Server: Understanding IDE Integration Approaches (nik/jet)631
angular, code-editors, vs-code, microsoft, neovim, webstorm, jetbrains
Your Best Engineers Could Be Your Biggest Communication Liability (and How to Fix It)630
communication, collaboration
In Tech, What Matters and What Is Dangerous (ham)629
security, community, foss, open-web
Delaying the Shipping of CSS “@function” From Chrome 136 to 139 (arg)628
chrome, google, browsers, css
How to Fix Largest Contentful Paint Issues With Subpart Analysis (mat/sma)627
how-tos, performance, web-vitals, metrics
From Designing Things to Designing Change626
design, principles, collaboration
Node Just Added TypeScript Support. What Does That Mean for Deno? (tin/den)625
typescript, nodejs, deno
Making the Fediverse More Accessible With Claude 3.7 Sonnet (jud)624
fediverse, bluesky, social-media, ai, claude, anthropic
An Aura of Accessibility (tpg)623
accessibility, zooming, reflow, wcag
Automatically Generate Changelogs With Git (dan)622
git, documentation, automation
Don’t Use Fake Bold or Italic in Social Media (aar)621
social-media, unicode, screen-readers, pronunciation, accessibility
From “You Will Fail” to 15,000 GitHub Stars: The Story of Wasp, a “Laravel for JS” Full-Stack Framework620
wasp, history
Grouping Selection List Items Together With CSS Grid (pre/css)619
html, lists, forms, css, grids, layout
How ECMAScript Engines Optimize Your Variables (boa)618
ecmascript, variables, optimization
Super Crispy SVG Icons (ale)617
svg, images, icons, optimization
Accessible Solutions Benefit Everyone: Here’s How (nng)616
videos, design, accessibility, examples
Is Biome Ready to Replace Prettier and ESLint?615
formatting, linting, tooling, biome, prettier, eslint
5 Questions to Ask Your Manager to 10× Your Impact at Work (cod)614
career, productivity, prioritization, communication, culture
How to Troubleshoot Node.js Images in OpenShift613
how-tos, nodejs, docker, debugging, tooling
Our Favorite DevTools Features of 2025 (deb)612
dev-tools, browsers, chrome, google, edge, microsoft
Building Websites With LLMS (jim)611
html, css, view-transitions
Reservoir Sampling (sam)610
algorithms, randomness, visualization
SEO Is the Worst It’s Ever Been (and It’s Still Your Best Marketing Channel) (ahr)609
seo, sem, marketing, ai, outlooks
Tailwind UI Is Now Tailwind Plus (ada/tai)608
tailwind
Truth, Lies, and Progress Bars (tyl/clo)607
design, progress-indicators
Underrated Angular Features (arm/dan)606
angular
Using and Styling the “details” Element (geo/css)605
html, css, disclosure-widgets, examples
View Transitions Applied: Dealing With the Snapshot Containing Block (bra)604
css, view-transitions
Ethical Foundations in Modern Software Development (fra)603
fundamentals, principles, ethics, foss, ai
The Professional Standing of Frontend Developers (mar)602
guest-posts, career, learning, html, css, javascript, communication, collaboration, community, ai
Myth: Technical Debt Is the Developers Problem601
myths, technical-debt, processes, scrum, agile
Unlock Exciting Use Cases With the Document Picture-in-Picture API (jad)600
html, apis
Agentic AI Is the New Web App, and Your AI Strategy Must Evolve599
ai, outlooks
Firefox 136 Launches With Vertical Tabs, but One Requested Feature Is Still Missing598
firefox, mozilla, browsers
7 Best Practices of File Upload With JavaScript and React597
file-handling, javascript, react, best-practices
A11y 101: 1.3.5 Identify Input Purpose (nat)596
introductions, accessibility, wcag, forms
CSS Meets Voxel Art: Building a Rendering Engine With Stacked Grids (cod)595
css, html, art
Functions in CSS?! (mon/css)594
css, functions
JavaScript (htt)593
web-almanac, studies, research, metrics, javascript, performance, bundling, transpiling, web-workers, libraries, web-components
Other Causes of Signed Exchanges Errors (paw)592
signed-exchanges, errors, debugging, performance, cloudflare, google
Secure UX: Building Cybersecurity and Privacy Into the UX Lifecycle (uxm)591
user-experience, processes, security
The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks (sma)590
wordpress, theming, tooling, minimalism
Who Is Free Software For? (tan)589
foss, licensing
One Kilobyte to Copilot: My Journey Through Programming History588
programming, ai, history
AI in the Workplace: A Productivity Boost, Not a Replacement587
ai, productivity, career
Dark Mode: Essential, Not a Preference586
dark-mode, accessibility
License to Kill: Coding With Cursor AI Agents585
cursor, code-editors, ai, ai-agents
Everything I Was Lied to About Node.js Came True With Elixir584
nodejs, concurrency, memory, performance
10 Best AI Code Review Tools and How They Work583
ai, code-reviews, tooling, comparisons, link-lists
I Finally Understand What FAANG Wants in a Candidate582
interviewing, facebook+meta, amazon, apple, netflix, google
UX Analytics: How to Measure Your User Experience the Right Way (uxm)581
how-tos, user-experience, metrics, accessibility, performance, tooling
AX, DX, UX (jim)580
agent-experience, developer-experience, user-experience, comparisons
Be Wary of Accessibility Guarantees From Anyone (aar)579
accessibility, automation
Image Comparison Slider in 6 Lines of JavaScript578
sliders, images, javascript
My Sales Pitch for TypeScript (rau)577
typescript
Update on QUIC (jas/nod)576
nodejs, quic, tls, protocols, support
Values (yat)575
accessibility, ai, community, culture
“I’m Not a Designer But…” (ada)574
design, usability, forms, ecommerce
I Quit My FAANG Job Because It’ll Be Automated by the End of 2025 (jas)573
career, ai
Learn Zod So You Can Trust Your Data and Your Types (did)572
libraries, types, typescript, examples
Mozilla Updates Firefox Terms Again After Backlash Over Broad Data License Language (the)571
firefox, mozilla, browsers, licensing
What’s New in Svelte: March 2025 (dre/sve)570
release-notes, svelte, sveltekit
Leverage on Redux to Execute Your Tests 100× Times Faster569
react, redux, testing, performance, examples
Custom Property Fallbacks (mat/fro)568
css, custom-properties
JavaScript Fatigue Strikes Back (all)567
javascript, react, frameworks, libraries, tooling
Testing Tools for Accessibility Enhancement566
videos, accessibility, testing, tooling
There’s No Such Thing as “Menubar Navigation” (tem)565
accessibility, navigation, html
Views on Views (hdv)564
accessibility, wcag, terminology
Building APIs With Next.js (lee)563
nextjs, apis
When Config Becomes the Code: The Trap of Over-Abstracting Logic (max)562
configuration, debugging, low-and-no-code
New to the Web Platform in February (rac)561
release-notes, web-platform, browsers, firefox, mozilla, chrome, google, safari, apple
Chrome on Android Edge-to-Edge Migration Guide (bra)560
guides, chrome, google, browsers, mobile
How to Reduce Web Application Bundle Size? (ant)559
how-tos, web-apps, bundling, javascript, tooling
Is the Button Focusable? (mat)558
accessibility, buttons, focus, quizzes
Using AI in the Browser for Typo Rewriting (ray)557
chrome, google, browsers, ai, apis, content
What Is TypeScript? An Overview for JavaScript Programmers (rau)556
overviews, typescript, javascript, comparisons
When to Use Lists for Better Accessibility555
accessibility, html, lists
New to Web Development? Run Your Own Website (j9t)554
career, training, indieweb
Advanced Network Analysis With Chrome DevTools (jec)553
videos, dev-tools, chrome, google, browsers, performance, network, caching
5 Tips to Do Less and Better Work With AI (pro)552
ai, productivity, automation, writing, prompting
Examples of Why the Web Needs Anchored Popovers (chr/fro)551
design, pop-overs, examples
Open-Source Is Where Dreams Go to Die (tre)550
foss, culture, community, economics
The Existential Challenge of Design System Team Morale (pjo)549
design-systems, processes, culture
What It Really Takes: Building an Accessibility-First Corporate Culture (deq)548
videos, accessibility, culture, strategies
8 Best Things About Working in UX (nng)547
videos, user-experience, career
The Six Cs of Accessibility546
accessibility
Next.js 15.2545
release-notes, nextjs
The Fallacy of Balance: Challenging the Notion of Security and Accessibility as Opposing Objectives (deq)544
videos, accessibility, security
Google’s Principles for Measuring Developer Productivity543
google, principles, productivity, studies, research
Firefox: Mozilla Confirms Support for Classic Extensions and Manifest V3 Add-Ons542
firefox, mozilla, browsers, browser-extensions
Accessibility Maturity Models (deq)541
videos, accessibility
Better Anchor Positioning With “position-area” (jam/odd)540
css, anchor-positioning
Browsers: A Snapshot (bry)539
browsers, browser-extensions, chromium, edge, microsoft, firefox, mozilla, brave, safari, apple
CSS Snapshot 2024 (tab+/w3c)538
css, standards
How to Use “attr()” in CSS for Columns, Colors, and Font-Size (chr/fro)537
how-tos, css, functions, layout, colors, typography
Intent to Experiment for Longer (kiz)536
chrome, google, browsers, css, functions, conditionals
Justified Text, JS “moveBefore” Method, Performance Optimization (zor/css)535
videos, css, typography, javascript, performance, optimization
Why I Like Designing in the Browser (tyl/clo)534
design, processes, browsers
5 Questions for Jeremy Keith (ada+/fro)533
interviews, web, web-platform, interoperability, mobile
2024 Web Almanac: Uncovering Global Accessibility Insights With axe (mgi/deq)532
videos, accessibility, web-almanac, studies, research, metrics, axe
Turbocharging V8 With Mutable Heap Numbers531
v8, javascript-engines, javascript, performance, randomness
@11ty/image-color (zac)530
packages, npm, images, colors
11 Practical Tips to Make Code Reviews Easier as a Developer529
code-reviews, tips-and-tricks, ai, principles, linting, formatting, quality, collaboration
A11y 101: 1.3.4 Orientation (nat)528
introductions, accessibility, wcag, design
Applying the Web Dev Mindset to Dealing With Life Challenges (css)527
career
Avoiding Tokens (don)526
design-systems, design-tokens
Common Dataviz Accessibility Issues (fos/sma)525
videos, accessibility, visualization
Overlay Timeline (ove)524
websites, overlays, accessibility, history, link-lists
Simple Interactive CLI App With Node.js (rwi)523
tutorials, nodejs, command-line
Strong Opinions on URL Design (val)522
urls, user-experience
Subverting Control With Weak References (jlo)521
programming, javascript
The Figma Dilemma: Too Many Cooks, Too Few Decisions (web)520
design, figma, collaboration
Trusting AI With My Images Wasn’t Easy (dri)519
ai, images, alt-text, accessibility, automation, tooling
Web Scraping With Playwright518
scraping, playwright, typescript, youtube, functionality
Solved by Style Observer: “Element.matchContainer()” (bra)517
css, javascript
Top 10 Front-End Dev Trends for 2025 (bhu)516
trends, ai, low-and-no-code, css, edge-computing, frameworks, dark-mode, sustainability, webauthn, interaction-design, voice
Best Practices for Cognitive Accessibility in Web Design (a11)515
accessibility, wcag, best-practices
1.4.10: Adversarial Conformance (aar)514
accessibility, wcag, compliance
Skip Links: What, Why, and How (tem)513
accessibility, skip-links, keyboard-navigation, wcag
Speeding Up the JavaScript Ecosystem—Rust and JavaScript Plugins (mar)512
javascript, performance, rust, plugins
It Is No Longer Safe to Move Our Governments and Societies to US Clouds (ber)511
cloud-computing, security, privacy, legal
Clean Code in JavaScript: A Comprehensive Guide510
guides, javascript, principles, conventions, variables, objects, functions, comments, testing, quality
In Defense of Text Labels (chr)509
labels, icons, images, usability, design
Stop Your Angular Apps From Leaking Memory (cod)508
videos, angular, memory
Top Benefits of Choosing Node.js for High-Performance Applications507
nodejs, performance, native
How to Do Visual Regression Testing in Vue With Vitest? (ale)506
how-tos, testing, regressions, vuejs, vitest
You Need TDD if You Use AI (lor)505
ai, testing, processes
10 Open-Source Documentation Frameworks to Check Out504
foss, documentation, tooling, link-lists, zola
Accessible Design Checklist (lau/pen)503
accessibility, design, checklists
Debugging Mutable Subresources: A Detective Story (paw)502
signed-exchanges, caching, debugging
Fixing “rowspan=0” on Tables on WebKit (kar)501
html, tables, webkit, browser-engines, browsers
Toe Dipping Into View Transitions (geo/css)500
css, view-transitions
Web Accessibility Lawsuit Moves Forward Against the State of Louisiana (lfl)499
accessibility, legal, ada
UX Is Dead, Long Live UX (nng)498
user-experience, ai, economics
“ruby-align” Is Baseline Newly Available497
ruby-markup, html, css, browsers, support, web-platform
Everything You Need to Know About Invoker Commands (kei/web)496
videos, html, pop-overs
Why We Ditched Next.js and Never Looked Back (tdj)495
nextjs
The Effort Paradox in AI Design494
design, product-management, history
A Guide to AI Prototyping for Product Designers493
guides, design, prototyping, ai, product-management
Introduction to Frontend Development492
introductions, html, css, javascript, frameworks, libraries, tooling, career, trends
Debugging CSS Anchor Positioning (tab+/odd)491
videos, interviews, css, anchor-positioning, debugging
Digital Accessibility and the Cost of Exclusion (deq)490
accessibility, economics, ethics
Intro to Datastar (and Craft CMS) (cra)489
videos, introductions, tooling
TC39 Advances 3 Proposals to Stage 4: RegExp Escaping, Float16Array, and Redeclarable Global Eval Vars (sar/soc)488
standards, ecmascript, javascript, regex, escaping, arrays, math
Google Just Confirmed the AI Reality Many Programmers Are Desperately Trying to Deny (tar)487
programming, ai, productivity, google, github-copilot, code-editors, cursor
What I Wish I Knew as a Junior Developer (cod)486
career, lessons
3 Best Practices for Multi-Language Support in Frontend Development (ele/des)485
guest-posts, internationalization, localization, automation, ai
10 Practical Bash Commands to Simplify Complex Tasks (ski)484
shells, command-line, productivity
20 Years of AJAX: The Technology That Revolutionized Web Development483
ajax, javascript, history, data-fetching
Breakpoint-Free CSS Grid Layouts (kev)482
videos, css, grids, layout, functions
Documenting Web Components With Storybook481
documentation, design-systems, web-components, storybook, examples
Human-Centered Design Through AI-Assisted Usability Testing: Reality or Fiction? (sma)480
design, usability, testing, ai
Why You Shouldn’t Use AI to Write Documentation (lur/zer)479
documentation, writing, ai
Flutter Is at a Critical Inflection Point478
flutter
Demystifying MIME Types: Basics, Use Cases, Best Practices (mar)477
guest-posts, mime-types, fundamentals, best-practices, performance, servers, apache, nginx, email
Tracing of Node.js for Better Visibility and Performance With N|Solid (nod)476
nodejs, tracing, tooling, nsolid
A Color Input That Also Shows the Value (chr/fro)475
forms, colors, web-components
AI Killed the Tech Interview. Now What?474
interviewing, hiring, ai, career, outlooks
Basic Design Patterns473
software-design, software-design-patterns
CDEs Aren’t Just for Developers: How QA, Tech Writers, and Designers Benefit Too (jet)472
code-editors, jetbrains, case-studies
Decoding CSS Selectors: “:has(:not)” vs. “:not(:has)” (pol)471
css, selectors, comparisons
ESLint Now Officially Supports Linting of CSS (nza/esl)470
eslint, css, linting
How OWASP Helps You Secure Your Full-Stack Web Applications (eri/sma)469
security, owasp, monitoring, authentication, vulnerabilities, configuration, csrf, cryptography, authorization
Navigating the Web Platform (pat)468
web-platform, documentation, browsers, standards, link-lists, cheat-sheets
These (Still) Aren’t the SCs You’re Looking For (pat)467
videos, wcag, accessibility, compliance
TypeScript in a Node.js Project (rwi)466
typescript, nodejs, configuration
CSS-Only Click Handlers You Might Not Be Using, but You Should465
css, selectors
CSS “@function” + CSS “if()” = 🤯 (bra)464
css, functions, conditionals, custom-properties, dark-mode
Meeting European Accessibility Act (EAA) Standards: A Developer’s Checklist463
accessibility, checklists, eaa, legal
Tim Frick on Web Sustainability and Building a Greener Digital World462
interviews, design, content, hosting, sustainability
How I Review Design Work (ted)461
design, consistency, creativity, complexity, processes
A Really (Really) Long but Authentic History of Design Evolution in India460
design, culture, history
Static vs. Dynamic Content: Which Should Developers Favor?459
content, client-side-rendering, server-side-rendering, performance, frameworks, comparisons
10 Awesome CSS Text Effects for Your Next Project (pau)458
css, effects, code-pens
Aspect Ratio Changes With CSS View Transitions (jim)457
css, view-transitions, aspect-ratio
Getting the Relationship Between UX Design and Business Strategy Right (uxm)456
design, user-experience, product-management, strategies, economics, collaboration, business-relations
How to Build a Design System? Rolling It Out and Driving Adoption455
how-tos, design-systems, advocacy
React Libraries for 2025 (rwi)454
react, libraries, tooling, link-lists
Rethinking Find-in-Page Accessibility: Making Hidden Text Work for Everyone (sch)453
accessibility, search, hiding, browsers, html
The “attr()” Function in CSS Now Supports Types (ami)452
css, functions, attributes, types
The Dark Side of UX: Lessons From OnlyFans’ Addictive Design (web)451
lessons, design, dark-patterns, ethics, user-experience, case-studies
The Difference Between Zoom and Scale (css)450
css, zooming, transforms, tips-and-tricks
Top Lawyers in 16 States Push Back on Anti-DEIA Executive Orders (lfl)449
dei, accessibility, legal
Implementing a Dissolve Effect With Shaders and Particles in Three.js (cod)448
effects, threejs
Accessible UX Design: 6 Advanced Techniques to Elevate Your Process (a11)447
design, user-experience, accessibility, principles, techniques, processes
It’s Right There in the Back of the Book (hom)446
accessibility, html, semantics
10 Common Web Development Mistakes to Avoid Right Now445
mistakes, mobile, performance, accessibility, seo, navigation, security, analytics, testing
Interaction Design Demands More Than Visual Creativity444
design, interaction-design, design-systems, creativity
Five Things AI Will Not Change (met)443
ai, outlooks
The New “withAttributes” Method for Relationships and Scopes in Laravel (ami)442
laravel, php
The “:not” Selector in Use (cit)441
css, selectors
How to Move the First Element to the End in JavaScript440
how-tos, javascript
How to Use Chrome’s Developer Tools (mat/deb)439
how-tos, chrome, google, browsers, dev-tools
Top 5 Uses of WebAssembly for Web Developers438
webassembly, performance, migrating, ecommerce, dev-tools
Generic LLM Chatbot Attestation (aar)437
ai, bots, processes
10 Secret Git Commands That Will Save You 5+ Hours Every Week436
git, command-line
Advice to New Engineering Managers (tre)435
engineering-management, leadership, culture
Create Contextual Console Loggers (pat/dev)434
console, javascript, debugging, dev-tools, browsers, edge, microsoft, chrome, google
5 Ways to Increase the Quality of Your Design System Documentation433
design-systems, documentation, quality
Common Accessibility Challenges When Navigating Tables432
accessibility, tables, images, keyboard-navigation
Does WebPerf Matter to Your SEO Ranking? (tod/per)431
videos, performance, seo, keywords
How Do We Know What Components to Work On? (lur/zer)430
design-systems, components, prioritization
Love at First Slide! Creating a Carousel Purely Out of CSS (uti)429
css, scrolling, carousels, functionality
Rainbow Selection in CSS (chr/fro)428
css, selectors, effects
Sunsetting “Create React App” (mat+/rea)427
react
The Great AI UI Unification (mgs)426
ai, usability, chatgpt, openai
The Hardest Working Font in Manhattan (mwi)425
fonts, typography, history
We Were Wrong About GPUs (fly)424
cloud-computing, edge-computing, ai, docker, containerization, developer-experience
Comcast: A New Standard for Internet Energy Efficiency423
web, network, infrastructure, sustainability
2025: 10 Free Must-Know Websites for Every Developer422
productivity, creativity, link-lists
Don’t Start Testing Accessibility With a Screen Reader (eri)421
accessibility, testing, screen-readers, keyboard-navigation
How to Test and Measure Content in UX (vit/sma)420
how-tos, user-experience, design, content, testing, analytics
Interop 2025 (pat)419
interoperability, web-platform, browsers, support
Using the “step” and “pattern” Attributes to Make Number Inputs More Useful (cas/pic)418
html, forms
Which HTML Element Are You?417
quizzes, html
Launching Interop 2025 (moz)416
interoperability, web-platform, browsers, support
When an Engineering Manager Marries a Product Manager: Planning, Roadmaps, and Bug Fixes (cod)415
engineering-management, product-management, career, collaboration, processes
Interop 2025: Another Year of Web Platform Improvements (rac)414
interoperability, web-platform, browsers, support
Faux Containers in CSS Grids (tyl/clo)413
css, grids, layout
Style Observer: JS to Observe CSS Property Changes, for Reals (lea)412
tooling, libraries, css, javascript
Testing 10 JavaScript Frameworks on Their HTML Defaults (j9t)411
frameworks, javascript, html, conformance, comparisons, link-lists
Why Emojis Are the Ultimate User Interface (web)410
emoji, user-experience, design
Reimagining Fluid Typography (mia/odd)409
typography, css, responsive-design, liquid-design
Better Text Rendering in Chromium-Based Browsers on Windows (pat)408
typography, rendering, browser-engines, browsers, chromium, windows, microsoft
State of AI 2025 (sac/dev)407
surveys, ai
Tech Continues to Be Political (mia)406
politics, community, dei, ethics, ai, career
Time to First Byte: Beyond Server Response Time (mat/sma)405
performance, optimization, redirecting, content-delivery
State of React 2024 [Results] (sac+/dev)404
surveys, metrics, react
How to Improve Webpage Speed: Tips and Best Practices403
how-tos, performance, optimization, tips-and-tricks, best-practices, redirecting, fonts, images, testing, tooling, webpagetest
12 Web Accessibility Tips to Make Your Site More User-Friendly402
accessibility, tips-and-tricks, contrast, alt-text, keyboard-navigation, navigation, captions, labels, skip-links, microcontent
How to Start a React Project (rwi)401
how-tos, react
Simplify Nested Code (kei)400
programming, nesting, conditionals, simplicity
Structuring Design Tokens for Interactive States399
design-tokens
The Mystery of Mutable Subresources in Signed Exchanges (paw)398
authentication, signed-exchanges, caching, ruby-on-rails, nextjs, compression, http-headers, http
Web Components Toolkit (stu)397
websites, web-components
“Create React App” Officially Deprecated Amid React 19 Compatibility Issues (sar/soc)396
react, vite, migrating, single-page-apps, deprecation
Don’t Put Your Team in a Bubble395
agile, scrum, product-management, engineering-management
How to Refactor Code With GitHub Copilot394
how-tos, refactoring, ai, github-copilot, github
Designing Accessible Website Navigation: Best Practices for Inclusive UX393
accessibility, design, user-experience, navigation
Exploring Routes Rendering Modes in Angular (mai)392
angular, routing
How I Created a Popular WordPress Theme and Coined the Term “Hero Section” (Without Realizing It) (sma)391
wordpress, themes, terminology, history
How to Write Cypress Tests That Don’t Suck (ato)390
how-tos, testing, cypress
Optimizing Images for Web Performance (tod/fro)389
images, performance, optimization, jpeg, png, webp, avif, html, caching
Organizing Design System Component Patterns With CSS Cascade Layers (mrt/css)388
design-systems, components, css, cascade
Website Accessibility Testing Methods That Work (a11)387
accessibility, testing, processes
Control Scope Creep Before It Controls You386
project-management, processes
Micro Frontends With Angular and Native Federation (man/ang)385
angular, micro-frontends
Microsoft Study Finds AI Makes Human Cognition “Atrophied and Unprepared” (ema/404)384
studies, research, microsoft, ai, career, learning
Engineers Who Won’t Commit (sea)383
career, processes
One Year of Using the Web With Web Fonts Disabled382
fonts, accessibility, readability
10 Must Read Microservices Architecture Books for Experienced Developers381
books, microservices, architecture
Think JavaScript Is Slow? Here’s How JIT (Just in Time) Compilation Makes It 100× Faster Instantly380
javascript, compiling, performance
Designing for AI Engineers: UI Patterns You Need to Know (eve)379
design, design-patterns, principles, processes, ai
How I Migrated From WordPress to Astro (its)378
migrating, wordpress, astro
Tightening Every Bolt (bag)377
videos, processes, code-reviews, testing, security
TypeScript: The “satisfies” Operator (rau)376
typescript, operators
The First Ever Website That Literally Glows in the Dark375
videos, effects, apis, javascript, css
Beware the Faux Bold (and How to Fix It) (ric)374
typography, fonts, css
Taking RWD to the Extreme (sma)373
responsive-design, intrinsic-design, html, css
Three Approaches to the “&” (Ampersand) Selector in CSS (pre/fro)372
css, nesting
Preload Fonts on Your Website for Better Core Web Vitals (deb)371
performance, preloading, fonts, hints, web-vitals
View Transitions Applied: More Performant “::view-transition-group(*)” Animations (bra)370
css, javascript, view-transitions, performance
6 Questions for Eric Eggert (yat+/fro)369
interviews, accessibility, eaa, legal
The Popover API Is Now Baseline Newly Available368
pop-overs, apis, browsers, support, web-platform
An Intro to React Compiler (nik)367
introductions, react, compiling
The Complete OpenCode Guide: Tips, Tricks, and Best Practices366
guides, tips-and-tricks, best-practices, opencode, ai
Beyond DX: Developers Must Now Learn Agent Experience (AX) (ric)365
code-editors, ai, agent-experience, developer-experience
Here Is Why Microsoft’s “Uninstall Edge” Page Offers No Instructions to Remove the Browser364
edge, microsoft, browsers
63% of Websites Receive AI Traffic (New Study of 3,000 Sites) (lou/ahr)363
traffic, ai, metrics
GitHub Copilot Brings Mockups to Life by Generating Code From Images (web)362
github-copilot, ai, images, design
How to Bring Structure and Clarity to Design System Components361
how-tos, design-systems, components, documentation, conventions, information-architecture
How to Build a Design System? Bridging the Gap Between Design and Development360
how-tos, design-systems, documentation
Read-Only Accessibility in TypeScript (rau)359
typescript
The Jetbrains Platform Gets a New Community Space (kle/jet)358
jetbrains, community
What I Learned From Migrating a Vue Project From Vuex to Pinia (mic/pic)357
migrating, vuejs, state-management, lessons
My Experience as a Designer Working at Bit356
design, career
Definition Layers Within Semantic Tokens (ikn)355
design-tokens, semantics
Which Rich Text Editor Framework Should You Choose in 2025? (aur/liv)354
tooling, comparisons, link-lists
Activism Matters for Tech Development and #FOSS Paths (inf)353
foss, fediverse, sustainability, advocacy
How to Build a Landing Page in 6 Easy Steps (sem)352
how-tos, landing-pages
How to Declare Your Page’s Language (pop)351
how-tos, html, internationalization
HTML and CSS for a One-Time Password Input (chr/fro)350
html, css, forms, passwords
Move on to ESM-Only (ant)349
esm, modules, nodejs, support, javascript, typescript
On Generative AI Security (sch)348
ai, security, lessons, microsoft
The Problem With Indirections (dan)347
programming, variables, functions, presentational-html, state-management
Using “at()” Method in JavaScript to Get the Last Item From an Array (ama)346
javascript, arrays
The State of PHP 2024 [Results] (jet)345
surveys, metrics, php, laravel, wordpress, symfony, phpstorm, jetbrains, vs-code, microsoft, sublime-text, code-editors
Some Terminal Frustrations (b0r)344
command-line, shells
Optimizing the Critical Rendering Path (mat/deb)343
performance, optimization, critical-path
DORA, SPACE, DevEx, DX Core 4 (j9t)342
engineering-management, productivity, culture, metrics
A Content List With Bulk Actions Using Ancient HTML and Modern CSS (tyl/clo)341
html, forms, lists, css
Build a Link Blog (xua)340
blogging, links
How I Learned to Code With My Voice (whi)339
voice, code-editors, tooling
Integrations: From Simple Data Transfer to Modern Composable Architectures (edo/sma)338
architecture, web-services, apis, rest, graphql, webhooks, headless, content-management
Internet of Agents337
web, agent-experience, ai
Live CSS Colors: What You Can Safely Use (jar/van)336
css, colors, functions
Oracle Justified Its JavaScript Trademark With Node.js—Now It Wants That Ignored (tin/den)335
oracle, javascript, nodejs, deno, legal
Reasons Not to Refactor (tho)334
technical-debt, refactoring, processes, prioritization
The End of Programming as We Know It (tim/ore)333
programming, processes, ai, career, history, outlooks
Tutorial: Publishing ESM-Based npm Packages With TypeScript (rau)332
tutorials, dependencies, npm, typescript
Understanding the Trade-Offs of Using Tailwind CSS (mon/mea)331
tailwind, presentational-html, css
Using Padding to Space an Input and Label (dar)330
html, forms, labels, spacing, css
Which VoiceOver? (aar)329
accessibility, voiceover, screen-readers, unix-like, apple
How I Use LLMs as a Staff Engineer (sea)328
ai, processes
Introducing Fusion: Write PHP Inside Vue and React Components (eri/lar)327
introductions, tooling, php, vuejs, react, components
How to Favicon in 2025: Three Files That Fit Most Needs (sit/evi)326
how-tos, images, favicons
Alt Text Accessibility: Balancing AI and Human Oversight (tec+/equ)325
podcasts, accessibility, images, multimedia, alt-text, ai, quality
Angular: The Documentary324
videos, angularjs, angular, history
How to Gif (2025 Edition) (oll)323
how-tos, images, multimedia, gif, png, webp, avif, jpeg-xl
Firefox 135 Launches With New Translation Languages, New Tab Layout, Security, and Privacy Improvements322
firefox, mozilla, browsers
10 Digital Accessibility Mistakes to Avoid321
accessibility, mistakes, alt-text, images, contrast, colors, keyboard-navigation, aria, semantics, headings, labels, forms, pop-ups, testing
AI and Accessibility: The Good, the Bad, and the Bollocks (tin/rem)320
videos, accessibility, ai