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 respect and accountability. Hide

Frontend Dogma

News and Tools for Web Developers, 1990s to Now (6)

→ Stay up-to-date on all topics by various RSS feeds (main feed with exclusive news: only $1/month), on Mastodon, and on Bluesky

Entry (Sources) and TopicsDate#
“text-decoration-inset” Is Like Padding for Text Decorations (dxn/css)21376
css
Did You Know Some ARIA Roles Remove Child Semantics? (rus)21375
html, aria, semantics, accessibility
Testing Methods: Error Identification (dec)21374
accessibility, testing, wcag, errors, link-lists
Insights From 100 Site Speed Reviews in 2025 (per)21373
performance, retrospectives
Styling by Language: Using the “lang” Attribute for Multilingual Design (mat)21372
html, internationalization, css
The Many Lives of the Page Title (kat/mat)21371
html, user-experience, accessibility, wcag
Optimizing CLS for Infinite Scroll and Load More (ver/per)21370
performance, web-vitals, scrolling, optimization
8 PostgreSQL Tricks (kem)21369
postgresql, databases, tips-and-tricks
Testing Methods: Consistent Help (dec)21368
accessibility, testing, wcag, consistency
Introducing CSS Grid Lanes (fan+/web)21367
introductions, css, masonry, layout
Top 3 Qodana 2025.3 Release Highlights (jet)21366
qodana
Design Wrapped 202521365
design, retrospectives
Tech Talk: Improving Window Resize Behavior (ele)21364
electron, resizing, debugging, case-studies
Accessibility Is Personal (css)21363
accessibility, html
The Anatomy of an Accessible Text Field (ink)21362
forms, accessibility, html, labels
Early Signs of EAA Enforcement Across Europe (deq)21361
accessibility, eaa, legal, compliance
Testing Methods: Change on Request (dec)21360
accessibility, testing, wcag, link-lists
Masonry Layout Is Now Grid-Lanes (sun/css)21359
css, layout, masonry
5 Terminal Commands That Saved Me Hours of Clicking21358
command-line, productivity
Targeting by Reference in the Shadow DOM (mey)21357
shadow-dom, html, javascript
Semantics Beyond the Tag Name (kno/mat)21356
html, attributes, aria, semantics, accessibility
A Short History of Performance Engineering (per)21355
performance, history
A Decade of Accessibility Weekly (dav)21354
accessibility, retrospectives
Understanding Don Norman’s Principles of Interaction21353
design, interaction-design, usability
Open-Source Funding: Do We Need a “No Maintenance” Month? (j9t)21352
foss, economics, community
Web UX: Study Guide (nng)21351
guides, user-experience, usability, training, link-lists
The Anatomy of LCP—a Deep Dive Into Sub-Parts (per)21350
deep-dives, performance, web-vitals, tooling
Forms Are a Badly Designed Part of HTML (jen/mat)21349
html, forms, standards
4 AI-Powered, No-Code Tools to Speed Up Your Frontend Workflow in 2026 (ele/des)21348
guest-posts, ai, low-and-no-code, tooling, productivity
You Can’t Opt-Out of Accessibility (val)21347
accessibility, design, legal
How “aria-labelledby” Really Works (rus)21346
accessibility, aria, attributes, html
Testing Methods: Consistent Navigation (dec)21345
accessibility, testing, wcag, navigation, consistency
3 Color Contrast Mistakes Designers Still Make21344
contrast, colors, images, wcag, accessibility, mistakes
Beyond Components: From Design System to Design Language System21343
design-systems, components, link-lists
Directional CSS With “scroll-state(scrolled)” (una)21342
css, functions, scrolling
Warp Speed to Accessibility: Fast-Tracking Inclusive Testing (a11)21341
videos, accessibility, testing
Dialog View Transitions (med)21340
modals, javascript, view-transitions
Your Post Is Cool, but Is It Accessible and Inclusive? (a11)21339
videos, accessibility
The Rise of the Invisible Designer (web)21338
design
What Continuous Improvement Model Is Best for Accessibility?21337
accessibility, processes
Don’t Leave the Screen Reader Hungry (ger/mat)21336
html, emoji, screen-readers, accessibility
The Old Ways Are the Best: 100 Lighthouse, 0 ms TBT, 32 ms Queries (per)21335
performance, case-studies
AI and Productivity: Year-In-Review With Microsoft, Google, and GitHub Researchers (lau)21334
ai, productivity, retrospectives
New to the Web Platform in December21333
release-notes, web-platform, browsers, firefox, chrome, safari
Does Chrome Get the “<header>” Element Wrong? (rus)21332
html, aria, chrome, browsers
CSS Layout: How to “Center a Div,” the Old School Way21331
css, layout, floats, centering, techniques, how-tos
Testing Methods: On Input (dec)21330
accessibility, testing, wcag, forms, events, link-lists
The JavaScript Bundler Grand Prix (kat/red)21329
javascript, bundling, tooling, vite, rspack, turbopack, bun, rolldown, browserify, webpack, rollup, parcel, esbuild, history
Responsive and Fluid Typography With Baseline CSS Features (mia)21328
css, typography, responsive-design
German Auditors Reject Accessibility Overlays in EAA Context21327
accessibility, auditing, overlays, legal, eaa
Different Page Transitions for Different Circumstances (chr/fro)21326
css, javascript, view-transitions, animations
Why We Should Stop Talking Performance Metrics to Business Leaders (san/per)21325
performance, metrics, communication, business-relations
Giving Pages a Clear Shape by Using Headings (mat)21324
html, headings
Mozilla’s Next Chapter: Building the World’s Most Trusted Software Company (moz)21323
mozilla, firefox, browsers, ai
State of HTML 2025 [Results] (sac/dev)21322
surveys, metrics, html
Throttle Individual Network Requests (dev)21321
performance, chrome, browsers, dev-tools
Ripple: A New TypeScript-First Front-End Framework21320
frameworks, typescript, ripple
Testing Methods: On Focus (dec)21319
accessibility, testing, wcag, forms, focus, keyboard-navigation
Responsive List of Avatars Using Modern CSS (css/css)21318
css, masking, responsive-design
Them’s the Breaks (tyl/mat)21317
html
I Ported JustHTML From Python to JavaScript With Codex CLI and GPT-5.2 in 4.5 Hours (sim)21316
migrating, ai, python, javascript, tooling, parsing, html
Accessibility as a Core Requirement (mha)21315
accessibility, prioritization
What Does “Hidden” Actually Mean in Accessible Name Computation? (rus)21314
accessibility, naming, hiding
Testing Methods: Pronunciation (dec)21313
accessibility, testing, wcag, pronunciation, screen-readers
A Tale of Two Animations—the Compositor in the Skies (per)21312
animations, css, performance
The “<time>” Element Should Actually Do Something (nol)21311
html, time, semantics
The Wonderful World of Web Feeds (mau/mat)21310
syndication, rss, atom, json
Why We Teach Our Students Progressive Enhancement (cyd)21309
progressive-enhancement, html, css, javascript, training
How to Load CSS (Fast) (per)21308
how-tos, css, performance, critical-path
Automate Your Testing Workflows Using BrowserStack’s AI Agents (zor/css)21307
videos, testing, automation, browsers
Testing Methods: Reading Level (dec)21306
accessibility, testing, wcag, link-lists
Accessibility Is a Human Right, Cruelty a Human Wrong (zel)21305
accessibility, fonts
Changes in the World of HTML Minifiers (apo)21304
html, tooling, minification, html-minifier
Hell Is Other People’s Markup (llo/mat)21303
html, auditing, tooling
WebKit Features for Safari 26.2 (met+/web)21302
release-notes, webkit, safari, browsers
Chrome DevTools Elements Panel Tips and Tricks (zor/css)21301
videos, dev-tools, chrome, browsers, tips-and-tricks
Using the Browser Console for Accessibility Testing (rus)21300
accessibility, testing, console, javascript, examples
Improving Cumulative Layout Shift in WordPress21299
wordpress, web-vitals, performance, optimization, cheat-sheets
New Front-End Framework Ripple Blends React and Svelte Together (inf)21298
frameworks, ripple
The Design System of the Christmas Factory21297
design-systems, accessibility, processes
Testing Methods: Abbreviations (dec)21296
accessibility, testing, wcag, content, link-lists
A11y Considerations in Math on the Web (man/mat)21295
accessibility, mathml, screen-readers, nvda, voiceover, support
The Ultimate Guide to UI Design in 2026 (web)21294
guides, design, user-experience, simplicity, consistency, hierarchy, accessibility
The Vibe Coding Paradox (jun)21293
programming, vibe-coding, ai
Intro to Performance of React Server Components (ade/per)21292
introductions, performance, react, components, server-side-rendering
Eleventy Core Dependency Watch (2025 Edition) (zac/11t)21291
eleventy
What Else Could Container Queries… Query? (dxn/css)21290
css, container-queries
The New “clamp()” Function in PHP 8.6 (ami)21289
php, functions
How Does Chrome DevTools Network Throttling Actually Work? (deb)21288
videos, dev-tools, chrome, browsers, network
JetBrains Junie: AI Coding Without the Chaos (mik)21287
junie, jetbrains, ai
Vote for the Web Features You Want to See (rvi)21286
web-platform, standards, support
Why Are My View Transitions Blinking? (pic)21285
css, view-transitions
Accessibility Updates (w3c)21284
videos, accessibility, wcag, standards
How HTML Changes in EPUB (rob/mat)21283
epub, html, standards
Testing Methods: Unusual Words (dec)21282
accessibility, testing, wcag, content, link-lists
Thoughts on Native CSS Mixins (chr/fro)21281
css, mixins
Denial of Service and Source Code Exposure in React Server Components (rea)21280
react, components, security
HTML Minifier Next: Presets, New Config Options, Minification Sharing, and Type Definitions (j9t)21279
release-notes, html-minifier
The “Two-Brain” Advantage: Why You Should Never Trust Just One AI (owe/pro)21278
ai, processes, quality
How We Automate Accessibility Testing With Playwright and Axe (boj)21277
accessibility, testing, automation, playwright, axe
Common Misconceptions About WCAG (tet)21276
accessibility, wcag, standards
Useful Patterns for Building HTML Tools (sim)21275
html, ai, tooling
Testing Methods: Language of Parts (dec)21274
accessibility, testing, wcag, internationalization
React 19.2: Further Advances INP Optimization (per)21273
react, web-vitals, performance, optimization
A11y Freedom Beaver (ste/mat)21272
accessibility, aria, html
Creating Scroll-Based Animations in Full view() (pre/css)21271
css, animations, scrolling, functions
Anthropic Donates the MCP Protocol to the Agentic AI Foundation21270
anthropic, mcp, protocols, foss, ai
The Slow Death of Magic21269
product-management, simplicity
Making Complex Web Apps Faster (pat)21268
performance, web-apps, apis, time, complexity
Frontend News #19: CSS “overscroll-behavior”, “scrollbar-gutter”, “text-grow” Properties, and More (zor/css)21267
videos, css, scrolling
Why RSS Matters (wer)21266
rss, syndication, social-media
“aria-busy” Is Not Your Friend (ger)21265
accessibility, aria, nvda, jaws, voiceover, screen-readers
Testing Methods: Language of Page (dec)21264
accessibility, testing, wcag, internationalization
Meeting WCAG Is an Achievement (yat)21263
accessibility, wcag, compliance
Why Every Conference Needs a Nursing Room (bla)21262
community, dei
The Inconvenient Truth: How Web Performance Case Studies Undermine Our Relationship With Business (mac/per)21261
performance, metrics, economics
Discover Dialog (sar/mat)21260
html, modals, javascript, css
Thursday, December 18, 2025 Security Releases (nod)21259
release-notes, nodejs, security
Did You Know Your Browser Has Two Accessibility Trees? (rus)21258
accessibility, browsers, chrome, blink
CSS Wrapped 2025 (una)21257
css, standards, retrospectives
Type-Aware Linting Alpha (cam/bos)21256
linting, tooling, oxc
Comparing HTML Minifiers (j9t)21255
html, minification, tooling, html-minifier, htmlnano, metrics, comparisons
Why Federated Design Systems Keep Failing (sha)21254
design-systems, collaboration
Design Accessible Animation and Movement With Code Examples (pop)21253
design, accessibility, animations, css, javascript, examples
Getting a Close Button to Hang Off of a Dialog (dar)21252
modals, buttons, css, anchor-positioning
Blogging Is Dead. Long Live the Blog. (web)21251
blogging, seo, ai, social-media, web
What’s Wrong With This HTML, and Is It Valid? (pat/mat)21250
html, standards, conformance, web-platform
The Anatomy of a Web Performance Report (web/per)21249
performance, documentation, web-vitals, lighthouse
That Time I Tried Explaining HTML and CSS to My 5-Year Old Niece (css)21248
html, css, learning
Web Performance 2025: The Shift From Optimization to Prediction (fab/per)21247
performance, optimization, retrospectives
Testing Methods: Dragging Movements (dec)21246
accessibility, testing, wcag
Controlling Dialogs and Popovers With the Invoker Commands API (sta/mat)21245
modals, pop-overs, apis, attributes, html
The Sensations of Building Software With LLMs21244
ai, comparisons
A Guide to Token-Efficient Data Prep for LLM Workloads21243
guides, ai, token-optimization, economics
Testing Methods: Concurrent Input Mechanisms (dec)21242
accessibility, testing, wcag
NoLoJS: Reducing the JS Workload With HTML and CSS (aar/per)21241
html, disclosure-widgets, forms, modals, pop-overs, navigation, scrolling, positioning
Accessible by Design: The Role of the “lang” Attribute (col/mat)21240
accessibility, internationalization, html, attributes, metrics
2025 in Review: What’s New in Web Performance? (mat/deb)21239
performance, web-vitals, lighthouse, apis, speculation, chrome, firefox, browsers, dev-tools, tooling, testing, mcp, ai, retrospectives, outlooks
What Are DOM Mutations? (rus)21238
accessibility, dom, javascript
Dealbreaker Bugs in Native Popovers (mat)21237
accessibility, pop-overs, bugs
Lies, Damned Lies, and Design System Adoption Statistics (ikn)21236
design-systems
How We’re Protecting Our Newsroom From npm Supply Chain Attacks (rya/pnp)21235
npm, dependencies, security, case-studies
Testing Methods: Target Size (Enhanced) (dec)21234
accessibility, testing, wcag, touch
How I Built a Form Management Platform With Angular 17 and SurveyJS21233
functionality, forms, angular, tooling
Non-Blocking Cross-Browser Image Rendering on the Canvas (mys/per)21232
canvas, javascript, images, performance
10 Usability Heuristics21231
usability, heuristics
IDREFs: What They Are and How to Use Them (kil/mat)21230
html, forms, aria, accessibility
No More Tokens—Locking Down npm Publish Workflows (zac)21229
npm, dependencies, security, processes
Why You Need Design Maturity in a Product Organisation, and How to Get It21228
design, product-management
Fast by Default (den/per)21227
performance, processes
I Studied 50+ Engineers Who Got Promoted Fast: They All Did One Thing I’d Been Ignoring21226
career, collaboration
Testing Methods: Motion Actuation (dec)21225
accessibility, testing, wcag, mobile
Standards Queues (bka)21224
standards, web-platform, collaboration
In 1995, a Netscape Employee Wrote a Hack in 10 Days That Now Runs the Internet (ben/ars)21223
netscape, javascript, history
The Web Runs on Tolerance (ede)21222
web-platform, standards, principles
Referencing HTML Elements Inside Shadow DOM (meh/mat)21221
html, shadow-dom, web-components
Getting Creative With “the Measure” (mal/css)21220
css, typography, readability
The Timing Problem in Design Systems (mur)21219
design-systems, components
End-to-End Browser and Accessibility Event Architecture (rus)21218
accessibility, browsers, event-loop, browser-engines, javascript-engines, assistive-tech
During Helene, I Just Wanted a Plain Text Website (spa)21217
content
The Downsides of “scrollbar-gutter: stable;” (and One Weird Trick) (chr/fro)21216
css, scrolling
A Little Bit Uncomfortable21215
career, learning
Solving Small Text and Contrast Issues for Large-Screen Readability (a11)21214
accessibility, contrast, readability, typography
Common Misconceptions About Disability (tet)21213
accessibility, concepts
Public Design Systems Are Worth It (pjo)21212
design-systems
TypeScript Strictness Is Non-Monotonic: Strict-Null-Checks and No-Implicit-Any Interact (huo)21211
typescript, arrays
Intopia Launches Assistive Technology Survey 2025 (int)21210
surveys, assistive-tech
Speculation Rules Improvements (tun/mat)21209
performance, speculation, apis
Testing Methods: Label in Name (dec)21208
accessibility, testing, wcag, labels, aria
HTML Semantics: The Short Descriptions of All 113 Elements (j9t)21207
html, semantics, overviews
Critical Security Vulnerability in React Server Components (rea)21206
react, components, security
[Next.js] Security Advisory: CVE-2025-66478 (seb)21205
nextjs, security
Get the Core Right and the Resilient Code Will Follow (bel/btc)21204
videos, resilience, design, communication
Web Backstories: Shadow DOM (ada+/iga)21203
podcasts, interviews, shadow-dom, web-components, standards, history
How Does Amazon’s Kiro Differ From Traditional IDEs? (ele/des)21202
guest-posts, kiro, code-editors
Understanding “aria-live” Timing: A Two-Layer Model (rus)21201
accessibility, aria, live-regions, notifications
Designing Decisions: Behavioral Psychology That Moves Users21200
design, interaction-design, user-experience
A Pragmatic Guide to Modern CSS Colours II (kev/pic)21199
guides, css, colors, examples
From Reactive to Proactive: Building a Sustainable Accessibility Program (equ)21198
accessibility, processes, culture, w3c
Scrollytelling on Steroids With Scroll-State Queries (css)21197
css, scrolling
Masonry: Things You Won’t Need a Library for Anymore (pat/sma)21196
css, masonry, layout, examples, web-platform
Exploring Large HTML Documents on the Web (per)21195
performance, html, metrics
Progress on TypeScript 7—December 2025 (dan/typ)21194
typescript
You Can’t Make Something Accessible to Everyone (aar)21193
accessibility, design
Testing Methods: Pointer Cancellation (dec)21192
accessibility, testing, wcag
Using the Ancient Evils for Debugging (bol/mat)21191
html, debugging
The Nuances of JavaScript Typing Using JSDoc (jar/van)21190
javascript, jsdoc, typescript, developer-experience
Bun Is Joining Anthropic (jar/bun)21189
bun, anthropic
Decreasing [Let’s Encrypt] Certificate Lifetimes to 45 Days (mat/let)21188
http, security, certificates, lets-encrypt
Anchor Positioning and the Inset-Modified Containing Block (IMCB) (bra)21187
css, anchor-positioning, concepts
What Sam Altman Just Taught Us About OKRs (Without Meaning To) (cwo)21186
okr, prioritization, processes, openai
The Practical Guide to LLM Cost Optimization21185
guides, ai, token-optimization, economics
Building Agentic Design Systems: The Future of AI-Enhanced Design21184
design-systems, design, ai, processes
The Next Revolution in Design: Emotional Accessibility (fas)21183
design, accessibility, outlooks
“Sloppy” Code and Accessibility Issues: The Trouble With Trump’s Silicon Valley-Inspired Web Design Project (not)21182
design, accessibility, quality, case-studies
Non-Square Image Blur Extensions (ana/fro)21181
images, css, effects
The Evolution of Web Development: From Static Pages to AI-Driven Experiences (web)21180
history, web, web-2.0, web-apps, ai
Improve TTFB and UX With HTTP Streaming (mb2/per)21179
performance, user-experience, http, streaming, optimization
React Has Changed, Your Hooks Should Too21178
react, hooks
Top Layer Troubles: Popover vs. Dialog (5t3/mat)21177
css, positioning, pop-overs, modals
Nobody Writes Clean Code—We All Just Pretend21176
quality, craft
Testing Methods: Pointer Gestures (dec)21175
accessibility, wcag, testing
Prevent a Page From Scrolling While a Dialog Is Open (geo/css)21174
scrolling, css
Web Design / Dev Advent Calendars for 2025 (aar)21173
link-lists, learning
Is Using Command Line AI an Option for Helping You Code?21172
ai, command-line, cursor, claude, code-editors
Can You Make Toast Messages Accessible? (ada)21171
accessibility, notifications
Testing Methods: Focus Appearance (dec)21170
accessibility, testing, wcag, focus, keyboard-navigation, link-lists
How to Unit Test a Vue Composable With TypeScript (joh)21169
how-tos, testing, vuejs, functions, typescript
Using CSS to Fix the Irradiation Illusion (arg)21168
css, readability, fonts
The Junior Hiring Crisis (ann/peo)21167
hiring, engineering-management, career, community
How Modern Browsers Work (add)21166
browsers, chromium, network, parsing, painting, rendering, javascript-engines, v8, memory, modules, javascript, html, css
Testing Methods: Focus Not Obscured (Enhanced) (dec)21165
accessibility, testing, wcag, focus, keyboard-navigation
How Fast Can Browsers Process Base64 Data? (lem)21164
performance, encoding, base64, browsers, metrics, comparisons
How Good Engineers Write Bad Code at Big Companies (sea)21163
quality, career, culture
The Era of Personal Software21162
programming, ai
CSS-in-JS: The Great Betrayal of Frontend Sanity21161
css-in-js, css, javascript, performance, developer-experience
How Microfrontends Work: 3 Integration Strategies21160
micro-frontends, strategies, routing, iframes, javascript, ai
EAA Deadlines, Why You Probably Can’t Wait Another 5 Years21159
accessibility, eaa, legal, compliance
Category Theory for JavaScript/TypeScript Developers (ibr)21158
javascript, typescript, programming, craft
Who Wins When We Filter the Open Web Through an Opaque System? (hdv)21157
open-web
Web Application Architecture: The Enterprise Framework Powering Modern Digital Experiences (elu)21156
architecture, web-apps
Testing Methods: Focus Not Obscured (Minimum) (dec)21155
accessibility, testing, wcag, focus, keyboard-navigation
Understanding ECDSA [Elliptic Curve Digital Signature Algorithm]21154
cryptography, algorithms, math
Eleventy: How to Set Up Effective HTML Minification (in 24 Seconds) (j9t)21153
how-tos, eleventy, html, html-minifier, minification, optimization
One CSS Trick to Eliminate Scrollbar Layout Shifts (ami)21152
css, scrolling, tips-and-tricks
How to Create an Adaptive SVG Favicon Using the “prefers-color-scheme” Media Query (zor/css)21151
videos, how-tos, favicons, svg, css, images
The Idiot Sandwich—on Embedding Alt Text (ede)21150
images, alt-text, accessibility
5 Reasons Why WCAG AA Compliance Does Not Mean Your Website Is Accessible (cra)21149
accessibility, wcag, compliance, colors, readability, performance, content, multimedia, quality
AI for Good Accessibility (ala)21148
slides, ai, accessibility
The Accessibility Problem With Authentication Methods Like CAPTCHA (sma)21147
accessibility, captcha
Testing Methods: Section Headings (dec)21146
accessibility, testing, wcag, headings
New to the Web Platform in November21145
release-notes, web-platform, browsers, firefox, safari
Why Use React?21144
react, frameworks
Best of the Pod: Would You Shut Down Your Most Successful Product? the Arc to Dia Story21143
videos, the-browser-company, arc, dia, browsers, history, product-management
Ripple Over React? Evaluating the Newest JS Framework (log)21142
ripple, react, frameworks, comparisons
Saumya Majumder on How Cloudflare Outages Impact the Web and WordPress Performance Solutions (nat)21141
podcasts, interviews, cloudflare, wordpress, performance
Taking Down Next.js Servers for 0.0001 Cents a Pop21140
servers, nextjs, vulnerabilities, security
Testing Methods: Link Purpose (Link Only) (dec)21139
accessibility, testing, wcag, links, microcontent, link-lists
Accessibility and Usability: Inline Field Validation vs. Constantly Active Submit Button21138
forms, buttons, validation, accessibility, usability, comparisons
The End of Dashboards and Design Systems21137
design, design-systems
Critique21136
design, craft, collaboration, processes
What an Accessibility Conference Taught Me About Designing for All21135
design, accessibility
How to Add and Remove Items From a Native CSS Carousel (…With CSS) (dxn/fro)21134
how-tos, css, carousels, scrolling
What Are Invokers? Interactivity Without JavaScript (tol/syn)21133
videos, javascript, html, pop-overs
Migrating From GitHub to Codeberg (and/zig)21132
migrating, github, codeberg
Updating CSS Border Radius When a Container Is Overflowing (rik)21131
css, borders, overflow, scrolling
A New Navigation Paradigm21130
ai, navigation, design
Applying AI Where It Matters21129
studies, research, ai
Becoming Unblockable (sea)21128
career, prioritization, tooling, collaboration
Thoughts on Kagi’s Orion Browser vs. AI Browsers (dra)21127
orion, kagi, browsers, ai
Orion 1.0—Browse Beyond (kag)21126
browsers, orion, ai
“<dialog>” and Popover: Baseline Layered UI Patterns21125
modals, pop-overs, css
WebGPU Is Now Supported in Major Browsers21124
webgpu, browsers, support, web-platform
What Actually Makes You Senior (ter)21123
career
Animation and Carousels (web)21122
accessibility, animations, carousels, css, reduced-motion
Design Tokens Aren’t Enough—Architecture Decisions Need a Place in Your Design System (sam)21121
design-systems, design-tokens, architecture, documentation
Direction-Aware Arrow Shape Using Corner-Shape (css)21120
css, shapes
Testing Methods: Location (dec)21119
accessibility, testing, wcag, navigation
The Shai-Hulud 2.0 npm Worm: Analysis, and What You Need to Know21118
npm, security, dependencies
A Minimal CSS Starter (j9t)21117
css, templates, minimalism
Tech Predictions for 2026 and Beyond21116
outlooks, web
Design System Culture: What It Is and Why It Matters (ari/sma)21115
design-systems, culture
CSS Backgrounds Module Level 4 (fan+/w3c)21114
standards, css, backgrounds
93% Faster Next.js in (Your) Kubernetes (mco/pla)21113
nextjs, nodejs, performance, kubernetes
Web Browser Status Bars Are Nuts (lap)21112
browsers, comparisons
Brand New Layouts With CSS Subgrid (jos)21111
layout, css, grids, examples
The State of TanStack, Two Years of Full-Time OSS (tan/tan)21110
tanstack, foss
Anatomy of AI Input (ibe)21109
ai, design
GitLab Discovers Widespread npm Supply Chain Attack21108
npm, dependencies, security, gitlab, aws, gcp, azure
The Future of AWS CodeCommit21107
aws, tooling, git, outlooks
Replacing “glob-all” With “fs.promises.glob” in Node.js (cto)21106
refactoring, nodejs
How to Easily Create Modern, CSS-First Forms in WordPress (zor/css)21105
how-tos, videos, css, forms, wordpress
“light-dark()” Isn’t Always the Same as “prefers-color-scheme” (ste)21104
css, functions, dark-mode, colors
UX Is Your Moat (and You’re Ignoring It) (cwo)21103
user-experience, economics
Managing Side Effects: A JavaScript Effect System in 30 Lines or Less (ayc)21102
javascript
Introduction to CSS “if” Statements and Conditional Logic (mar)21101
introductions, css, functions, conditionals
The Performance Inequality Gap, 2026 (sli)21100
performance, javascript, metrics
Web Monetization Is Still Inching Along, but Still Too Difficult (chr/fro)21099
monetization
On Inheriting and Sharing Property Values (dxn/css)21098
css, cascade, techniques
Why Does AI Devour So Much Water? (ger)21097
ai, sustainability
Testing Methods: Focus Visible (dec)21096
accessibility, wcag, testing, focus, keyboard-navigation, link-lists
You’re Doing JavaScript Testing Wrong (cfe)21095
javascript, testing
Shuffling a CSS Grid Using Custom Properties (cod)21094
css, grids, custom-properties
WCAG 2.1 Addition—Success Criterion 1.4.10: Reflow (Level AA)21093
accessibility, wcag, standards, reflow
Testing Methods: Headings and Labels (dec)21092
accessibility, wcag, testing, headings, labels, forms
If You Think Your Commit Messages Are Bad, Just Wait…21091
commit-messages
You’re Not Building Netflix: Stop Coding Like You Are21090
programming, architecture, prioritization
AI Will Soon Deliver Code That Will Pass Automatic Testing by Default (cer)21089
ai, testing, accessibility
Testing Methods: Multiple Ways (dec)21088
accessibility, wcag, testing, navigation, sitemaps, link-lists
Web Image Formats: JPEG vs. PNG vs. WebP vs. SVG21087
images, jpeg, png, webp, svg, comparisons
Unifying [Wikipedia’s] Mobile and Desktop Domains (kri/wik)21086
wikipedia, refactoring, mobile, desktop, performance, seo, user-experience, infrastructure, case-studies, link-lists
The PHP 8.5 Pipe Operator (“|>”): Useful, but Watch for These Gotchas21085
php, operators
How Designers Gaslight Users With Microcopy (web)21084
design, microcontent, dark-patterns
WCAG 2.1 Addition—Success Criterion 1.3.5: Identify Input Purpose (Level AA)21083
accessibility, wcag, standards, forms
Keyframes Tokens: Standardizing Animation Across Projects (ami/sma)21082
css, animations, consistency
Testing Methods: Link Purpose (in Context) (dec)21081
accessibility, wcag, testing, links, microcontent
WCAG 3 Update (kno)21080
videos, accessibility, wcag, standards
Critical Thinking During the Age of AI (add)21079
ai, processes, career
The Value of Selecting Selects by Value (aar)21078
accessibility, wcag, forms
How to Create 3D Images in CSS With the Layered Pattern (sun/fro)21077
how-tos, images, 3d, css, transforms
5 Engineering Skills to Prioritize in the AI-Driven Era21076
ai, writing, architecture, debugging, communication, career
Testing Methods: Focus Order (dec)21075
accessibility, wcag, testing, focus, keyboard-navigation, link-lists
WCAG 2.1 Addition—Success Criterion 1.3.4: Orientation (Level AA)21074
accessibility, wcag, standards, mobile
Cross-Browser Anchor Positioning (mey+/odd)21073
videos, interviews, css, anchor-positioning
The Rosetta Stone of Design Engineering (yan)21072
design, processes, collaboration
Responsive Letter Spacing (tyl/clo)21071
responsive-design, typography, css
Grid: How “grid-template-areas” Offer a Visual Solution for Your Code (sar/web)21070
css, grids, layout
Should We Even Have “:closed”? (sun/css)21069
css, selectors, disclosure-widgets
The Engineer You Never Met: Why Interview Processes Systematically Reject Qualified Engineers21068
hiring, economics, case-studies
Automated Accessibility Testing for React—Tools and Best Practices You Can Use21067
accessibility, testing, react, tooling, best-practices
These Queries Cover 80% of SQL21066
sql, databases
Testing Methods: Page Titled (dec)21065
accessibility, wcag, testing, html
Good Enough Is a Strategy (tre)21064
strategies, technical-debt, quality
State of React 2025 (sac/dev)21063
surveys, react
A Guided Tour of Copenhagen (fre/ske)21062
guides, sketch
Announcing Angular v21 (mar/ang)21061
release-notes, angular
Why Web Design Must Finally Break Free From Its Graphic Design Roots (web)21060
design, print, ai, career
Using esbuild in Eleventy (db)21059
eleventy, esbuild
Anchoring to a Containing Block (kiz)21058
css, anchor-positioning
When the Dark Pattern Is a Glaring Green Checkmark21057
design, user-experience, dark-patterns
Cloudflare Outage on November 18, 2025 (eas)21056
cloudflare
Web Development: On the Size and Output of and the Growth Opportunities Within the Field (j9t)21055
guest-posts, training, career, frontend-dogma
To Be a Leader of Systems (haz)21054
leadership
The Cloudflare Outage Was a Good Thing21053
cloudflare, resilience, infrastructure
Testing Methods: Bypass Blocks (dec)21052
accessibility, wcag, testing, keyboard-navigation
Experiment: Making TypeScript Immutable-by-Default (eva)21051
experiments, typescript
WCAG 2.1 Addition—Success Criterion 2.5.4: Motion Actuation (Level A)21050
accessibility, wcag, standards
More CSS “random()” Learning Through Experiments (chr/fro)21049
css, functions, randomness, experiments
Do Not Put Your Site Behind Cloudflare if You Don’t Need To21048
cloudflare
Firefox Is Adding Support for a Feature That Users Requested Since 200421047
firefox, browsers, keyboard-shortcuts
How to Successfully Migrate Your App With an AI Agent (bla/ope)21046
how-tos, migrating, refactoring, ai
WCAG 2.1 Addition—Success Criterion 2.5.3: Label in Name (Level A)21045
accessibility, wcag, standards, labels, forms
Ethical Defaults: Why Designers Must Stop Hiding Behind Settings (web)21044
design, ethics
10 Git Tricks That Made Me a Way Better Developer21043
git, command-line, tips-and-tricks
Tooltip Components Should Not Exist (tkd)21042
tooltips, components
A11y 101: 2.4.7 Focus Visible (nat)21041
introductions, accessibility, wcag, focus, keyboard-navigation
The “Most Hated” CSS Feature: “asin()”, “acos()”, “atan()”, and “atan2()” (mon/css)21040
css, functions, math
Testing Methods: Animation From Interactions (dec)21039
accessibility, wcag, testing, animations
How to Prepare for the Future of Programming (jet)21038
how-tos, programming, learning
Automated npm Secret Rotation in GitHub Actions (mhe)21037
npm, security, automation, github-actions
Top 10 Branding Trends to Watch Out for in 2026 (des)21036
branding, design, trends, outlooks
Testing Methods: Three Flashes or Below Threshold (dec)21035
accessibility, wcag, testing
How to “Officially” Deprecate Methods With Node.js Utilities (ste)21034
how-tos, deprecation, nodejs, developer-experience
Wrangling My Email With Claude Code (jlo)21033
email, claude, ai, efficiency
Testing Methods: Timeouts (dec)21032
accessibility, wcag, testing, time
Accessible Names and Labels: Understanding What Works and What Doesn’t (tpg)21031
accessibility, labels, naming, forms
“display: masonry” Is Officially Dead (kev)21030
videos, css, masonry, layout
It Is OK to Say “CSS Variables” Instead of (or Alongside) “Custom Properties” (kiz)21029
css, variables, custom-properties, terminology
Good Visual Design, Explained (nng)21028
design, principles, quality
A Complete Guide to the HTML Number Input (oll)21027
guides, html, attributes, forms
“Technical Debt Will Bite Us in the Ass”: How to Make Non-Technical Stakeholders Actually Care21026
how-tos, technical-debt, communication, prioritization
Monotype Font Licencing Shake-Down (ame)21025
fonts, licensing
“Move Fast and Don’t Break Things”—What Four Startups Taught Me About Execution21024
design, career, product-management, engineering-management
What’s New in PHP 8.5 (bre)21023
php
Animating CSS “width” or “height” No Longer Forces a Main Thread Animation (in Chrome, Under the Right Conditions) (bra)21022
css, animations, chrome, browsers
Is Server-Side Rendering React’s Holy Grail?21021
react, server-side-rendering
A Suggestion for Your Community Terms and Policies (j9t)21020
community, collaboration, politics
What’s New in the Design Tokens Spec: From Static to Living Design Data (res/zer)21019
design-tokens, design-systems
Browserslist and Baseline (chr/fro)21018
browsers, support, web-platform, browserslist
Older Tech in the Browser Stack (sma)21017
xpath, css, techniques
Writing Is Probably the Worst Use Case of AI21016
ai, writing
Testing Methods: Re-Authenticating (dec)21015
accessibility, wcag, testing, authentication
What’s Coming in TypeScript 6/7 (dan+/typ)21014
podcasts, interviews, typescript, ecmascript, outlooks
From Tokens to Touchpoints: Powering a Successful Rebrand With Your Design System (zer)21013
design-systems, design-tokens, collaboration
The Last Couple Years in V8’s Garbage Collector (win)21012
v8, javascript-engines, garbage-collection, memory, retrospectives, javascript
The Hard Truth About Learning to Code (That No One Tells You)21011
learning, career
Do Newer AI-Native IDEs Outperform Other AI Coding Assistants? (lau)21010
ai, code-editors, efficiency, metrics, comparisons
What Developers Really Mean by “Bad Code” (jet)21009
maintainability, scalability, consistency, security, quality
How We Catch UI Bugs Early With Visual Regression Testing21008
testing, regressions, playwright, javascript
Range Syntax for Style Queries (una)21007
css, style-queries
CSS “:interest-invoker” and “:interest-target” Pseudo-Classes (tre)21006
css, selectors, forms
Testing Methods: Interruptions (dec)21005
accessibility, wcag, testing
Netflix’s Engineering Culture (ger)21004
podcasts, interviews, netflix, culture, ai
AVIF vs. JPEG vs. WebP vs. PNG21003
avif, jpeg, webp, png, images, comparisons
Firefox 147 Release Notes for Developers (mdn)21002
release-notes, firefox, browsers
Guiding the Future of Ethical Design21001
design, ethics
Why Headings Are Important in HTML: Structure, Accessibility, and SEO21000
html, headings, accessibility, seo
Programming Principles for Self Taught Front-End Developers (kil/pic)20999
programming, principles
Effectively Monitoring Web Performance (sma)20998
performance, monitoring, tooling
“::details-content”: Style Expandable Content Without Wrapper Divs (tre)20997
disclosure-widgets, css, html
Using “chrome-devtools-mcp” With Polypane (pol)20996
polypane, browsers, dev-tools, mcp, chrome, ai
Rust vs. Python: Finding the Right Balance Between Speed and Simplicity (jet)20995
rust, python, performance, simplicity, programming, comparisons
Error Chaining in JavaScript: Cleaner Debugging With “Error.cause”20994
javascript, errors, debugging
Perfectly Pointed Tooltips: To the Corners (css/fro)20993
css, tooltips
10 Smart Performance Hacks for Faster Python Code (did/jet)20992
python, performance, techniques
My CSS Selector Strategy (mal)20991
css, selectors, principles
20 Best CSS Preprocessor Tools and Comparison for 2025: Complete Guide to Active Tools20990
guides, css, tooling, preprocessors, comparisons, link-lists
Crafting Generative CSS Worlds (cod)20989
css, transforms
Testing Methods: Pause, Stop, Hide (dec)20988
accessibility, wcag, testing, multimedia, animations, link-lists
Link vs. Button: Choosing the Right Element for the Right Job (tpg)20987
html, links, buttons, accessibility, wcag, comparisons
“aria-labels” and Privacy: A Word of Caution (hom)20986
accessibility, aria, privacy
“AI” Browsers: The Price of Admission Is Too High (bru/viv)20985
ai, browsers
Headings: Semantics, Fluidity, and Styling—Oh My! (geo/css)20984
headings, html, css
Six Things I Bet You Didn’t Know You Could Do With Chrome’s DevTools20983
chrome, dev-tools, browsers
3 User-Friendly Technical Ways to Respond to Genocidistan (j9t)20982
politics, traffic, censorship, community
How to Rate-Limit Requests With nginx20981
how-tos, nginx, servers, rate-limiting
Building a Multi-Stage Timetable With Modern CSS Using Grid, Subgrid, “round()”, and “mod()” (nil)20980
css, grids, layout, functions
Testing Methods: Timing Adjustable (dec)20979
accessibility, wcag, testing, time, link-lists
Why CSS Is So Hard for Generative AIs to Understand?20978
css, ai
Frontend News #17: Why Pseudo-Elements Don’t Work With “:is()”, the Advantages of OKLCH, and More (zor/css)20977
videos, css, selectors, oklch
Testing Methods: Character Key Shortcuts (dec)20976
accessibility, wcag, testing, keyboard-shortcuts
When Everyone’s a Developer, How Do We Promote the Web Platform Over React? (ric)20975
web-platform, react, ai, link-lists
Material 3 Expressive: Building on the Failures of Flat Design20974
material-design, flat-design, design, link-lists
Slots in Design Systems (nat)20973
design-systems, figma
A Practical Guide to Flutter Accessibility: The Basics (kor)20972
guides, fundamentals, flutter, accessibility
Fix “width: 100%” Overflow Easily (zor/css)20971
videos, css, overflow
Sustainable Accessibility in Complex Organisations: Strategic Foundations (ihe/tet)20970
accessibility, leadership, dei, processes
When to Use CSS “text-wrap: balance” vs. “text-wrap: pretty” (dxn/log)20969
css, typography
Tailwind CSS Won the War… but We’re the Losers20968
tailwind, css, html, web-platform
Sustainable Accessibility in Complex Organisations: Organisational Realities (ihe/tet)20967
accessibility
Staggered Animation With CSS “sibling-*” Functions (pre/fro)20966
animations, css, functions
Smashing Animations: Magnificent SVGs With “<use>” and CSS Custom Properties (mal/sma)20965
animations, transforms, svg, css, custom-properties
Monorepo vs. Multi-Repo vs. Git Submodule vs. Git Subtree: A Complete Guide for Developers20964
guides, architecture, monorepos, git, version-control, comparisons
JavaScript Just Leveled Up: ES2025—You’ll Fall in Love With (jsd)20963
javascript, ecmascript, standards
It Ain’t Easy to Move a Side Project Off Big Tech (thi)20962
migrating, vercel, sveltekit
Is Figma in Its Accessibility Era?20961
figma, accessibility
10 Tiny UI Fixes That Make a Big Difference20960
design, forms, spacing, alignment, consistency, hierarchy, usability, best-practices
TypeScript’s Rise in the AI Era: Insights From Lead Architect, Anders Hejlsberg (aar)20959
typescript, ai
Combining Scroll-Driven Animations With “@starting-style” (bra)20958
css, scrolling, animations
Advanced Beginner’s Guide to ClojureScript (rom)20957
guides, javascript
Now Available: “On Web Development II”! (j9t)20956
books, html, css, engineering-management, maintainability, quality
100, 150, or 200? Debunking the Alt Text Character Limit20955
alt-text, accessibility, images, link-lists
A (Kind of) Farewell to the Web (joh)20954
web-platform, frameworks, ai, career
Explaining the Accessible Benefits of Using Semantic HTML Elements (geo/css)20953
html, semantics, accessibility
Six Key Components of UX Strategy (sma)20952
user-experience, strategies
Brutalism in the AI Era: Why Ugly Might Be the Only Honest Aesthetic Left (web)20951
design, aesthetics, brutalism
You Are Going to Get Priced Out of the Best AI Coding Tools (dpa)20950
ai, tooling, economics
Why Separate Guest and Logged in States Create Accessibility Barriers20949
accessibility
Introducing the OWASP Top 10:2025 (she+/owa)20948
introductions, owasp, security, vulnerabilities
Why 44% of Your Audience Might Not Understand You: An Interview With Jamila Savoy20947
interviews, content, writing, accessibility
The Web Animation Performance Tier List (cit)20946
animations, performance, javascript, css, apis
The Weird Parts of “position: sticky;” (ada/fro)20945
css, positioning
No Close Quote? (css)20944
css
How to Throttle Specific Requests in Chrome DevTools (mat/deb)20943
how-tos, dev-tools, browsers, chrome, throttling
Using Composability Over Inheritance to Scale Design Systems (ase/zer)20942
design-systems, components, inheritance, scalability
Real Performance Benchmarks of PHP 8.5 vs. PHP 8.3 and Node.js20941
performance, php, nodejs, comparisons
Why Big Tech Won’t Hire Flutter Developers (and Why You Should Care) (ala)20940
career, flutter, economics
Top 10 Essential Productivity Software for 202520939
tooling, productivity, collaboration, communication
Some Software Bloat Is OK20938
quality, technical-debt, performance
How I Use AI to Build Frontend Apps: My Candid, Messy Process (bla)20937
ai, processes, debugging, claude
The Inner Workings of JavaScript Source Maps (man/pol)20936
javascript, typescript, source-maps
Learn React Server Components (jad)20935
videos, tutorials, react, components
WebKit Features for Safari 26.1 (web)20934
release-notes, webkit, safari, browsers
What’s New in ViteLand: October 2025 Recap (man)20933
release-notes, vite, vitest, rolldown, oxc
Making a Design System That Gets Adopted (cle)20932
design-systems, case-studies
What Is Detached State in Git and How Do You Recover From It?20931
git, command-line
Dark Mode Is the New Comic Sans (and You Know It) (web)20930
dark-mode, design, accessibility
You Need to Become a Full Stack Person (loc)20929
ai, career
The Fundamentals Problem (chr)20928
fundamentals, design, prioritization
Why Most Developers Stay “Mid” Forever20927
career
“pathLength” Makes Makes SVG Path Animations Easier to Manage (ste)20926
svg, images, animations
Why We Migrated From Python to Node.js20925
migrating, python, nodejs
Grayscale Testing: The Missing Step in Color Accessibility (pop)20924
accessibility, testing, colors
The “Most Hated” CSS Feature: “tan()” (mon/css)20923
css, functions, math
Running Node.js in a Hugging Face Space (tom)20922
nodejs, hugging-face
I’ve Reviewed 500 Java Projects—Everyone Makes This Same Dumb Mistake20921
java, mistakes, strings
Why I Don’t Test Different Designs at the Same Time (ada)20920
design, testing
TL;DR: How Your Advantage Becomes Your Achilles Heel (ste)20919
product-management, ai
Top 100 Domains on Frontend Dogma (fro)20918
frontend-dogma
Reduce LLM Costs: Token Optimization Strategies (ros)20917
ai, token-optimization, economics
Global Digital Accessibility Salary Survey (web)20916
surveys, accessibility, career
AI Broke Interviews20915
ai, interviewing, hiring
It’s Almost 2026: Why Are We Still Arguing About CSS vs. Tailwind20914
tailwind, css, comparisons
12 Essential Java Best Practices Every Developer Should Follow20913
programming, java, best-practices, principles
Context Engineering for Non-Engineers (cwo)20912
ai, prompting, claude
Node.js 24 Becomes LTS: What You Need to Know (nod)20911
nodejs, nsolid
Your URL Is Your State (ahm)20910
urls, state-management
AI and Alt Text (ted+/web)20909
videos, ai, alt-text, images, accessibility
Evergreen Web Design Is a Lie (but Maybe That’s Okay) (web)20908
design, creativity
The Hidden Cost of Projects: Why Latency Kills Value20907
project-management, processes
Architectural Debt Is Not Just Technical Debt (may)20906
architecture, technical-debt
Just Use a Button (cfe)20905
html, buttons, semantics
Testing Methods: Keyboard (No Exception) (dec)20904
accessibility, testing, keyboard-navigation
Use Cases for Field Sizing (sha)20903
forms, css, examples
New to the Web Platform in October20902
release-notes, web-platform, browsers, firefox, chrome
After the AWS Outage20901
aws, cloud-computing
Comparing Interviews at 8 Large Tech Companies (ger)20900
interviewing, google, amazon, atlassian, comparisons
Self-Hosting Versus Lots of Small IndieWeb Providers20899
self-hosting, indieweb
HTML Minifier: A 12-Year Journey Building and Maintaining an Open Source Tool20898
html, minification, tooling, windows, asp-net, retrospectives
The Real Problem With AI Coding20897
ai
Developers Shouldn’t Learn Design—Designers Shouldn’t Code (phi)20896
design, programming, processes, collaboration, project-management
How to Use CSS “line-clamp” to Trim Lines of Text (dxn/log)20895
how-tos, css, typography
Removing XSLT for a More Secure Browser (dro)20894
chromium, chrome, browsers, xsl, web-platform, security
AI Frontend Generator Comparison: Claude Code vs. v0 vs. Cursor vs. Replit (hcr)20893
ai, code-editors, claude, vercel, cursor, tooling, comparisons
Blogging Gets Serious in 2001 With Warblogs and Movable Type (ric)20892
web, history, blogging, examples, movable-type
Amazon’s Return to Office Mandates Backfire (jpr)20891
amazon, aws, culture, economics
Getting Creative With Small Screens (mal/css)20890
design, responsive-design, mobile, css
The Coming War of AI Browsers: Why the Web Will Never Be the Same Again (web)20889
ai, browsers, open-web, personalization
Flutter’s Silent UI Killers20888
flutter
Arnas Donauskas on AI-Powered Troubleshooting for Websites (nat)20887
podcasts, interviews, ai, debugging, tooling
Sometimes the Best Accessibility Fix Is a Usability Fix20886
accessibility, usability
Get Started With Manual Testing (pop)20885
introductions, accessibility, testing
Node.js v22 to v24 (aug+/nod)20884
nodejs, migrating
I Built the Same App 10 Times: Evaluating Frameworks for Mobile Performance (che)20883
frameworks, mobile, performance, comparisons, nextjs, tanstack, nuxt, angular, marko, solidstart, solidjs, sveltekit, qwik, astro, htmx
Will npm’s New Security Steps Stop Attacks? (rev)20882
security, npm, maintenance, foss
HTTPS by Default (jde+)20881
http, security, chrome, browsers
ChatGPT Sez Build With Semantics First (ste)20880
chatgpt, chatgpt-atlas, ai, browsers, html, semantics, accessibility
Octoverse: A New Developer Joins GitHub Every Second as AI Leads TypeScript to #120879
github, metrics, productivity, ai, foss, security, programming
Import JavaScript Like It’s 2026 (sto)20878
javascript, performance
Mastering “URLPattern” for Cross-Platform Routing (jsd)20877
nodejs, routing