If your advertising profile is similar to mine then there's a good chance you're familiar with Loop earplugs — it feels like every tech or tech-adjacent person I know has seen loads of ads from them online! If you aren't familiar with Loop , they make a range of different earplugs for different circumstances, and present themselves as a fancy new startup that leans heavily on social media,…
I'm not a big fan of analytics and tracking on the web — I use ad and tracking blockers in my browser, on my device, router, and built into the DNS service I use. But having some idea of what pages are being visited, how people are using the website, and who is linking to me is helpful information! With that I can learn from what posts did well, put my attention for improvement where it matters,…
A media company demanded a license fee for an Open Graph image used on my twitter archive. I gave in and paid it, but what does that mean for open graph images and copyright? In April 2025, I received an email from an image licensing company (hereby "licensor") regarding an image used on my twitter archive. That image was owned by them, but used as the Open Graph image for a news article. They…
I really like ntfy — a service that allows you to easily send notifications to your phone with just a HTTP request. It's a handy little tool to be able to do mobile notifications to yourself really easily with web standards. I'm fairly technical, and make a lot of my own little things. Small apps that do what I want, integrations and such. Because I work with web, they're all little web apps.…
Some answers to questions about my experience blogging here and in the past! Been seeing this elsewhere and found them great fun to read. I'm also writing this at a Homebrew Website Club Writing Hour in Edinburgh, which has been great fun! Why did you start blogging in the first place? Work mostly! In 2017 I dropped out of university and was attempting freelance web development as a career, trying…
A post on the the HTMHell Advent Calendar about how to use rel="preload" to improve font-loading performance! Available in full on the HTMHell Advent Calendar If you have any comments or feedback on this article, let me know! I'd love to hear your thoughts, go ahead and send me an email at alistair@accudio.com or contact me on Mastodon . The post HTMHell Advent Calendar — Preloading fonts for web…
In agency and freelance web development, relatively often I'm asked by clients what I think about accessibility overlays, or asked to implement them. I despise accessibility overlays, and get really quite upset when they're mentioned in a serious context. Unfortunately, getting increasingly upset and angry doesn't do a very good job of informing clients about why they're often a bad idea and why…
I've had a pretty crazy 2024 so far — but to be honest I kinda say that all the time, maybe that's just my life? 😅 Anyway, wanted to do a wee summary of what I've been up to, blog posts I've written and read, and media! Life Work recently has been pretty busy. We've had a big new job come up that's a lot more technical and involved than most of our work, so that's taken a lot of attention. I've…
Last weekend I was at State of the Browser in London. It’s a fantastic conference, focusing on web development and many social issues in our industry. The talks were brilliantly curated and organised, and it was overall a brilliant day. In this post I’ll share my thoughts from the day and my takeaways. The talks will be available online in the new few months if any catch your attention!…
In 2017, I made a small web app for interacting with the Spotify API — mostly to learn some new technologies. Surprisingly it took off, getting quite a lot of visitors despite my lack of interest in developing it further or monetising it. Earlier this year someone reached out to me asking about my plans for the project and whether I would be interested in selling it. Fast forward a few weeks and I…
This is my personal submission to the the Potential Remedies Working Paper from the UK's Competition and Markets Authority regarding mobile browser competition . Feel free to take inspiration/borrow from it and submit your own response by 29th August 2024. See Open Web Advocacy's article for more info! In response to Competition and Markets Authority’s Mobile browsers and cloud gaming market…
A short intro and code on how you can use Cloudflare workers on Cloudflare's free tier to proxy an image CDN like Cloudinary, CloudImage or Imgix. Using this you can load optimised images via the primary origin, support the Vary header for format conversion, and use Cloudflare's cache for those images. Why CDNs are extremely good for web performance, and if you can deliver your HTML via a CDN you…
This is a quick post, public but mostly for myself about how to do simple JS library compilation and bundling with esbuild . I have a few JS libraries that are shipped via npm, and can be used with an ESM import , CommonJS require , or a browser script element. I've found it pretty tricky in the past working out how to compile to all of these correctly from my ESM source, and the internet hasn't…
I found a nice build tooling setup that can be integrated into non-framework websites where some part isn't controlled by the build tool. WordPress, Craft, Kirby or other CMS' are a good example. My setup uses Parcel, livereload and only a few node scripts to work. Jump to the details or stick around for the context . Context Yesterday I started a new project for a family member, a simple…
Happy very belated new year! For the most part I had a really good 2023, I hope you did also. This is a month or so later than I meant to, as I had a pretty rough late December and very busy January dealing with the fallout. Enough of my complaining though, what was my year like? Well... Work I started a new job at the beginning of 2023, taking on the position of Lead Developer at Series Eight .…
A post on the the HTMHell Advent Calendar about how to get started with web performance including some tips! Available in full on the HTMHell Advent Calendar If you have any comments or feedback on this article, let me know! I'd love to hear your thoughts, go ahead and send me an email at alistair@accudio.com or contact me on Mastodon . The post HTMHell Advent Calendar — Getting started with Web…
A post on the the Web Performance Calendar with handy tips for an site performance audit Available in full on the Web Performance Calendar If you have any comments or feedback on this article, let me know! I'd love to hear your thoughts, go ahead and send me an email at alistair@accudio.com or contact me on Mastodon . The post Web Performance Calendar — Ten optimisation tips for an initial web…
The other day Brian Kardell asked about Interop project prioritisation on his blog and mastodon. As he asks in his blog "Let's Play a Game" : It's Interop 24 planning time! Let's play a game: Tell me what you prioritize, or don't and why? The Interop Project is an collaboration across the browser communities to focus on making various web APIs interoperable, standard, and bug-free across the…
I recently enjoyed the web comic "I'm a Luddite (and So Can You!)" by Tom Humberstone . It's a fantastic history and summary of the Luddites and how in the modern world you should also be a Luddite. Unfortunately, it doesn't have any alternative text on any of the images so is inaccessible. To make this accessible to more people and with Tom Humberstone's blessing , I've written out the…
It's been a very long time since I've been really excited about some new technology. I used to be thrilled over everything new, but in the past decade or so it's just faster, smaller, higher pixel density. VR got kinda close but still feels a bit like strapping a phone to my face. That's why I was so surprised when a new pair of earphones completely blew my fucking mind. Those earphones are the…
Need to look up a users' approximate location based on their IP address? Don't want to opt for a third-party GeoIP service or integrate it into your backend? Turns out that Netlify makes it super easy to set up a simple GeoIP service for yourself! If you just want the code you can find the repo at github.com/Accudio/netlify-geoip and demo at accudio-geoip.netlify.app . You can fork that repository…
Need to look up a users' approximate location based on their IP address? Don't want to opt for a third-party GeoIP service or integrate it into your backend? Turns out that Vercel makes it super easy to set up a simple GeoIP service for yourself! If you just want the code you can find the repo at github.com/Accudio/vercel-geoip and demo at accudio-geoip.vercel.app . You can fork that repository…
I've been using the Fediverse via Mastodon since October 2022, as a pretty much complete replacement for Twitter. I'm loving it! The community feels a lot more friendly and accessible than Twitter has done in a long time and I'm very happy to be out of the Twitter shitshow. You can find me at accudio@mastodon.scot and if you're not on the Fediverse yet come join us! Now onto the actual topic of…
I do a lot of hillwalking and use OsmAnd for maps on my phone and route tracking. I have a couple paper maps and a compass just in case, but for most walks my phone does great. OsmAnd uses Open Street maps for it's data which is fantastic, and has a set of map tiles that look pretty similar to Ordnance Survey maps and I like. I track my routes for posterity so I know how long particular walks have…
In November 2022 I dropped my previous phone. Actually 'drop' maybe isn't accurate, it was more of a drop-kick into a stone floor. It was pretty beat-up already honestly, this Xiaomi Mi 9T had been dropped countless times and the back was covered in sellotape to keep the glass in. My beautiful drop-kick was a bit too much though, and the screen died completely. I had already been considering…
Happy Hogmanay, New Year, or January depending on what you celebrate! This is a wrap-up of my year, which has been extremely busy for me. It's mostly for myself to look back on, but if you're interested then great! I didn't used to 'get' round-up/wrap-up posts, but over the past year I've got into journalling and taking note of what I've been doing so I can look back on it. A post like this…
This is my personal submission to the UK's Competition and Markets Authority regarding mobile browser competition . Feel free to take inspiration/borrow from it and submit your own response by 22nd July 2022. Check out @OpenWebAdvocacy for more info! In response to Competition and Markets Authority’s Mobile browsers and cloud gaming MIR consultation I am a Front End Web Developer resident in the…
I've released a new side-project, a library called Async Alpine ! Async Alpine is a wrapper for the fantastic Alpine.js JavaScript library, giving you greater control of component loading and adding asynchronous/lazy loading to Alpine. This makes loading components when visible, for certain screen widths, on events and more, super simple! If you want to dive straight in check out the Async Alpine…
I've recently published a library called Async Alpine that adds asynchronous or lazy loading of components to Alpine.js! It can help you write faster, more efficient sites using Alpine.js. Check out my Async Alpine blog post for more info! How I use Alpine.js At Series Eight we love the JavaScript framework Alpine.js . Alpine is a lightweight JS library that allows you to add interactivity and JS…
This is another post about the build of this website. Check out the other posts in the my site tag . Today, I wanted to write a little about the section dividers used on my site. These ones: If you've done any game development they may seem familiar, they're nothing particularly new! They are however a neat thing you can do with SVG and I love those! For people who just want to dig into a demo,…
An issue many businesses and sites will have to deal with is cookie and tracking consent on their websites. The web however is plagued with a huge number of intrusive trackers, and terrible, frustrating and often illegal consent dialogs. Many websites implement a notice that doesn't allow opt-out, some offer an option that does nothing, whilst others only offer an opt-out solution - conveniently…
I've had a very chaotic few months at the end of 2021, with work, moving house and my first steps into giving tech talks ! That has meant that all the blog posts and side projects I planned were left behind, but with some free time before Christmas I thought I'd squeeze a quick and easy post out! I hope 2021 has been kind and merciful to you, and you have a good holiday period if you're taking…
When I was a kid growing up in the early 2000's, one of my favourite things was the family computer. And along with that a trusty booklet that came with one of my dad's PC magazines - "100 great websites". I remember spending days and days visiting every website listed in the book many times over, taking notes about my favourites. My first search engine experience came from this when Altavista was…
The world of Web Development is exciting and moves fast - particularly front end development in the past few years. Although all of this innovation is great, it can sometimes be pretty difficult to keep up with. One of the ways I keep on top of the latest changes, trends and new technologies is by following the blogs and newsletters of companies and developers leading the industry. I'm always on…
My previous blogpost was about how to load a :focus-visible polyfill only if the requesting browser doesn't support it. Similar to that, this snippet will help you to load an image lazyloading JavScript library, only when native lazyloading isn't supported. Intro to lazyloading Lazyloading images has been a good practice for web page performance for some time, and recommended by tools like…
The future of focus is :focus-visible ! Although browser support is decent, Safari is still working on this important accessibility feature. In the meantime, we can load the WICG focus-visible polyfill to offer improved focus styles in browsers that yet don't support it. Ideally we don't force browsers that support focus-visible to download a polyfill when it's unnecessary - and in future when all…
As promised, now we're going to dig into the colour-changing effects of my new website. If you haven't seen it, check out my previous post about the SVG parallax effect in the landscape . If you haven't tried it yet, visit my website and click the "paint bucket" icon in the top-right of my website to see the theme picker. Here you can change the colour scheme of the website. There are four…
I've finally finished my new website, and I am really happy with it. I started the site in July 2020 and I launched it in mid January 2021. It's a big change from Nuxt, Vue and Webpack to doing pretty much everything myself with 11ty (Eleventy) and gulp—I love it. More on that in a future post however, today is about the star of the show—the parallax landscape you see at the top of the page. If…
Koken was a self-hosted Content Management System built for photographers, offering off-the-shelf features like Adobe Lightroom integration, EXIF handling, album categorisation and much more. 5 years ago, if you were looking for a free photo management website you could host yourself, Koken was a great option. I started with Koken for a photography client in 2014, and decided upon it based on the…