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

“2025” News Archive

Definition, related topics, and tag feed

“2025” × ? · “2025” RSS feed (per email)

Entry (Sources) and Additional TopicsDate#
8 Predictions for 2026: What Comes Next in AI? (phi)3342
ai, outlooks
Testing Methods: Status Messages (dec)3341
accessibility, testing, wcag, notifications, link-lists
Touch Targets and Web Accessibility3340
accessibility, touch
From Theory to Tiny: Implementing Compression Dictionaries (rya/per)3339
performance, compression, content-delivery
The Curious Case of the Shallow Session SPAs (sli/per)3338
performance, single-page-apps, javascript, frameworks, metrics
Building the Brain of Your Accessibility AI (ted)3337
accessibility, ai
More Efficiency, More Demand3336
efficiency, ai, career
What Happened to WebAssembly (emn)3335
webassembly
Teaching Agents About Performance Insights (web/per)3334
performance, ai, ai-agents
How Can You Tell What’s Allowed Inside Each HTML Element? (rus)3333
html, conformance
Chrome DevTools Features I Use All the Time (and Why You Should Too) (kee/per)3332
dev-tools, chrome, browsers, performance, accessibility, lighthouse, network, embed-code
What’s !important: Conditional View Transitions, CSS/SVG Text Effects, the Best of CSS Bluesky, and More (dxn/css)3331
css, retrospectives, link-lists
“Why Do You Code?”—a Surprisingly Hard Question3330
discussions, programming, career
7 Real Predictions for Web Design in 2026 (web)3329
design, outlooks, ai, aesthetics
Introducing Flint (jos)3328
introductions, tooling, linting
7 Steps of a Web Performance Journey (ser/per)3327
performance, processes
How to Design for (and With) Deaf People (vit/sma)3326
how-tos, design, accessibility
Testing Methods: Name, Role, Value (dec)3325
accessibility, testing, wcag, aria, link-lists
The 8 Trends That Will Define Web Development in 2026 (log)3324
trends, outlooks, ai, frameworks, tanstack, typescript, edge-computing, presentational-html
“require(esm)” in Node.js: From Experiment to Stability (joy)3323
nodejs, esm
HTML Content Categories (rus)3322
html, semantics
Why Developers Are Ditching Frameworks for Vanilla JavaScript3321
frameworks, javascript, apis, performance, micro-frontends, architecture
Top 10 NoSQL Database Platforms: Features, Pros, Cons, and Comparison3320
nosql, databases, mongodb, dynamodb, firebase, comparisons
The Final Nail in the HTML5 Document Outline Coffin (tem)3319
html, headings, accessibility
Testing Methods: Accessible Authentication (Enhanced) (dec)3318
accessibility, testing, wcag, authentication, security
How to Dynamically Install Custom Elements (hey)3317
how-tos, web-components, naming, javascript
How I Write Custom Elements With “lit-html” (fro)3316
web-components, lit
Third Parties and Single Points of Failure (pau/per)3315
performance, embed-code, metrics
pnpm in 2025 (koc/pnp)3314
pnpm, retrospectives
Opening and Closing Dialogs Without JavaScript Using HTML Invoker Commands (sch)3313
modals, html
Why AI-Generated UX Still Feels Off3312
user-experience, ai
Reliability by Design3311
design, ai, link-lists
Testing Methods: Accessible Authentication (Minimum) (dec)3310
accessibility, testing, wcag, authentication, security
The Fall of JavaScript (yeg)3309
javascript, typescript, programming
Tests for CSS Generated Content Alternative Text (rus)3308
css, generated-content, alt-text, accessibility, support, voiceover, nvda, jaws, screen-readers
Tips for Making the Performance Panel Less Overwhelming (duf/per)3307
performance, dev-tools, browsers, chrome, tips-and-tricks
You Can’t Design Software You Don’t Work On (sea)3306
software-design, architecture
Testing Methods: Redundant Entry (dec)3305
accessibility, testing, wcag, forms
Eight Quick Things to Remember When Using “aria-owns” (rus)3304
accessibility, aria, dom, assistive-tech
Trends That Defined JavaScript in 20253303
javascript, trends, retrospectives, react, frameworks, tooling, ai
Chrome DevTools for Debugging Web Performance (nuc/per)3302
performance, debugging, dev-tools, chrome, browsers
JavaScript Creator Warns Against “Rushed Web UX Over Native” as Windows 11 Leans Harder on WebView2 and Electron (win)3301
windows, web-apps, electron
The Most Dangerous Person on Your Team Is “Dave” (and He Just Quit) (hac)3300
collaboration, documentation, ai, prompting
Revisiting HTML Streaming for Modern Web Performance (per)3299
performance, html, streaming
Testing Methods: Error Prevention (All) (dec)3298
accessibility, testing, wcag, errors
Ruby Turns 30: A Celebration of Code, Community, and Creativity (jet)3297
ruby, ruby-on-rails, history, anniversaries
How to Stay Ahead of AI as an Early-Career Engineer (gwe/iee)3296
how-tos, career, ai
Chasing BFCache Navigations (per)3295
performance, bfcache, caching
Testing Methods: Help (dec)3294
accessibility, testing, wcag
The Cost of Consistency: Avoiding Design System Bottlenecks (omi)3293
design-systems, consistency, lessons, angular
The Three Semantics of HTML (mat)3292
html, semantics
TTFB Doesn’t Mean What You Think It Means (pro/per)3291
performance, concepts, http
Nobody Knows How Large Software Products Work (sea)3290
programming, software-design, complexity, maintainability
The AI Divide3289
ai, studies, research
Fixing the URL Params Performance Penalty (tun/per)3288
performance, urls, caching, http-headers, examples
For the Love of “<details>” (dev/mat)3287
disclosure-widgets, html
Testing Methods: Error Suggestion (dec)3286
accessibility, testing, wcag, errors, link-lists
Fixing TypeScript Performance Problems: A Case Study (vig)3285
typescript, performance, case-studies
Why Object of Arrays (SoA Pattern) Beat Interleaved Arrays: A JavaScript Performance Rabbit Hole3284
javascript, performance, arrays
Node.js in 2026 With Rafael Gonzaga (raf)3283
podcasts, interviews, nodejs, outlooks
Web Components Are the Comeback Nobody Saw Coming3282
web-components, frameworks, developer-experience
“text-decoration-inset” Is Like Padding for Text Decorations (dxn/css)3281
css
A Year of Vibes (mit)3280
ai, retrospectives, wish-lists
The HTML Elements Time Forgot (val/mat)3279
html, history
Optimizing for 75% Is Fine—Optimizing for 90% Is Where It Gets Interesting (jor/per)3278
performance, web-vitals, optimization
2026 Predictions: The Next Big Shifts in Web Accessibility (web)3277
accessibility, outlooks, ai, wcag, html
Five Accessibility Trends to Watch in 20263276
accessibility, trends
The Two Most Important Tools for HTML Developers3275
tooling, html, conformance, minification, html-minifier, htmlnano, swc
Why “role="button"” on a “<button>” Does Nothing (rus)3274
html, buttons, attributes, aria
Testing Methods: Labels or Instructions (dec)3273
accessibility, testing, wcag, labels, forms, link-lists
Styling by Language: Using the “lang” Attribute for Multilingual Design (mat)3272
html, internationalization, css
Insights From 100 Site Speed Reviews in 2025 (per)3271
performance, retrospectives
Testing Methods: Error Identification (dec)3270
accessibility, testing, wcag, errors, link-lists
Did You Know Some ARIA Roles Remove Child Semantics? (rus)3269
html, aria, semantics, accessibility
Testing Methods: Consistent Help (dec)3268
accessibility, testing, wcag, consistency
8 PostgreSQL Tricks (kem)3267
postgresql, databases, tips-and-tricks
Optimizing CLS for Infinite Scroll and Load More (ver/per)3266
performance, web-vitals, scrolling, optimization
The Many Lives of the Page Title (kat/mat)3265
html, user-experience, accessibility, wcag
A Short History of Performance Engineering (per)3264
performance, history
Semantics Beyond the Tag Name (kno/mat)3263
html, attributes, aria, semantics, accessibility
Targeting by Reference in the Shadow DOM (mey)3262
shadow-dom, html, javascript
5 Terminal Commands That Saved Me Hours of Clicking3261
command-line, productivity
Masonry Layout Is Now Grid-Lanes (sun/css)3260
css, layout, masonry
Introducing CSS Grid Lanes (jen+/web)3259
introductions, css, masonry, layout
Testing Methods: Change on Request (dec)3258
accessibility, testing, wcag, link-lists
Early Signs of EAA Enforcement Across Europe (deq)3257
accessibility, eaa, legal, compliance
The Anatomy of an Accessible Text Field (ink)3256
forms, accessibility, html, labels
Accessibility Is Personal (css)3255
accessibility, html
Tech Talk: Improving Window Resize Behavior (ele)3254
electron, resizing, debugging, case-studies
Design Wrapped 20253253
design, retrospectives
Top 3 Qodana 2025.3 Release Highlights (jet)3252
qodana
You Can’t Opt-Out of Accessibility (val)3251
accessibility, design, legal
4 AI-Powered, No-Code Tools to Speed Up Your Frontend Workflow in 2026 (ele/des)3250
guest-posts, ai, low-and-no-code, tooling, productivity
Forms Are a Badly Designed Part of HTML (jen/mat)3249
html, forms, standards
The Anatomy of LCP—a Deep Dive Into Sub-Parts (per)3248
deep-dives, performance, web-vitals, tooling
Web UX: Study Guide (nng)3247
guides, user-experience, usability, training, link-lists
Open-Source Funding: Do We Need a “No Maintenance” Month? (j9t)3246
foss, economics, community
Understanding Don Norman’s Principles of Interaction3245
design, interaction-design, usability
A Decade of Accessibility Weekly (dav)3244
accessibility, retrospectives
AI and Productivity: Year-In-Review With Microsoft, Google, and GitHub Researchers (lau)3243
ai, productivity, retrospectives
The Old Ways Are the Best: 100 Lighthouse, 0 ms TBT, 32 ms Queries (per)3242
performance, case-studies
Don’t Leave the Screen Reader Hungry (ger/mat)3241
html, emoji, screen-readers, accessibility
What Continuous Improvement Model Is Best for Accessibility?3240
accessibility, processes
The Rise of the Invisible Designer (web)3239
design
Your Post Is Cool, but Is It Accessible and Inclusive? (a11)3238
videos, accessibility
Dialog View Transitions (med)3237
modals, javascript, view-transitions
Warp Speed to Accessibility: Fast-Tracking Inclusive Testing (a11)3236
videos, accessibility, testing
Directional CSS With “scroll-state(scrolled)” (una)3235
css, functions, scrolling
Beyond Components: From Design System to Design Language System3234
design-systems, components, link-lists
3 Color Contrast Mistakes Designers Still Make3233
contrast, colors, images, wcag, accessibility, mistakes
Testing Methods: Consistent Navigation (dec)3232
accessibility, testing, wcag, navigation, consistency
How “aria-labelledby” Really Works (rus)3231
accessibility, aria, attributes, html
State of HTML 2025 [Results] (sac/dev)3230
surveys, metrics, html
Mozilla’s Next Chapter: Building the World’s Most Trusted Software Company (moz)3229
mozilla, firefox, browsers, ai
Giving Pages a Clear Shape by Using Headings (mat)3228
html, headings
Why We Should Stop Talking Performance Metrics to Business Leaders (san/per)3227
performance, metrics, communication, business-relations
Different Page Transitions for Different Circumstances (chr/fro)3226
css, javascript, view-transitions, animations
German Auditors Reject Accessibility Overlays in EAA Context3225
accessibility, auditing, overlays, legal, eaa
Responsive and Fluid Typography With Baseline CSS Features (mia)3224
css, typography, responsive-design
The JavaScript Bundler Grand Prix (kat/red)3223
javascript, bundling, tooling, vite, rspack, turbopack, bun, rolldown, browserify, webpack, rollup, parcel, esbuild, history
Testing Methods: On Input (dec)3222
accessibility, testing, wcag, forms, events, link-lists
CSS Layout: How to “Center a Div,” the Old School Way3221
css, layout, floats, centering, techniques, how-tos
Does Chrome Get the “<header>” Element Wrong? (rus)3220
html, aria, chrome, browsers
New to the Web Platform in December (rac)3219
release-notes, web-platform, browsers, firefox, chrome, safari
Accessibility as a Core Requirement (mha)3218
accessibility, prioritization
I Ported JustHTML From Python to JavaScript With Codex CLI and GPT-5.2 in 4.5 Hours (sim)3217
migrating, ai, python, javascript, tooling, parsing, html
Them’s the Breaks (tyl/mat)3216
html
Responsive List of Avatars Using Modern CSS (css/css)3215
css, masking, responsive-design
Testing Methods: On Focus (dec)3214
accessibility, testing, wcag, forms, focus, keyboard-navigation
Ripple: A New TypeScript-First Front-End Framework3213
frameworks, typescript, ripple
Throttle Individual Network Requests (dev)3212
performance, chrome, browsers, dev-tools
The Wonderful World of Web Feeds (mau/mat)3211
syndication, rss, atom, json
The “<time>” Element Should Actually Do Something (nol)3210
html, time, semantics
A Tale of Two Animations—the Compositor in the Skies (per)3209
animations, css, performance
Testing Methods: Pronunciation (dec)3208
accessibility, testing, wcag, pronunciation, screen-readers
What Does “Hidden” Actually Mean in Accessible Name Computation? (rus)3207
accessibility, naming, hiding
Hell Is Other People’s Markup (llo/mat)3206
html, auditing, tooling
Changes in the World of HTML Minifiers (apo)3205
html, tooling, minification, html-minifier
Accessibility Is a Human Right, Cruelty a Human Wrong (zel)3204
accessibility, fonts
Testing Methods: Reading Level (dec)3203
accessibility, testing, wcag, link-lists
Automate Your Testing Workflows Using BrowserStack’s AI Agents (zor/css)3202
videos, testing, automation, browsers
How to Load CSS (Fast) (per)3201
how-tos, css, performance, critical-path
Why We Teach Our Students Progressive Enhancement (cyd)3200
progressive-enhancement, html, css, javascript, training
The New “clamp()” Function in PHP 8.6 (ami)3199
php, functions
What Else Could Container Queries… Query? (dxn/css)3198
css, container-queries
Eleventy Core Dependency Watch (2025 Edition) (zac/11t)3197
eleventy
Intro to Performance of React Server Components (ade/per)3196
introductions, performance, react, components, server-side-rendering
The Vibe Coding Paradox (jun)3195
programming, vibe-coding, ai
The Ultimate Guide to UI Design in 2026 (web)3194
guides, design, user-experience, simplicity, consistency, hierarchy, accessibility
A11y Considerations in Math on the Web (man/mat)3193
accessibility, mathml, screen-readers, nvda, voiceover, support
Testing Methods: Abbreviations (dec)3192
accessibility, testing, wcag, content, link-lists
The Design System of the Christmas Factory3191
design-systems, accessibility, processes
New Front-End Framework Ripple Blends React and Svelte Together (inf)3190
frameworks, ripple
Improving Cumulative Layout Shift in WordPress3189
wordpress, web-vitals, performance, optimization, cheat-sheets
Using the Browser Console for Accessibility Testing (rus)3188
accessibility, testing, console, javascript, examples
Chrome DevTools Elements Panel Tips and Tricks (zor/css)3187
videos, dev-tools, chrome, browsers, tips-and-tricks
WebKit Features for Safari 26.2 (jen+/web)3186
release-notes, webkit, safari, browsers
HTML Minifier Next: Presets, New Config Options, Minification Sharing, and Type Definitions (j9t)3185
release-notes, html-minifier
Denial of Service and Source Code Exposure in React Server Components (rea)3184
react, components, security
Thoughts on Native CSS Mixins (chr/fro)3183
css, mixins
Testing Methods: Unusual Words (dec)3182
accessibility, testing, wcag, content, link-lists
How HTML Changes in EPUB (rob/mat)3181
epub, html, standards
Accessibility Updates (w3c)3180
videos, accessibility, wcag, standards
Why Are My View Transitions Blinking? (pic)3179
css, view-transitions
Vote for the Web Features You Want to See (rvi)3178
web-platform, standards, support
JetBrains Junie: AI Coding Without the Chaos (mik)3177
junie, jetbrains, ai
How Does Chrome DevTools Network Throttling Actually Work? (deb)3176
videos, dev-tools, chrome, browsers, network
Creating Scroll-Based Animations in Full view() (pre/css)3175
css, animations, scrolling, functions
A11y Freedom Beaver (ste/mat)3174
accessibility, aria, html
React 19.2: Further Advances INP Optimization (per)3173
react, web-vitals, performance, optimization
Testing Methods: Language of Parts (dec)3172
accessibility, testing, wcag, internationalization
Useful Patterns for Building HTML Tools (sim)3171
html, ai, tooling
Common Misconceptions About WCAG (tet)3170
accessibility, wcag, standards
How We Automate Accessibility Testing With Playwright and Axe (boj)3169
accessibility, testing, automation, playwright, axe
The “Two-Brain” Advantage: Why You Should Never Trust Just One AI (owe/pro)3168
ai, processes, quality
Discover Dialog (sar/mat)3167
html, modals, javascript, css
The Inconvenient Truth: How Web Performance Case Studies Undermine Our Relationship With Business (mac/per)3166
performance, metrics, economics
Why Every Conference Needs a Nursing Room (bla)3165
community, dei
Meeting WCAG Is an Achievement (yat)3164
accessibility, wcag, compliance
Testing Methods: Language of Page (dec)3163
accessibility, testing, wcag, internationalization
“aria-busy” Is Not Your Friend (ger)3162
accessibility, aria, nvda, jaws, voiceover, screen-readers
Why RSS Matters (wer)3161
rss, syndication, social-media
Frontend News #19: CSS “overscroll-behavior”, “scrollbar-gutter”, “text-grow” Properties, and More (zor/css)3160
videos, css, scrolling
Making Complex Web Apps Faster (pat)3159
performance, web-apps, apis, time, complexity
The Slow Death of Magic3158
product-management, simplicity
Anthropic Donates the MCP Protocol to the Agentic AI Foundation3157
anthropic, mcp, protocols, foss, ai
That Time I Tried Explaining HTML and CSS to My 5-Year Old Niece (css)3156
html, css, learning
The Anatomy of a Web Performance Report (web/per)3155
performance, documentation, web-vitals, lighthouse
What’s Wrong With This HTML, and Is It Valid? (pat/mat)3154
html, standards, conformance, web-platform
Blogging Is Dead. Long Live the Blog. (web)3153
blogging, seo, ai, social-media, web
Getting a Close Button to Hang Off of a Dialog (dar)3152
modals, buttons, css, anchor-positioning
Design Accessible Animation and Movement With Code Examples (pop)3151
design, accessibility, animations, css, javascript, examples
Why Federated Design Systems Keep Failing (sha)3150
design-systems, collaboration
Comparing HTML Minifiers (j9t)3149
html, minification, tooling, html-minifier, htmlnano, metrics, comparisons
Type-Aware Linting Alpha (cam/bos)3148
linting, tooling, oxc
CSS Wrapped 2025 (una)3147
css, standards, retrospectives
Did You Know Your Browser Has Two Accessibility Trees? (rus)3146
accessibility, browsers, chrome, blink
Thursday, December 18, 2025 Security Releases (nod)3145
release-notes, nodejs, security
Controlling Dialogs and Popovers With the Invoker Commands API (sta/mat)3144
modals, pop-overs, apis, attributes, html
Testing Methods: Dragging Movements (dec)3143
accessibility, testing, wcag
Web Performance 2025: The Shift From Optimization to Prediction (fab/per)3142
performance, optimization, retrospectives
Accessible by Design: The Role of the “lang” Attribute (col/mat)3141
accessibility, internationalization, html, attributes, metrics
NoLoJS: Reducing the JS Workload With HTML and CSS (aar/per)3140
html, disclosure-widgets, forms, modals, pop-overs, navigation, scrolling, positioning
Testing Methods: Concurrent Input Mechanisms (dec)3139
accessibility, testing, wcag
A Guide to Token-Efficient Data Prep for LLM Workloads3138
guides, ai, token-optimization, economics
The Sensations of Building Software With LLMs3137
ai, comparisons
IDREFs: What They Are and How to Use Them (kil/mat)3136
html, forms, aria, accessibility
10 Usability Heuristics3135
usability, heuristics
Non-Blocking Cross-Browser Image Rendering on the Canvas (mys/per)3134
canvas, javascript, images, performance
How I Built a Form Management Platform With Angular 17 and SurveyJS3133
functionality, forms, angular, tooling
Testing Methods: Target Size (Enhanced) (dec)3132
accessibility, testing, wcag, touch
How We’re Protecting Our Newsroom From npm Supply Chain Attacks (rya/pnp)3131
npm, dependencies, security, case-studies
Lies, Damned Lies, and Design System Adoption Statistics (ikn)3130
design-systems
Dealbreaker Bugs in Native Popovers (mat)3129
accessibility, pop-overs, bugs
What Are DOM Mutations? (rus)3128
accessibility, dom, javascript
2025 in Review: What’s New in Web Performance? (mat/deb)3127
performance, web-vitals, lighthouse, apis, speculation, chrome, firefox, browsers, dev-tools, tooling, testing, mcp, ai, retrospectives, outlooks
Getting Creative With “the Measure” (mal/css)3126
css, typography, readability
Referencing HTML Elements Inside Shadow DOM (meh/mat)3125
html, shadow-dom, web-components
The Web Runs on Tolerance (ede)3124
web-platform, standards, principles
In 1995, a Netscape Employee Wrote a Hack in 10 Days That Now Runs the Internet (ben/ars)3123
netscape, javascript, history
Standards Queues (bka)3122
standards, web-platform, collaboration
Testing Methods: Motion Actuation (dec)3121
accessibility, testing, wcag, mobile
I Studied 50+ Engineers Who Got Promoted Fast: They All Did One Thing I’d Been Ignoring3120
career, collaboration
Fast by Default (den/per)3119
performance, processes
Why You Need Design Maturity in a Product Organisation, and How to Get It3118
design, product-management
No More Tokens—Locking Down npm Publish Workflows (zac)3117
npm, dependencies, security, processes
Get the Core Right and the Resilient Code Will Follow (bel/btc)3116
videos, resilience, design, communication
[Next.js] Security Advisory: CVE-2025-66478 (seb)3115
nextjs, security
Critical Security Vulnerability in React Server Components (rea)3114
react, components, security
HTML Semantics: The Short Descriptions of All 113 Elements (j9t)3113
html, semantics, overviews
Testing Methods: Label in Name (dec)3112
accessibility, testing, wcag, labels, aria
Speculation Rules Improvements (tun/mat)3111
performance, speculation, apis
Intopia Launches Assistive Technology Survey 2025 (int)3110
surveys, assistive-tech
TypeScript Strictness Is Non-Monotonic: Strict-Null-Checks and No-Implicit-Any Interact (huo)3109
typescript, arrays
Public Design Systems Are Worth It (pjo)3108
design-systems
Common Misconceptions About Disability (tet)3107
accessibility, concepts
Solving Small Text and Contrast Issues for Large-Screen Readability (a11)3106
accessibility, contrast, readability, typography
A Little Bit Uncomfortable3105
career, learning
The Downsides of “scrollbar-gutter: stable;” (and One Weird Trick) (chr/fro)3104
css, scrolling
During Helene, I Just Wanted a Plain Text Website (spa)3103
content
End-to-End Browser and Accessibility Event Architecture (rus)3102
accessibility, browsers, event-loop, browser-engines, javascript-engines, assistive-tech
The Timing Problem in Design Systems (mur)3101
design-systems, components
What Sam Altman Just Taught Us About OKRs (Without Meaning To) (cwo)3100
okr, prioritization, processes, openai
Anchor Positioning and the Inset-Modified Containing Block (IMCB) (bra)3099
css, anchor-positioning, concepts
Decreasing [Let’s Encrypt] Certificate Lifetimes to 45 Days (mat/let)3098
http, security, certificates, lets-encrypt
Bun Is Joining Anthropic (jar/bun)3097
bun, anthropic
The Nuances of JavaScript Typing Using JSDoc (jar/van)3096
javascript, jsdoc, typescript, developer-experience
Using the Ancient Evils for Debugging (bol/mat)3095
html, debugging
Web Backstories: Shadow DOM (ada+/iga)3094
podcasts, interviews, shadow-dom, web-components, standards, history
Testing Methods: Pointer Cancellation (dec)3093
accessibility, testing, wcag
You Can’t Make Something Accessible to Everyone (aar)3092
accessibility, design
Progress on TypeScript 7—December 2025 (dan/typ)3091
typescript
Exploring Large HTML Documents on the Web (per)3090
performance, html, metrics
Masonry: Things You Won’t Need a Library for Anymore (pat/sma)3089
css, masonry, layout, examples, web-platform
Scrollytelling on Steroids With Scroll-State Queries (css)3088
css, scrolling
From Reactive to Proactive: Building a Sustainable Accessibility Program (equ)3087
accessibility, processes, culture, w3c
A Pragmatic Guide to Modern CSS Colours II (kev/pic)3086
guides, css, colors, examples
Designing Decisions: Behavioral Psychology That Moves Users3085
design, interaction-design, user-experience
Understanding “aria-live” Timing: A Two-Layer Model (rus)3084
accessibility, aria, live-regions, notifications
How Does Amazon’s Kiro Differ From Traditional IDEs? (ele/des)3083
guest-posts, kiro, code-editors
Web Design / Dev Advent Calendars for 2025 (aar)3082
link-lists, learning
Prevent a Page From Scrolling While a Dialog Is Open (geo/css)3081
scrolling, css
Testing Methods: Pointer Gestures (dec)3080
accessibility, wcag, testing
Nobody Writes Clean Code—We All Just Pretend3079
quality, craft
Top Layer Troubles: Popover vs. Dialog (5t3/mat)3078
css, positioning, pop-overs, modals
React Has Changed, Your Hooks Should Too3077
react, hooks
Improve TTFB and UX With HTTP Streaming (mb2/per)3076
performance, user-experience, http, streaming, optimization
The Evolution of Web Development: From Static Pages to AI-Driven Experiences (web)3075
history, web, web-2.0, web-apps, ai
Non-Square Image Blur Extensions (ana/fro)3074
images, css, effects
“Sloppy” Code and Accessibility Issues: The Trouble With Trump’s Silicon Valley-Inspired Web Design Project (not)3073
design, accessibility, quality, case-studies
The Next Revolution in Design: Emotional Accessibility (fas)3072
design, accessibility, outlooks
Building Agentic Design Systems: The Future of AI-Enhanced Design3071
design-systems, design, ai, processes
The Practical Guide to LLM Cost Optimization3070
guides, ai, token-optimization, economics
How to Unit Test a Vue Composable With TypeScript (joh)3069
how-tos, testing, vuejs, functions, typescript
Testing Methods: Focus Appearance (dec)3068
accessibility, testing, wcag, focus, keyboard-navigation, link-lists
Can You Make Toast Messages Accessible? (ada)3067
accessibility, notifications
Is Using Command Line AI an Option for Helping You Code?3066
ai, command-line, cursor, claude, code-editors
How Good Engineers Write Bad Code at Big Companies (sea)3065
quality, career, culture
How Fast Can Browsers Process Base64 Data? (lem)3064
performance, encoding, base64, browsers, metrics, comparisons
Testing Methods: Focus Not Obscured (Enhanced) (dec)3063
accessibility, testing, wcag, focus, keyboard-navigation
How Modern Browsers Work (add)3062
browsers, chromium, network, parsing, painting, rendering, javascript-engines, v8, memory, modules, javascript, html, css
The Junior Hiring Crisis (ann/peo)3061
hiring, engineering-management, career, community
Using CSS to Fix the Irradiation Illusion (arg)3060
css, readability, fonts
One CSS Trick to Eliminate Scrollbar Layout Shifts (ami)3059
css, scrolling, tips-and-tricks
Eleventy: How to Set Up Effective HTML Minification (in 24 Seconds) (j9t)3058
how-tos, eleventy, html, html-minifier, minification, optimization
Understanding ECDSA [Elliptic Curve Digital Signature Algorithm]3057
cryptography, algorithms, math
Testing Methods: Focus Not Obscured (Minimum) (dec)3056
accessibility, testing, wcag, focus, keyboard-navigation
Web Application Architecture: The Enterprise Framework Powering Modern Digital Experiences (elu)3055
architecture, web-apps
Who Wins When We Filter the Open Web Through an Opaque System? (hdv)3054
open-web
Category Theory for JavaScript/TypeScript Developers (ibr)3053
javascript, typescript, programming, craft
EAA Deadlines, Why You Probably Can’t Wait Another 5 Years3052
accessibility, eaa, legal, compliance
How Microfrontends Work: 3 Integration Strategies3051
micro-frontends, strategies, routing, iframes, javascript, ai
CSS-in-JS: The Great Betrayal of Frontend Sanity3050
css-in-js, css, javascript, performance, developer-experience
The Era of Personal Software3049
programming, ai
Testing Methods: Section Headings (dec)3048
accessibility, testing, wcag, headings
The Accessibility Problem With Authentication Methods Like CAPTCHA (sma)3047
accessibility, captcha
AI for Good Accessibility (ala)3046
slides, ai, accessibility
5 Reasons Why WCAG AA Compliance Does Not Mean Your Website Is Accessible (cra)3045
accessibility, wcag, compliance, colors, readability, performance, content, multimedia, quality
The Idiot Sandwich—on Embedding Alt Text (ede)3044
images, alt-text, accessibility
How to Create an Adaptive SVG Favicon Using the “prefers-color-scheme” Media Query (zor/css)3043
videos, how-tos, favicons, svg, css, images
Becoming Unblockable (sea)3042
career, prioritization, tooling, collaboration
Applying AI Where It Matters3041
studies, research, ai
A New Navigation Paradigm3040
ai, navigation, design
Updating CSS Border Radius When a Container Is Overflowing (rik)3039
css, borders, overflow, scrolling
Migrating From GitHub to Codeberg (and/zig)3038
migrating, github, codeberg
What Are Invokers? Interactivity Without JavaScript (tol/syn)3037
videos, javascript, html, pop-overs
Why Use React? (ada)3036
react, frameworks
How to Add and Remove Items From a Native CSS Carousel (…With CSS) (dxn/fro)3035
how-tos, css, carousels, scrolling
What an Accessibility Conference Taught Me About Designing for All3034
design, accessibility
Critique3033
design, craft, collaboration, processes
The End of Dashboards and Design Systems3032
design, design-systems
Accessibility and Usability: Inline Field Validation vs. Constantly Active Submit Button3031
forms, buttons, validation, accessibility, usability, comparisons
Testing Methods: Link Purpose (Link Only) (dec)3030
accessibility, testing, wcag, links, microcontent, link-lists
Taking Down Next.js Servers for 0.0001 Cents a Pop3029
servers, nextjs, vulnerabilities, security
Saumya Majumder on How Cloudflare Outages Impact the Web and WordPress Performance Solutions (nat)3028
podcasts, interviews, cloudflare, wordpress, performance
Ripple Over React? Evaluating the Newest JS Framework (log)3027
ripple, react, frameworks, comparisons
New to the Web Platform in November (rac)3026
release-notes, web-platform, browsers, firefox, safari
Best of the Pod: Would You Shut Down Your Most Successful Product? the Arc to Dia Story3025
videos, the-browser-company, arc, dia, browsers, history, product-management
Brand New Layouts With CSS Subgrid (jos)3024
layout, css, grids, examples
Web Browser Status Bars Are Nuts (lap)3023
browsers, comparisons
93% Faster Next.js in (Your) Kubernetes (mco/pla)3022
nextjs, nodejs, performance, kubernetes
CSS Backgrounds Module Level 4 (fan+/w3c)3021
standards, css, backgrounds
Design System Culture: What It Is and Why It Matters (ari/sma)3020
design-systems, culture
Tech Predictions for 2026 and Beyond3019
outlooks, web
A Minimal CSS Starter (j9t)3018
css, templates, minimalism
The Shai-Hulud 2.0 npm Worm: Analysis, and What You Need to Know3017
npm, security, dependencies
Testing Methods: Location (dec)3016
accessibility, testing, wcag, navigation
Direction-Aware Arrow Shape Using Corner-Shape (css)3015
css, shapes
Design Tokens Aren’t Enough—Architecture Decisions Need a Place in Your Design System (sam)3014
design-systems, design-tokens, architecture, documentation
Animation and Carousels (web)3013
accessibility, animations, carousels, css, reduced-motion
What Actually Makes You Senior (ter)3012
career
WebGPU Is Now Supported in Major Browsers3011
webgpu, browsers, support, web-platform
“<dialog>” and Popover: Baseline Layered UI Patterns3010
modals, pop-overs, css
Orion 1.0—Browse Beyond (kag)3009
browsers, orion, ai
Thoughts on Kagi’s Orion Browser vs. AI Browsers (dra)3008
orion, kagi, browsers, ai
Shuffling a CSS Grid Using Custom Properties (cod)3007
css, grids, custom-properties
You’re Doing JavaScript Testing Wrong (cfe)3006
javascript, testing
Testing Methods: Focus Visible (dec)3005
accessibility, wcag, testing, focus, keyboard-navigation, link-lists
Why Does AI Devour So Much Water? (ger)3004
ai, sustainability
On Inheriting and Sharing Property Values (dxn/css)3003
css, cascade, techniques
Web Monetization Is Still Inching Along, but Still Too Difficult (chr/fro)3002
monetization
The Performance Inequality Gap, 2026 (sli)3001
performance, javascript, metrics
The State of Tanstack, Two Years of Full-Time OSS (tan/tan)3000
tanstack, foss
Introduction to CSS “if” Statements and Conditional Logic (mar)2999
introductions, css, functions, conditionals
Managing Side Effects: A JavaScript Effect System in 30 Lines or Less (ayc)2998
javascript
UX Is Your Moat (and You’re Ignoring It) (cwo)2997
user-experience, economics
“light-dark()” Isn’t Always the Same as “prefers-color-scheme” (ste)2996
css, functions, dark-mode, colors
How to Easily Create Modern, CSS-First Forms in WordPress (zor/css)2995
how-tos, videos, css, forms, wordpress
Replacing “glob-all” With “fs.promises.glob” in Node.js (cto)2994
refactoring, nodejs
The Future of AWS CodeCommit2993
aws, tooling, git, outlooks
GitLab Discovers Widespread npm Supply Chain Attack2992
npm, dependencies, security, gitlab, aws, gcp, azure
Anatomy of AI Input (ibe)2991
ai, design
You’re Not Building Netflix: Stop Coding Like You Are2990
programming, architecture, prioritization
If You Think Your Commit Messages Are Bad, Just Wait…2989
commit-messages
Testing Methods: Headings and Labels (dec)2988
accessibility, wcag, testing, headings, labels, forms
WCAG 2.1 Addition—Success Criterion 1.4.10: Reflow (Level AA)2987
accessibility, wcag, standards, reflow
Testing Methods: Multiple Ways (dec)2986
accessibility, wcag, testing, navigation, sitemaps, link-lists
AI Will Soon Deliver Code That Will Pass Automatic Testing by Default (cer)2985
ai, testing, accessibility
The Value of Selecting Selects by Value (aar)2984
accessibility, wcag, forms
Critical Thinking During the Age of AI (add)2983
ai, processes, career
WCAG 3 Update (kno)2982
videos, accessibility, wcag, standards
Testing Methods: Link Purpose (in Context) (dec)2981
accessibility, wcag, testing, links, microcontent
Keyframes Tokens: Standardizing Animation Across Projects (ami/sma)2980
css, animations, consistency
WCAG 2.1 Addition—Success Criterion 1.3.5: Identify Input Purpose (Level AA)2979
accessibility, wcag, standards, forms
How Designers Gaslight Users With Microcopy (web)2978
design, microcontent, dark-patterns
The PHP 8.5 Pipe Operator (“|>”): Useful, but Watch for These Gotchas2977
php, operators
Unifying [Wikipedia’s] Mobile and Desktop Domains (kri/wik)2976
wikipedia, refactoring, mobile, desktop, performance, seo, user-experience, infrastructure, case-studies, link-lists
Should We Even Have “:closed”? (sun/css)2975
css, selectors, disclosure-widgets
Grid: How “grid-template-areas” Offer a Visual Solution for Your Code (sar/web)2974
css, grids, layout
Responsive Letter Spacing (tyl/clo)2973
responsive-design, typography, css
The Rosetta Stone of Design Engineering (yan)2972
design, processes, collaboration
Cross-Browser Anchor Positioning (mey+/odd)2971
videos, interviews, css, anchor-positioning
WCAG 2.1 Addition—Success Criterion 1.3.4: Orientation (Level AA)2970
accessibility, wcag, standards, mobile
Testing Methods: Focus Order (dec)2969
accessibility, wcag, testing, focus, keyboard-navigation, link-lists
5 Engineering Skills to Prioritize in the AI-Driven Era2968
ai, writing, architecture, debugging, communication, career
How to Create 3D Images in CSS With the Layered Pattern (sun/fro)2967
how-tos, images, 3d, css, transforms
Anchoring to a Containing Block (kiz)2966
css, anchor-positioning
Using esbuild in Eleventy (db)2965
eleventy, esbuild
Why Web Design Must Finally Break Free From Its Graphic Design Roots (web)2964
design, print, ai, career
Announcing Angular v21 (mar/ang)2963
release-notes, angular
A Guided Tour of Copenhagen (fre/ske)2962
guides, sketch
State of React 2025 (sac/dev)2961
surveys, react
Good Enough Is a Strategy (tre)2960
strategies, technical-debt, quality
Testing Methods: Page Titled (dec)2959
accessibility, wcag, testing, html
These Queries Cover 80% of SQL2958
sql, databases
Automated Accessibility Testing for React—Tools and Best Practices You Can Use2957
accessibility, testing, react, tooling, best-practices
The Engineer You Never Met: Why Interview Processes Systematically Reject Qualified Engineers2956
hiring, economics, case-studies
Do Not Put Your Site Behind Cloudflare if You Don’t Need To2955
cloudflare
More CSS “random()” Learning Through Experiments (chr/fro)2954
css, functions, randomness, experiments
WCAG 2.1 Addition—Success Criterion 2.5.4: Motion Actuation (Level A)2953
accessibility, wcag, standards
Experiment: Making TypeScript Immutable-by-Default (eva)2952
experiments, typescript
Testing Methods: Bypass Blocks (dec)2951
accessibility, wcag, testing, keyboard-navigation
The Cloudflare Outage Was a Good Thing2950
cloudflare, resilience, infrastructure
To Be a Leader of Systems (haz)2949
leadership
Web Development: On the Size and Output of and the Growth Opportunities Within the Field (j9t)2948
guest-posts, training, career, frontend-dogma
Cloudflare Outage on November 18, 2025 (eas)2947
cloudflare
When the Dark Pattern Is a Glaring Green Checkmark2946
design, user-experience, dark-patterns
How to Prepare for the Future of Programming (jet)2945
how-tos, programming, learning
Testing Methods: Animation From Interactions (dec)2944
accessibility, wcag, testing, animations
The “Most Hated” CSS Feature: “asin()”, “acos()”, “atan()”, and “atan2()” (mon/css)2943
css, functions, math
A11y 101: 2.4.7 Focus Visible (nat)2942
introductions, accessibility, wcag, focus, keyboard-navigation
Tooltip Components Should Not Exist (tkd)2941
tooltips, components
10 Git Tricks That Made Me a Way Better Developer2940
git, command-line, tips-and-tricks
Ethical Defaults: Why Designers Must Stop Hiding Behind Settings (web)2939
design, ethics
WCAG 2.1 Addition—Success Criterion 2.5.3: Label in Name (Level A)2938
accessibility, wcag, standards, labels, forms
How to Successfully Migrate Your App With an AI Agent (bla/ope)2937
how-tos, migrating, refactoring, ai
Firefox Is Adding Support for a Feature That Users Requested Since 20042936
firefox, browsers, keyboard-shortcuts
Automated npm Secret Rotation in GitHub Actions (mhe)2935
npm, security, automation, github-actions
How to “Officially” Deprecate Methods With Node.js Utilities (ste)2934
how-tos, deprecation, nodejs, developer-experience
Testing Methods: Three Flashes or Below Threshold (dec)2933
accessibility, wcag, testing
Top 10 Branding Trends to Watch Out for in 2026 (des)2932
branding, design, trends, outlooks
What’s New in PHP 8.5 (bre)2931
php
“Move Fast and Don’t Break Things”—What Four Startups Taught Me About Execution2930
design, career, product-management, engineering-management
Monotype Font Licencing Shake-Down (ame)2929
fonts, licensing
“Technical Debt Will Bite Us in the Ass”: How to Make Non-Technical Stakeholders Actually Care2928
how-tos, technical-debt, communication, prioritization
A Complete Guide to the HTML Number Input (oll)2927
guides, html, attributes, forms
Good Visual Design, Explained (nng)2926
design, principles, quality
It Is OK to Say “CSS Variables” Instead of (or Alongside) “Custom Properties” (kiz)2925
css, variables, custom-properties, terminology
“display: masonry” Is Officially Dead (kev)2924
videos, css, masonry, layout
Accessible Names and Labels: Understanding What Works and What Doesn’t (tpg)2923
accessibility, labels, naming, forms
Testing Methods: Timeouts (dec)2922
accessibility, wcag, testing, time
Wrangling My Email With Claude Code (jlo)2921
email, claude, ai, efficiency
Do Newer AI-Native IDEs Outperform Other AI Coding Assistants? (lau)2920
ai, code-editors, efficiency, metrics, comparisons
The Hard Truth About Learning to Code (That No One Tells You)2919
learning, career
The Last Couple Years in V8’s Garbage Collector (win)2918
v8, javascript-engines, garbage-collection, memory, retrospectives, javascript
From Tokens to Touchpoints: Powering a Successful Rebrand With Your Design System (zer)2917
design-systems, design-tokens, collaboration
What’s Coming in TypeScript 6/7 (dan+/typ)2916
podcasts, interviews, typescript, ecmascript, outlooks
Testing Methods: Re-Authenticating (dec)2915
accessibility, wcag, testing, authentication
Writing Is Probably the Worst Use Case of AI2914
ai, writing
Older Tech in the Browser Stack (sma)2913
xpath, css, techniques
Browserslist and Baseline (chr/fro)2912
browsers, support, web-platform, browserslist
What’s New in the Design Tokens Spec: From Static to Living Design Data (res/zer)2911
design-tokens, design-systems
A Suggestion for Your Community Terms and Policies (j9t)2910
community, collaboration, politics
Is Server-Side Rendering React’s Holy Grail?2909
react, server-side-rendering
Animating CSS “width” or “height” No Longer Forces a Main Thread Animation (in Chrome, Under the Right Conditions) (bra)2908
css, animations, chrome, browsers
Netflix’s Engineering Culture (ger)2907
podcasts, interviews, netflix, culture, ai
Testing Methods: Interruptions (dec)2906
accessibility, wcag, testing
CSS “:interest-invoker” and “:interest-target” Pseudo-Classes (tre)2905
css, selectors, forms
Range Syntax for Style Queries (una)2904
css, style-queries
How We Catch UI Bugs Early With Visual Regression Testing2903
testing, regressions, playwright, javascript
What Developers Really Mean by “Bad Code” (jet)2902
maintainability, scalability, consistency, security, quality
“::details-content”: Style Expandable Content Without Wrapper Divs (tre)2901
disclosure-widgets, css, html
Effectively Monitoring Web Performance (sma)2900
performance, monitoring, tooling
Programming Principles for Self Taught Front-End Developers (kil/pic)2899
programming, principles
Why Headings Are Important in HTML: Structure, Accessibility, and SEO2898
html, headings, accessibility, seo
Guiding the Future of Ethical Design2897
design, ethics
Firefox 147 Release Notes for Developers (mdn)2896
release-notes, firefox, browsers
Headings: Semantics, Fluidity, and Styling—Oh My! (geo/css)2895
headings, html, css
“AI” Browsers: The Price of Admission Is Too High (bru/viv)2894
ai, browsers
“aria-labels” and Privacy: A Word of Caution (hom)2893
accessibility, aria, privacy
Link vs. Button: Choosing the Right Element for the Right Job (tpg)2892
html, links, buttons, accessibility, wcag, comparisons
Testing Methods: Pause, Stop, Hide (dec)2891
accessibility, wcag, testing, multimedia, animations, link-lists
Crafting Generative CSS Worlds (cod)2890
css, transforms
20 Best CSS Preprocessor Tools and Comparison for 2025: Complete Guide to Active Tools2889
guides, css, tooling, preprocessors, comparisons, link-lists
My CSS Selector Strategy (mal)2888
css, selectors, principles
10 Smart Performance Hacks for Faster Python Code (did/jet)2887
python, performance, techniques
Perfectly Pointed Tooltips: To the Corners (css/fro)2886
css, tooltips
Error Chaining in JavaScript: Cleaner Debugging With “Error.cause”2885
javascript, errors, debugging
Rust vs. Python: Finding the Right Balance Between Speed and Simplicity (jet)2884
rust, python, performance, simplicity, programming, comparisons
Using “chrome-devtools-mcp” With Polypane (pol)2883
polypane, browsers, dev-tools, mcp, chrome, ai
Why CSS Is So Hard for Generative AIs to Understand?2882
css, ai
Testing Methods: Timing Adjustable (dec)2881
accessibility, wcag, testing, time, link-lists
Building a Multi-Stage Timetable With Modern CSS Using Grid, Subgrid, “round()”, and “mod()” (nil)2880
css, grids, layout, functions
How to Rate-Limit Requests With nginx2879
how-tos, nginx, servers, rate-limiting
3 User-Friendly Technical Ways to Respond to Genocidistan (j9t)2878
politics, traffic, censorship, community
Six Things I Bet You Didn’t Know You Could Do With Chrome’s DevTools2877
chrome, dev-tools, browsers
Testing Methods: Character Key Shortcuts (dec)2876
accessibility, wcag, testing, keyboard-shortcuts
Frontend News #17: Why Pseudo-Elements Don’t Work With “:is()”, the Advantages of OKLCH, and More (zor/css)2875
videos, css, selectors, oklch
It Ain’t Easy to Move a Side Project Off Big Tech (thi)2874
migrating, vercel, sveltekit
JavaScript Just Leveled Up: ES2025—You’ll Fall in Love With (jsd)2873
javascript, ecmascript, standards
Monorepo vs. Multi-Repo vs. Git Submodule vs. Git Subtree: A Complete Guide for Developers2872
guides, architecture, monorepos, git, version-control, comparisons
Smashing Animations: Magnificent SVGs With “<use>” and CSS Custom Properties (mal/sma)2871
animations, transforms, svg, css, custom-properties
Staggered Animation With CSS “sibling-*” Functions (pre/fro)2870
animations, css, functions
Sustainable Accessibility in Complex Organisations: Organisational Realities (ihe/tet)2869
accessibility
Tailwind CSS Won the War… but We’re the Losers2868
tailwind, css, html, web-platform
When to Use CSS “text-wrap: balance” vs. “text-wrap: pretty” (dxn/log)2867
css, typography
Sustainable Accessibility in Complex Organisations: Strategic Foundations (ihe/tet)2866
accessibility, leadership, dei, processes
Fix “width: 100%” Overflow Easily (zor/css)2865
videos, css, overflow
A Practical Guide to Flutter Accessibility: The Basics (kor)2864
guides, fundamentals, flutter, accessibility
Slots in Design Systems (nat)2863
design-systems, figma
Material 3 Expressive: Building on the Failures of Flat Design2862
material-design, flat-design, design, link-lists
When Everyone’s a Developer, How Do We Promote the Web Platform Over React? (ric)2861
web-platform, react, ai, link-lists
Explaining the Accessible Benefits of Using Semantic HTML Elements (geo/css)2860
html, semantics, accessibility
A (Kind of) Farewell to the Web (joh)2859
web-platform, frameworks, ai, career
100, 150, or 200? Debunking the Alt Text Character Limit2858
alt-text, accessibility, images, link-lists
Now Available: “On Web Development II”! (j9t)2857
books, html, css, engineering-management, maintainability, quality
Advanced Beginner’s Guide to ClojureScript (rom)2856
guides, javascript
Combining Scroll-Driven Animations With “@starting-style” (bra)2855
css, scrolling, animations
TypeScript’s Rise in the AI Era: Insights From Lead Architect, Anders Hejlsberg (aar)2854
typescript, ai
10 Tiny UI Fixes That Make a Big Difference2853
design, forms, spacing, alignment, consistency, hierarchy, usability, best-practices
Is Figma in Its Accessibility Era?2852
figma, accessibility
No Close Quote? (css)2851
css
The Weird Parts of “position: sticky;” (ada/fro)2850
css, positioning
The Web Animation Performance Tier List (cit)2849
animations, performance, javascript, css, apis
Six Key Components of UX Strategy (vit/sma)2848
user-experience, strategies
Why 44% of Your Audience Might Not Understand You: An Interview With Jamila Savoy2847
interviews, content, writing, accessibility
Introducing the OWASP Top 10:2025 (she+/owa)2846
introductions, owasp, security, vulnerabilities
Why Separate Guest and Logged in States Create Accessibility Barriers2845
accessibility
You Are Going to Get Priced Out of the Best AI Coding Tools (dpa)2844
ai, tooling, economics
Brutalism in the AI Era: Why Ugly Might Be the Only Honest Aesthetic Left (web)2843
design, aesthetics, brutalism