Web project contracts: the clauses that keep you out of disputes
On a web project, conflicts rarely start with a bug but with a disagreement over what was promised. Scope, payment, intellectual property, reversibility: the clauses that protect provider and client alike.
Back-end
CORS explained: configuring cross-origin resource sharing without the guesswork
Cross-origin resource sharing stays a stubborn source of confusion in web development. Grasping what the browser protects and which headers…
Node.js refreshes its TLS chain: NSS 3.126 roots, OpenSSL 3.5.8, and STORE-loader private keys
Node.js 24.21.0 LTS and 26.8.2 refresh their bundled NSS 3.126 root certificates and OpenSSL 3.5.8. The LTS line also gains…
Laravel 13.31 hardens cookie-based auth and makes Redis queues cluster-safe
Laravel 13.31.0, released on 8 September 2026, closes a security gap in the “remember me” cookie flow and makes Redis…
Python 3.15 locks in: lazy imports, UTF-8 by default, and a sharper JIT
Python 3.15 shipped its final release candidate on 1 September 2026, ahead of a 1 October launch. Explicit lazy imports,…
Laravel closes GitHub Issues on its packages and points bug reports to coding agents
Taylor Otwell has turned off GitHub Issues on most Laravel packages, asking users to open a pull request drafted with…
Laravel 13.30 brings vector index management to migrations
Laravel 13.30.0 and 13.30.1, released on 1 September 2026, add vector index dropping to the schema builder and an Eloquent…
AI for the web
Claude Code 2.1.271 brings fast mode to remote sessions and per-command network allowlists
Claude Code 2.1.271 extends fast mode to remote sessions in the cloud or on self-hosted runners. It also adds a…
GitHub Copilot brings GPT-6 Astra to paid tiers for long-horizon coding
GitHub has switched on GPT-6 Astra, OpenAI's model built for long-running coding work, across its paid Copilot tiers. It appears…
Fable 5.1: Anthropic cuts cache-read costs by 75% for agentic work
Anthropic shipped Fable 5.1 on 1 September 2026 with a one-million-token context and a 75% cut to cache-read pricing. For…
Claude Sonnet 5 pricing holds: the September 1 increase is cancelled
Anthropic makes Claude Sonnet 5's introductory price permanent, at $2 and $10 per million tokens. The increase to $3 and…
WebMCP: turning websites into tools for in-browser AI agents
WebMCP is a proposed W3C standard that lets a website declare its own actions as tools a browser-based AI agent…
Editorial agents in production: what holds and what breaks
Scheduled routines, MCP, sub-agents and guardrails: where a practice that industrialised in eighteen months now stands, with its documented breaking…
DevOps & servers
HTTP caching: getting Cache-Control, revalidation and URL versioning right
HTTP caching is the cheapest performance lever a site has, provided Cache-Control, ETag revalidation and URL versioning are set right.…
GitHub Actions locks down CI cache access with cache-mode
GitHub is generally rolling out cache-mode, a setting that applies least privilege to the cache used by Actions workflows. The…
Backing up a production site: applying the 3-2-1 rule and testing your restores
The 3-2-1 rule protects a site against hardware failure, human error and ransomware. But it only counts if backups are…
Symfony lsp:check brings framework-aware diagnostics to your CI pipeline
The Symfony 5.20 CLI ships lsp:check, a command that replays the editor's diagnostics inside continuous integration. It catches unknown routes,…
Deploy a Node.js application to production: systemd and a reverse proxy
Running node app.js is fine for a demo, not for production. A systemd service and an Nginx reverse proxy make…
Automated backups for a self-hosted web server: a method that holds
A self-hosted server without a tested backup is an outage waiting to happen. This method covers the database, files, encryption,…
Front-end
Vite 8.3.0 respects the root tsconfig and minifies component CSS
Released on 10 September 2026, Vite 8.3.0 finally honours a root-level tsconfig and minifies CSS inside style tags. This minor…
SvelteKit 3 reaches Release Candidate: migration, Vite, and what Svelte 5.57 adds
SvelteKit 3 has reached Release Candidate, days after Svelte 5.57 shipped. A reworked Vite plugin, the move from $lib to…
Chrome moves to a two-week release cycle
From 8 September 2026, Chrome ships a new stable version every two weeks. Manual version tracking gives way to feature…
htmx 4.0 moves to fetch() and makes attribute inheritance explicit
Released on 28 August 2026, htmx 4.0.0 rebuilds its engine around fetch() and ships deliberate breaking changes. Attribute inheritance, event…
SvelteKit 3 reaches release candidate: configuration moves into Vite and remote functions arrive
SvelteKit 3 has reached release candidate: configuration moves into Vite, remote functions bring server code straight into components, and a…
View Transitions: smooth page transitions without a framework
The View Transitions API animates the move from one state to the next, within a single page or between two…
The publication
Technical news for web professionals, verified and dated
Mail Studio covers front-end and back-end development, infrastructure, security, email and deliverability, AI applied to the web, and running an independent business. Every article is dated, its sources are named, and any reported factual error is corrected visibly.