Your weekly reading from Web Directions
With UX Australia coming up this week and our new Engineering AI conference about three weeks away not to mention the programmes for our Developer Summit and Next and Enqueue conference being finalised (to be announced next week), we’ve not got a lot to add this week to our links below.
I hope you find these valuable, and I’m working on a number of articles I hope to publish in the coming weeks once everything else has been cleared away.
Web Platform & Browser News
Horizontal Scrolling Containers Are Not a Content Strategy
a11y accessibility Scroll UX UX

I should clarify that I am not talking about carousels. That said, because users often consider horizontal scrolling containers to be carousels, I will be talking about carousels.
Also, this post is written by a monolingual American. While I discuss localization issues, there’s no way I can get into all the nuances and challenges of recreating or translating one of these to a non-left-to-right language. This post also assumes a page that is in a left-to-right or right-to-left language.
Source: Horizontal Scrolling Containers Are Not a Content Strategy — Adrian Roselli
Carousels are a very long-standing user interaction pattern found on many sites. They’ve also long been derided as poor solutions from a user experience and accessibility perspective. More recently, it’s a pattern that has become very common in streaming service sites like Netflix where suggested videos are presented to you as a horizontal scroller. Here Adrian Roselli looks at the user experience and accessibility challenges of horizontal scrolling content. Perhaps it’s something we should reconsider for future redesigns here at Conffab as well.
A Few Things About the Anchor Element’s href You Might Not Have Known
I’ve written previously about reloading a document using only HTML but that got me thinking: What are all the values you can put in an anchor tag’s href attribute?
Source: A Few Things About the Anchor Element’s href You Might Not Have Known – Jim Nielsen’s Blog
We’re big fans of a deep dive into an area of web technology that perhaps we all think we knew all about. Here I thought I knew everything to do with href values, but discovered a new feature that we can incorporate into Conffab in the near future. Media fragments in an href allow us to target a specific part of a video or audio, and even a specific segment of video or audio. It’s not something that’s entirely widely supported, but we use our own version of this for Conffab to target specific parts of a video. We’ll explore using a standards-based approach instead. Thanks, Jim!
CSS & Frontend Development
CSS Questions
Test your CSS knowledge with 100+ questions on CSS from basic selectors to advanced topics like pseudo-classes, cascade layers, and container queries. Whether you’re a beginner or an experienced developer, there’s something here for everyone. Ready to challenge yourself?
Source: CSS Questions
How well do you know CSS? Here’s one way to find out.
JavaScript & Programming
Modern Node.js Patterns for 2025
Node.js has undergone a remarkable transformation since its early days. If you’ve been writing Node.js for several years, you’ve likely witnessed this evolution firsthand—from the callback-heavy, CommonJS-dominated landscape to today’s clean, standards-based development experience.
The changes aren’t just cosmetic; they represent a fundamental shift in how we approach server-side JavaScript development. Modern Node.js embraces web standards, reduces external dependencies, and provides a more intuitive developer experience. Let’s explore these transformations and understand why they matter for your applications in 2025.
Source: Modern Node.js Patterns for 2025
I remember the excitement when Node first arrived, well over a decade ago now. It’s something I experimented with in all kinds of ways, but hasn’t been a staple part of my development stack for a long time now. But Node has evolved significantly even in more recent years, and this detailed article will give you a sense of the state of Node in 2025 and best practices for working with it.
AI & Development Tools
Claude Code: A Highly Agentic Coding Assistant
AI Native Dev LLMs software engineering
Use Claude code to explore, develop, test, refactor, and debug codebases. Extend the capabilities of Claude Code with MCP servers such as Playwright and Figma MCP servers. Apply Claude Code best practices to three projects: exploring and developing the codebase of a RAG chatbot, refactoring a Jupyter notebook for e-commerce data and transforming it into a dashboard, and building a web app from a Figma mockup.
Source: Claude Code: A Highly Agentic Coding Assistant – DeepLearning.AI
The folks at Deep Learning AI have a free in-depth online course on working with Claude code as an agent and coding assistant. Definitely worth looking at, and the price is right.
Beyond Tool Calling: Understanding MCP’s Three Core Interaction Types
AI Engineering LLMs MCP software engineering

