<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hands-on delivery, AI-augmented engineering on Webdex</title><link>https://webdex.co.uk/</link><description>Recent content in Hands-on delivery, AI-augmented engineering on Webdex</description><generator>Hugo</generator><language>en-GB</language><lastBuildDate>Thu, 05 Nov 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://webdex.co.uk/index.xml" rel="self" type="application/rss+xml"/><item><title>The front door</title><link>https://webdex.co.uk/blog/librechat-front-door/</link><pubDate>Thu, 05 Nov 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/blog/librechat-front-door/</guid><description>&lt;p&gt;&lt;img src="illustration.jpg" alt="Ink drawing of a panelled door beside six tall cylinders joined by pipes"&gt;&lt;/p&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;A chat application is the smallest part of a chat deployment.&lt;/p&gt;&#10;&lt;p&gt;I have written that sentence in notes three times since September, and each time it arrived from a different side. This time it was the model list. The picker offers two models, and both are named combos the router serves. The list is typed by hand into a configuration file because discovery is switched off for that endpoint. Switch it on and the app asks the router what it has; the router answers with 56 model ids — the two combos, and 54 provider models sitting behind them — and the picker stops being a short list of things this deployment is for and becomes a catalogue of everything the estate could reach. So discovery stays off, the list is curated, and it will go on naming two combos after one of them is renamed, with no warning when the day comes.&lt;/p&gt;</description></item><item><title>One endpoint, many providers</title><link>https://webdex.co.uk/blog/one-endpoint-many-providers/</link><pubDate>Thu, 29 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/blog/one-endpoint-many-providers/</guid><description>&lt;p&gt;&lt;img src="illustration.jpg" alt="Ink drawing of a gate valve with four lines fanning out to a stack of documents, a speaker, a framed picture and a magnifier"&gt;&lt;/p&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;At about 11:00 PM an editor agent declined a directory. Not the repository: a subtree, a few hundred thousand tokens of code it had already read once that day, in a session that had been going for an hour. It said the model&amp;rsquo;s context was 128,000 tokens, so it would summarise first and work from the summary.&lt;/p&gt;</description></item><item><title>A shared OpenCode configuration</title><link>https://webdex.co.uk/blog/shared-opencode-config/</link><pubDate>Wed, 28 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/blog/shared-opencode-config/</guid><description>&lt;p&gt;&lt;img src="illustration.jpg" alt="Ink drawing of a configuration block feeding a gate valve, with repository plates wired below"&gt;&lt;/p&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;A working agent setup is easy to build and hard to hand over. It accumulates in one person&amp;rsquo;s home directory: an agent prompt here, a permission rule there, a skill that encodes what the team agreed about tests. The second machine gets a copy that is already a week old, the second person gets a screenshot and a list of things to paste, and six weeks later nobody can say which version is current.&lt;/p&gt;</description></item><item><title>Evaluating RAG systems</title><link>https://webdex.co.uk/blog/evaluating-rag-systems/</link><pubDate>Tue, 27 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/blog/evaluating-rag-systems/</guid><description>&lt;p&gt;&lt;img src="illustration.jpg" alt="Ink line-art illustration: nested retrieval funnels narrowing from a ranked stack of documents toward a scaled measurement axis."&gt;&lt;/p&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;A retrieval-augmented generation system is the easiest AI feature to demo and one of the harder ones to keep honest. You point it at a corpus, ask a question the corpus answers plainly, and it answers; whoever is watching nods. The next question, from somebody who actually works with the material, comes back wrong in a way nobody notices until it matters: a fluent paragraph citing a page that says something else, an answer silently missing the one document that mattered, a confident figure assembled from two versions of the same record.&lt;/p&gt;</description></item><item><title>Availability engineering for a public-interest data platform</title><link>https://webdex.co.uk/work/public-interest-data-platform/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/work/public-interest-data-platform/</guid><description>&lt;h2 id="who-depends-on-the-data"&gt;Who depends on the data&lt;/h2&gt;&#10;&lt;p&gt;The platform publishes data that other organisations make decisions with: government departments, statistical agencies and research groups. They do not work from a local copy, and they cannot wait one out. A dataset that is unavailable is not a degraded experience — it is a figure that cannot be checked, a briefing that cannot be written, a model that cannot be run.&lt;/p&gt;&#10;&lt;p&gt;That changes the reliability conversation. On a consumer product, availability is a question of how many people notice and how annoyed they are. Here the consumers are organisations with their own deadlines, and an outage propagates: a missed update becomes a delayed publication somewhere else, with somebody else explaining it. The availability target has to be set accordingly, and it has to be something the platform is built against rather than hoped for.&lt;/p&gt;</description></item><item><title>Device-health monitoring for stadium evacuation audio</title><link>https://webdex.co.uk/work/stadium-evacuation-audio-monitoring/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/work/stadium-evacuation-audio-monitoring/</guid><description>&lt;h2 id="a-silent-speaker-is-the-failure-that-matters"&gt;A silent speaker is the failure that matters&lt;/h2&gt;&#10;&lt;p&gt;Fire alarm, evacuation sequence, and one zone that produces no sound. Nothing in the equipment reports a fault: the amplifiers are healthy, the controller issued the broadcast, the log records that it went out. The speaker that should have carried it had stopped working somewhere between the last manual test and that moment — powered down, stuck after a reboot, or held in a fault state that never cleared.&lt;/p&gt;</description></item><item><title>MCP servers in production</title><link>https://webdex.co.uk/blog/mcp-servers-in-production/</link><pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/blog/mcp-servers-in-production/</guid><description>&lt;p&gt;&lt;img src="illustration.jpg" alt="Ink drawing of a host stack, three tool-server blocks and a data store wired in a line"&gt;&lt;/p&gt;&#10;&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;The first MCP server I wrote took an afternoon: one file, a handful of functions, a client configuration pointing at a local path, and a model that could suddenly reach something real. As a demo it convinced, because the argument that a language model can call a well-described function is not a hard one to win any more.&lt;/p&gt;</description></item><item><title>Micro Mono Modu</title><link>https://webdex.co.uk/blog/micro-mono-modu/</link><pubDate>Sun, 25 Oct 2026 00:00:00 +0000</pubDate><guid>https://webdex.co.uk/blog/micro-mono-modu/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;&#10;&lt;p&gt;Software engineering is hard and volatile. As software craftspeople we adapt constantly to changing business needs and strategy. On top of that, we have our own technical needs to cater for. Beyond choosing a tech stack — which languages, frameworks, infrastructure and open-source tools to lean on — pinning down the right architecture from the get-go can be an absolute conundrum. In this post we look at the different scenarios a system passes through and how to make the best of each, as well as the decisions that might paint us into a corner too early.&lt;/p&gt;</description></item></channel></rss>