Engineering AI, a new one day conference from Web Directions
We’ve also just announced a new one day conference in Sydney (and online)–Engineering AI, taking place September 12th. Large Language Models are changing what it means to be a software engineer, and we’ll take a thoughtful look at this issue–it won’t be handwaving, fluff and ‘vibe coding’, instead experienced software engineering professionals sharing their experiences and reflecting on the challenges and opportunities this transformation presents. CFPs and registrations are open now.
CSS Day–I’m speaking and Conffab is streaming!
CSS Day 2025 is taking place in Amsterdam June 5th and 6th, and I have the privilege of speaking at that. I’ll be revisiting A Dao of Web Design, a quarter of a century after it was first published. There’s a fresh new translation of the Tao Te Ching from Ken Liu (translator of The Three Body Problem and renowned science fiction author himself) I highly recommend, and I’ll be focussing deeply on how the ideas of taoist philosophy–of adaptability, flexibility, and the dao and wei wu wei (acting without acting)–can help us better understand and work with CSS.
Now you might be thinking–”CSS Day looks great, but I’m a long way from Amsterdam”–in which case you’re in luck, because CSS Day will be live streamed, on Conffab, our streaming platform. For just €99! You can find the details, and register here. And if you are closer to Amsterdam, there are a few tickets left I believe. The lineup is simply unbelievable.
Have you ever wished you could write simple CSS to declare a color, and then have the browser figure out whether black or white should be paired with that color? Well, now you can, with contrast-color(). Here’s how it works.
Contrast color is among the top if not the number one WCAG issue sites face. contrast-color, now in Safari Technical Preview and long supported in other widely used borrowers aims to solve this. Here Jen Simmons looks at this feature, and its impact on accessibility.
Vision Language Models (VLMs) are the talk of the town. In a previous blog post (from April 2024), we talked a lot about VLMs. A major chunk was about LLaVA, the first successful and easily reproducible open-source vision language model, along with tips on how to discover, evaluate, and fine-tune open models.
Since then, so much has changed. Models have become smaller yet more powerful. We’ve seen the rise of new architectures and capabilities (reasoning, agency, long video understanding, etc.). In parallel, entirely new paradigms, such as multimodal Retrieval Augmented Generation (RAG) and multimodal agents have taken shape.
In this blog post, we’ll take a look back and unpack everything that happened with vision language models the past year. You’ll discover key changes, emerging trends, and notable developments.
Vision language models are a relatively new category of generative model that work with images as well as text. Even relatively small models that can run on consumer GPUs (and potentially even in the browser) can be surprisingly capable. This is a fantastic in-depth round up of the current state of the art.
All the evidence I see continues to suggest that good engineering discipline is not just desirable, but essential when using GenAI for coding. But that’s exactly what the vast majority of software engineers – and teams – lack.
While so much of the current focus on AI and software development is on ‘vibe coding’, software development has always been about a lot more than just code. Here Rob Bowley considers the importance of testing and generated code.
The recent releases of Claude Code and OpenAI Codex caught my attention, but not for the reasons you might expect. I was puzzled by the enthusiasm they’ve generated. These are, after all, terminal tools. In an era where graphical IDEs dominate, with tools like Cursor, Windsurf, and VSCode evolving toward ever-more seamless integrations, like ‘Design Mode’, why are we getting excited about terminal-based AI coding tools that feel like a step backwards?
There’s a stubborn disconnect between what engineering leadership thinks will make developers productive and what they actually want.
In a survey of 2,150 IT managers and developers last year, leaders listed AI as the most important technical factor in improving developer productivity and satisfaction. All while only a third of developers reported experiencing any significant AI productivity gains.
Why the gap? It’s likely that generative AI is being adopted in the wrong places. Coding assistants are primarily applied to writing code, which is precisely what developers want to spend more time doing. This tunnel-vision definition of developer productivity ignores more pressing developer frustrations.
Instead, generative AI investments should focus on the whole software development lifecycle (SDLC). And since developer happiness drives productivity, it’s crucial to gain their buy-in for any AI adoption strategy.
In this post I want to examine the newly announced “CSS Carousels” through the lens of usability and accessibility. I’ll start with a spoiler: CSS Carousels are highly experimental and they are not yet ready for production; not only because of the current lack of browser adoption for the new CSS features they use, but also because they have some major accessibility issues.
Few people know practical accessibility like Sara Soueidan. Here she considers a recently announced experimental feature, CSS Carousels from the perspective of accessibility.
Microservices Are a Tax Your Startup Probably Can’t Afford
In a startup, your survival depends on how quickly you can iterate, ship features, and deliver value to end-users. This is where the foundational architecture of your startup plays a big role; additionally, things like your tech stack and choice of programming language directly affect your team’s velocity. The wrong architecture, especially premature microservices, can substantially hurt productivity and contribute to missed goals in delivering software.
I’ve had this experience when working on greenfield projects for early-stage startups, where questionable decisions were made in terms of software architecture that led to half-finished services and brittle, over-engineered and broken local setups, and demoralized teams who struggle maintaining unnecessary complexity.
The debate about how to architect web applications will doubtless never be finished-and ‘it depends’ is going to usually be the answer–but on what? And for whom.
Great reading, every weekend.
We round up the best writing about the web and send it your way each Friday.