The Model Context Protocol (MCP) changes how AI applications connect to external data and services. While most developers have experience with tool calling, MCP offers three distinct interaction types that work together to create richer experiences: prompts, resources, and tools. Understanding these three primitives and when to use each one gives you more control over building AI-powered applications.
Source: Beyond Tool Calling: Understanding MCP’s Three Core Interaction Types – Upsun Developer Center
A fantastic, succinct overview of the core interaction patterns for MCP that goes beyond just tools. Highly recommended.
My Lethal Trifecta Talk at the Bay Area AI Security Meetup
AI LLMs MCP security software engineering
I gave a talk on Wednesday at the Bay Area AI Security Meetup about prompt injection, the lethal trifecta and the challenges of securing systems that use MCP. It wasn’t recorded but I’ve created an annotated presentation with my slides and detailed notes on everything I talked about.
Source: My Lethal Trifecta Talk at the Bay Area AI Security Meetup
MCP is all the rage in software development with AI at the moment. But real concerns exist in terms of security. Here Simon Willison looks at what he calls the lethal trifecta for developing with MCPs. He outlines the security challenges for the technology and looks at ways to mitigate these issues.
No, AI is not Making Engineers 10x as Productive
A few months ago I went through a bit of a mental slump. I’ve always been confident of my abilities as an engineer, but I couldn’t help but feel like my skills were falling hopelessly behind as I scrolled places like LinkedIn and Twitter. If these sources were to be believed, engineering had moved on from the medieval practice of typing code into an editor. Real engineers were now 10-100x more productive than I was. I’m writing this hoping to help others who are feeling similar anxieties.
Source: No, AI is not Making Engineers 10x as Productive
It’s fair to say we’re reasonably positive about the impact of large language models on software engineering. But that’s not to say we don’t think there isn’t a lot of ludicrous hype around the uses of these technologies as well. As we’ve recently quoted Cal Newport: “No one knows anything.” Which probably slightly overstates the case. But it’s certainly true that we’re still very much stumbling around, working out how best to work with these technologies. Here’s a more skeptical take on some of the more overblown claims about how much more productive generative AI might be making developers. It’s detailed and thoughtful, and I think we need more of that when it comes to this whole area of practice.
In the Future All Food Will Be Cooked in a Microwave

As a restaurant owner – I’m astounded at the rate of progress since microwaves were released a few short years ago. Today’s microwave can cook a frozen burrito. Tomorrow’s microwave will be able to cook an entire Thanksgiving Dinner. Ten years from now a microwave may even be able to run the country.
Source: In the Future All Food Will Be Cooked in a Microwave – Random Thoughts
Yes, we are generally positive about the use of generative AI, particularly when it comes to software engineering. But it doesn’t mean we didn’t get a good chuckle out of this piece of satire. I think it does fairly skewer at least some of the boosters of this technology. I also think it makes a more subtle point. I’m sure that in the 1950s people did think this about microwaves. And yet, there are few homes in the developed world today that don’t have microwaves. They’re just not used for cooking everything. They’re used for specific tasks when they are very convenient. And I can say that as someone who currently does not have a microwave and certainly from time to time wishes that they did.
The AI Manifesto: Using AI Responsibly in Development and Collaboration
AI seems to give us superpowers. But as with any powerful tool, we need principles to guide us. This manifesto sets 5 principles for using AI tools like LLMs responsibly and effectively. It emphasizes the importance of human insight, accountability, and learning in the age of AI. This manifest is inspired by the rules, that Daniel Roe shared in his post “Using AI in open source”.
Source: The Manifest Using AI responsibly in Development and Collaboration
A thoughtful and well-articulated set of principles or considerations for when working with large language models.
Design Systems & Development Process
How to Build an AI Design System
For over a decade, design systems have shaped how digital teams collaborate. They provide the scaffolding behind every scalable interface, unify branding, ensure accessibility, and bridge the gap between designers and developers. But as we shift into a new era driven by AI, something is becoming clear: most design systems are not yet built for machines to reason with.
In this article, I want to describe what an AI design system can look like, not as a trend or abstract concept, but as a structured, achievable reality. I’ll share the approach I’ve defined, how it connects AI coding tools like Cursor and with MCP (Model Context Protocol), and why this shift is less about replacing humans and more about enabling smarter, more fluid collaboration.
Source: How to build an AI design system | by Pierre Bremell | Medium
We think of design systems as ways in which people can communicate with other people. But it turns out well-structured canonical sources of information also work well when instructing large language models. Here Pierre Bremell explores how we can make design systems that are mindful of the way in which large language models work.
What Is Design Debt Really Costing Your Team?

In the growing world of digital products, everyone talks or knows about “Technical debt”, these shortcuts in code that eventually demand payment with interest. But there’s a lesser-known cousin that often silently accumulates, leading to significant future costs: “Design debt”. If your product feels like a patchwork quilt with inconsistent UI, poor information architecture, unclear copy, and fractured UX, it’s likely plagued with design debt.
Source: What Is Design Debt Really Costing Your Team? | by Mohammed Zabeeh Ur Rahman
We’ve covered tech debt quite a bit at Conffab and at our conferences, and recently we linked to an article on leadership debt. But what about design debt? Mohammed Zabeeh Ur Rahman considers this more.
Taste is a Dead End; What You Should Have is a Point of View
By justifying decisions on the basis of taste, designers are throwing away the influence they need for preventing low-value feature bloat
Source: Taste is a dead end; what you should have is a point of view
We’ve linked to quite a few articles on taste in the last year or so here, and this idea that the development of taste and the importance of taste in an era of AI has gained some traction, particularly in the design world. Pavel Samsonov argues that it’s in fact a point of view that designers need to develop in order to influence the direction of product development within their organizations.
Architecture & Modern Development
A Progressive Complexity Manifesto
architecture Island Architecture SPA
THE GREAT DECEPTION: STATIC VS. SPA
The industry sold us a lie. They said our choices were:
Static HTML: “Dead” pages with no interaction
Full SPA: “Modern” apps with endless complexity
This is a false binary that limits our options.Between these extremes lies a vast continent of possibility that’s been overlooked. Interactive, dynamic, server-rendered applications that ship fast, perform well, and stay maintainable. This isn’t the distant past; this is the future we can build today.
Great reading, every weekend.
We round up the best writing about the web and send it your way each Friday.