After a multi-year detour wading through the quagmire of bloatware that is modern software I’m back to coding in Sublime Text. I am finally at peace! Do you know how relaxing it is without the daily “update available” and “view release notes” ritual? There is nothing I dread more … | Continue reading
I can’t take it anymore! If you wan’t to speak to me, send an email. My contact form is out of service indefinitely. This is actually in lieu of moving my professional services to a yet to be announce limited company. But I can’t let opportunity for a dramatic blog post go to was … | Continue reading
Back when I began freelancing I figured I’d set up a limited company eventually. I guess thirteen years later is eventually. I’ve finally got a local accountant working on company registration. Exciting times! The final push was this Making Tax Digital thing from GOV.UK. […] | Continue reading
When I redesigned my website earlier this year I removed dark mode. I never liked the colours, and the light switch toggle was so 2010’s. Personally I prefer reading with a dark theme for long-form content. Dark is not my brand though and I don’t believe every website needs to su … | Continue reading
When I’m not fighting WordPress I deliver static HTML or the occasional JavaScript framework integration. For personal projects I have ‘fun’ with my own static site generator. This week was a side quest (soon to be main quest) to build my new company website. […] | Continue reading
At the risk of pissing on people’s chips I figured it’d be helpful to illustrate the three classes of AI user I’ve identified in the slopageddon. You might be thinking: “Hey, those personas are all negative!” — and you’re absolutely right! Believe me, I’d love nothing more than t … | Continue reading
1984, Minority Report, Black Mirror — bedtime stories compared to the horrors the UK Government publish, am I right? I’m led to believe “Watch this space” is the latest propaganda piece from His Majesty’s Nanny State. I haven’t read past the title but according to gaming site Dex … | Continue reading
I’m a front-end developer not a medical practitioner. If you’re bleeding IRL visit the hospital and stop googling medical issues! The full-bleed layout — as described there by Josh Comeau — can be done with CSS grid (and subgrid). Sometimes you can’t grid the entire page. […] | Continue reading
Today I’m introducing the next generation of code editor. A modern app to satiate the needs of the discerning coder. We’re talkin’ blazing fast collaboration between man and machine. Try out the demo below (for best experience: desktop Chrome, obvs). […] | Continue reading
Please take a minute to understand what ARIA is and is not. ARIA and especially the ARIA Authoring Practices Guide (APG) are commonly misunderstood. I read an article the other day that had this facepalm moment: “And with modern LLM agents, turning a spec into working code is sur … | Continue reading
CSS is hard and it should be hard. For good reason: “CSS isn’t just a complex language, it’s one of the most advanced graphics, layout, and typesetting languages available in computing. The deskilling of web dev is harming the product but, more importantly, it’s damaging our heal … | Continue reading
This is an RSS-only post, thank you for subscribing :) If you’re only here for web and tech talk you can skip this one! I rescued an animal today! Probably… The UK has its fair share of canals. I like canals. They cut through urban life offering an escape back to nature and are t … | Continue reading
Apple’s WWDC 2026 keynote was a snoozefest but one section left me rather perplexed. Early in the show Apple gave a performance about “child safety”. Apple ended the show with their new AI photo mangler. That’s some serious cognitive dissonance! […] | Continue reading
Standard.site provides shared AT Protocol lexicons. Atproto is just spicy JSON and asymmetric cryptography. I’ve tried to explain atproto in more detail before. Bluesky has always supported a few open graph meta tags which I use to generated images for blog posts. […] | Continue reading
I am back! Ten days “offline”. For me that just means online without talking to anyone. My break came at a time of high industry (and personal) stress. “Seeing talented people lose motivation bums me the hell out. Reach out and say thanks - Kevin Powell”Thank you to those who rea … | Continue reading
It’s Google I/O week and this year’s theme is performative slop. Budding Googlers battle it out on stage vying for executive eyeballs. The prize? Exemption from the next culling. As you might know AI isn’t my cup of tea and my AI policy explains why. […] | Continue reading
How do you stay sharp as a web developer and/or designer? I’ll share my advice below. I’m also looking for front-end folk to advise me too. What are your whetstones? That is to say: sources of news and knowledge to level up professionally. Does that metaphor work? […] | Continue reading
The web and tech industry is a veritable sausage party. We don’t need surveys to prove it but we have surveys to prove it. State of surveys have been running for a decade now. Let’s look at the 2025 survey demographics: Yes I think “sausage party” is accurate. Weißwurstfest even. … | Continue reading
Giving lightbulbs a MAC address was a mistake that I’m living with. “I’m literally unscrewing lightbulbs to renew their DHCP lease @dbushell.com - Bluesky”Instead of enjoying the bank holiday Monday I updated my homelab software. I was ‘inspired’ by the Copy Fail Linux bug to run … | Continue reading
TL;DR: GitHub used to be cool and now it’s a lame slop graveyard. GitHub is racing towards the mythical zero nines of uptime. Users are starting to notice that GitHub is now a Microsoft product. Eww! Official uptime paints a concerning chart. The missing status page tell a far wo … | Continue reading
My regular schedule of CSS and HTML tips will return after this brief look at the sorry state of the web and tech industry. It’s grim. “Our press secretary, Sean Spicer, gave alternative facts to that… Alternative facts - Kellyanne Conway (Wikipedia)”Following the 2017 inaugurati … | Continue reading
Today Sabastian Sawe ran an historic sub-two-hour marathon in a competitive race. A marathon is around 42 kilometres, aka 26 miles in freedom units (we use miles in the UK too but not for running distances). I feel the record is a little unfair on Kipchoge who achieved the milest … | Continue reading
My website has a new page! The /uses URL pathname is an “official” slash page. I’m only listing web tools I use for now. My default apps change too frequently. The list is an evolution of an old post I was secretly maintaining. Web tools Web tools are web-based tools, obviously. … | Continue reading
CSS cascade layers are the ultimate tool to win the specificity wars. Used alongside the :where selector, specificity problems are a thing of the past. Or so I thought. Turns out cascade layers are leakier than a xenonite sieve. Cross-layer shenanigans can make bad CSS even badde … | Continue reading
This year I’ve been asked more than ever before what web development “stack” I use. I always respond: none. We shouldn’t have a go-to stack! Let me explain why. What stack? My understanding is that a “stack” is a choice of software used to build a website. […] | Continue reading
I’m all aboard the CSS subgrid train. Now I’m seeing subgrid everywhere. Seriously, what was I doing before subgrid? I feel like I was bashing rocks together. Consider the follower HTML: The content could be simple headings and paragraphs. […] | Continue reading
… is what I’m reading far too often! Some of you are losing faith! A growing sentiment amongst my peers — those who haven’t already resigned to an NPC career path† — is that blogging is over. Coding is cooked. What’s the point of sharing insights and expertise when the Cognitive … | Continue reading
Figma is the industry standard for painting pretty pictures of websites. It’s where designers spend my designated dev time pushing pixels around one too many artboards. Figma promises to remove the proverbial fence between design and development. […] | Continue reading
This is an RSS-only post, which I like to do sporadically! Thank you for subscribing :) Today’s question Am I burning out? Let me know what you think, internet doctors. I work a four day week and I have done so for many years. Fridays are mine to have fun. […] | Continue reading
I should build a game! I feel like that’s a common dream, right? Game development is what got me interested in design and programming to begin with. I learnt ECMAScript via Flash ActionScript many moons ago. Some time later “Thoughts on Flash” brought a swift demise and ruined le … | Continue reading
I visited deno.com yesterday. I wanted to know if the hundreds of hours I’d spent mastering Deno was a sunk cost. Do I continue building for the runtime, or go back to Node? Well I guess that pretty much sums up why a good chunk of Deno employees left the company over the last we … | Continue reading
Disclaimer: this post includes my worst idea yet! Until now my contact form submissions were posted to a Cloudflare worker. The worker encrypted the details with PGP encryption. It then used the Amazon AWS “Simple Email Service” API to send an email to myself. […] | Continue reading
Below is a parody of Simon Willison’s What is agentic engineering? I use the term agentic engineering to describe the practice of casino gambling with the assistance of random superstitions. What are random superstitions? They’re superstitions that can both write and execute entr … | Continue reading
Perhaps my favourite JavaScript APIs live within the Internationalization namespace. A few neat things the Intl global allows: Natural alphanumeric sorting Relative date and times Currency formatting It’s powerful stuff and the browser or runtime provides locale data for free! [… … | Continue reading
At Protocol has got me! I’m morphing into an atmosphere nerd. AT Protocol — atproto for short — is the underlying tech that powers Bluesky and new social web apps. Atproto as I understand it is largely an authorization and data layer. Atproto data All atproto data is inherently p … | Continue reading
Whilst moving projects off Cloudflare and migrating to Bunny I discovered a neat ‘Bunny hack’ to make life easier. I like to explicitly say “no” to AI bots using AI robots.txt†. Updating this file across multiple websites is tedious. With Bunny it’s possible to use a single file. … | Continue reading
Bluesky is a “Twitter clone” that runs on the AT Protocol. I have to be honest, I’d struggle to explain how atproto works. I think it’s similar to Nostr but like, good? When atproto devs talk about The Atmosphere they sound like blockchain bros. The marketing needs consideration. … | Continue reading
Croissant is my home-cooked RSS reader. I wish it was only a progressive web app (PWA) but due to missing CORS headers, many feeds remain inaccessible. My RSS feeds have the Access-Control-Allow-Origin: * header and so should yours! Blogs Are Back has a guide to enable CORS for y … | Continue reading
Nobody asked for it but nevertheless, I present to you my definitive “it depends” tome on visually-hidden web content. I’ll probably make an amendment before you’ve finished reading. If you enjoy more questions than answers, buckle up! I’ll start with the original premise, even t … | Continue reading
When I rebuilt my website I took great care to optimise fonts for both performance and aesthetics. Fonts account for around 50% of my website (bytes downloaded on an empty cache). I designed and set a performance budget around my font usage. […] | Continue reading
The off-canvas menu — aka the Hamburger, if you must — has been hot ever since Jobs’ invented mobile web and Ethan Marcott put a name to responsive design. My journey Making an off-canvas menu free from heinous JavaScript has always been possible, but not ideal. […] | Continue reading
I’ve only gone and done it again! I redesigned my website. This is the eleventh major version. I dare say it’s my best attempt yet. There are similarities to what came before and plenty of fresh CSS paint to modernise the style. You can visit my time machine to see the ten previo … | Continue reading
Mozilla published a new State of Mozilla. It’s absolute slopaganda. A mess of trippy visuals and corpo-speak that’s been through the slop wringer too many times. I read it so you don’t have to. ⚠️ Warning: the State of Mozilla website has flashing graphics and janky animations. [ … | Continue reading
I’ve made minor updates to my AI Policy but you probably don’t care because you’re tired of reading criticism. You’ve dismissed all that because AI is inevitable. If you do care, and you should, you are not taking crazy pills! Billions pumped into the relentless marketing machine … | Continue reading
On Jan 14th Proton sent out an email newsletter with the subject line: “Introducing Projects - Try Lumo’s powerful new feature now” Lumo is Proton’s “AI” offering. There is a problem with this email. And I’m not talking about the question of how exactly AI aligns with Proton’s co … | Continue reading
Everyone has an opinion on markdown but why stop there? Write your own parser, make those opinions reality! That’s what I did with Hmmarkdown — my HTML-aware markdown library. It has built my website content for the past year. Turns out parsing markdown (with HTML) isn’t easy. [… … | Continue reading
Last week my router almost died! Disaster was averted but it dawned on me how fragile my home network was. I have all manner of VLANs and firewall rules so I can’t just plug in my ISP-provided router. With no redundancy in place a real disaster would mean panic buying an expensiv … | Continue reading
My spring 2025 update ended with a to-do list, apparently. I totally forgot but I happened to complete the tasks anyway. Then disaster struck! Quick recap before the disaster. To-dones GitHub’s death spiral led me to finally self-host Forgejo publicly at git.dbushell.com. […] | Continue reading