Sign up

James' Coffee Blog

Not verified No WebSub updates Supports Webmention Invalid

Author
James' Coffee Blog
Generator
granary
Public lists
IndieWeb IWC BER 2025 IWC DUS 2025

James' Coffee Blog Supports Webmention
James' Coffee Blog

Notifying users of page updates

Some time in January, I was going through my browser tabs and came across an Artemis tab that had been opened a while ago. But it took me a moment to realise that the tab might be out of date. My eyes went first to the posts from authors to which I have subscribed, then to th...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Brainstorming source code editing for web applications

Last year, I worked on a bookmarklet for editing pages on my website. When clicked, the bookmarklet would open the page in GitHub that corresponded with the page I was viewing. I used the bookmarklet so much I turned it into a browser extension, which I still use regularly to...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Drawing and hand-written fonts

I have been thinking about hand-writing and websites in the background for a little while. I made a hand-written font using Calligraphr a few months ago. I enjoyed making this font, but haven't used it for a web project yet. Here's what it looks like: While making the font,...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Sandwich Questionnaire

I love sandwiches. Earlier today I was thinking about how you can eat a sandwich at any time of the day. I have eaten sandwiches for breakfast, lunch, and dinner. When I saw Zachary’s “Sandwich Questionnaire“, I thought I have to respond to this! I have been thinking about r...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Why I love my favourite words

Every so often, I use the word delightful in conversation. That is delightful! I try not to use “delightful” too often, but I do like to bring it into a discussion every now and again. It is one of my favourite words. The word delightful, like the word awe, makes me feel a c...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Design and missing categories

Ever since I moved to using Ghost as the tool for publishing my blog posts [1], I have forgotten to add categories to some of my blog posts. My old system had a few if statements that would automatically select a category. If none of the rules triggered and I did not choose a...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Noticing

Last weekend, I went to the National Gallery of Scotland. This time, I started my trip on the bottom floor where all the Scottish art is on display. A few minutes after entering the gallery, I was captivated by paintings of Nature and of Edinburgh. I noticed that one wall was...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Clouds

I have been waking up with anticipation every morning recently. I say “good morning, world”, and then anxiously peek through the edge of the curtains. I hope for the blue sky. This last week has been rainy and grey. I tried to understand why but the meteorology went over my ...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Debug mode

One of the areas of the Artemis codebase that I update the most is the logic that relates to the list of posts published by authors to which a user is subscribed. Because Artemis works with so many different formats of information – web feeds like RSS or h-feed, Mastodon post...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Staging banners

When I run the Artemis codebase, one of the first things it does is look for an environment variable that indicates what “environment” the application is running in. There are two modes: development and production. If no mode is specified, development mode is set by default. ...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Redirecting YYYY-MM-DD-slug.md to /YYYY/MM/DD/slug with Nginx

Earlier this week a reader pointed out that posts listed on my date archive pages were linking to the wrong URLs. For example, the link for /2026/01/25/kind-software would instead be /2026-01-25-kind-software.md. This was caused by my static site generator using the markdown ...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Reducing Artemis’ deployment downtime with blue-green deployments

Artemis, the calm web reader I maintain, runs as a systemd process. When I want to update the software, I deploy the new code to the server and then restart the systemd process. This has a significant downside: while the Artemis process is restarting, the software is unavaila...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Does your website run on green energy?

A few weeks ago I did a day-long training Carbon Literacy Project training course through my university. When I was taking the course and considering ways I can reduce my carbon footprint, I started thinking about technology. I don’t know much about calculating emissions from...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Background technology

A while ago, I purchased an Aranet 4 indoor CO2 monitor. The device has sat on my desk ever since. I started thinking about the Aranet monitor this week because I noticed that, for the first time, the battery was low and needed to be changed. The Aranet is a useful device. W...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Calendars and web readers

For the last few weeks I have been thinking about the intersection of calendars and web readers. Author's note: You can skip the next paragraph if you're not interested in the technical aside. What started this thinking was a technical interest. With h-feed, you can publish...

James' Coffee Blog Supports Webmention
James' Coffee Blog

The expanse of web weaving

Last year, one of my goals was to learn more about design. I wanted to apply what I learned to making web pages. The Non-Designer’s Design Book was an influential resource toward the end of the year. While not specifically about web design, the principles within the book – co...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Build the web you want to see

The Autumn/Winter 2025 edition of the good internet magazine is out! I contributed a piece, Build the web you want to see, in which I reflect on the last five years of James' Coffee Blog and some of what I have learned in that time. I have been thinking about the question "how do we make the web better?" for the last few months, and perhaps the best answer I have right now is for us all to keep building the web we want to see. It is perhaps because of this that, when I asked Joe yesterday "How can we achieve a web renaissance?", he replied "I think we're already in it." Thank you to Xandra for all of the work that she puts into making the good internet magazine happen. I am delighted that this project exists and, especially after reading StartingAMagazine.psd, am more aware than ever that projects like this don't just happen: we make them happen.

James' Coffee Blog Supports Webmention
James' Coffee Blog

Software Design Meetup [Feb. 11th]

On Wednesday, February 11th at 7pm - 8:30pm UK time I am hosting an event I’m calling the “Software Design Meetup” online. This meetup is for anyone interested in the design of software and technology. In particular, if you are fascinated by the question "How do we design be...

James' Coffee Blog Supports Webmention
James' Coffee Blog

IndieWeb Book Club: The Art of Explanation

I am hosting the IndieWeb Book Club for this month, in which everyone interested is invited to read and write a blog post about The Art of Explanation: How to Communicate with Clarity and Confidence [Goodreads link]. The book was authored by Ros Atkins, a BBC journalist whose...

James' Coffee Blog Supports Webmention
James' Coffee Blog

IndieWeb Carnival: Host Interview

Zachary kindly invited me to answer a few questions about hosting the IndieWeb Carnival. Running for three years now, the IndieWeb Carnival has been the source of endless inspiration for me, sparking both long periods of thinking as well as writing blog posts. Even when I hav...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Kind software

At EdinburghJS this week, Colin mentioned the idea of “kind software.” This got me thinking. What would make software kind? As I write, I notice the word “kind” reminds me of the term “user friendly,” which has associations with software being simple to use in the context of ...

James' Coffee Blog Supports Webmention
James' Coffee Blog

This week

This has been a busy week! Earlier in the week, I attended my first EdinburghJS Meetup, at which I met many wonderful people. As always, I am a bit nervous before going to events. What if I can’t find the location? What will I say? Those fears usually leave my system after a...

James' Coffee Blog Supports Webmention
jamesg.blog

Share your website at events

Yesterday I attended a Code Jam event organised by the EdinburghJS community. During the event, I met many wonderful people. At one point, someone asked me to share my LinkedIn, to which I responded that I’ll share my website instead. I stopped for a moment to consider that t...

James' Coffee Blog Supports Webmention
jamesg.blog

Designing a service with IndieAuth and email-based login

Artemis, the calm web reader I maintain, offers three methods of authentication: IndieAuth, email and password, and passkeys. IndieAuth is offered as a sign-in method because I want Artemis to allow people to use their domain names as their identities. Email and password auth...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Subscribing to local news with a web reader

Most of the websites I follow in my web reader are personal sites like blogs. With that said, recently I subscribed to my local council’s news web page. On that page, they publish various updates – events coming to the region, draft council reports, weather warnings, and more...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Announcing Artemis Roll-up

Some web feeds, especially those published on news websites, are updated several times a day with new entries. Websites that publish so regularly can be distracting in your web reader when you want to skim your feed for new posts from all the websites you follow. With this i...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Piano, vulnerability, and playing guitar

Sometimes things just click. Then when you reflect you realise that the thing clicked because of many things all coming together – that as much as you wanted to advance an idea in the past, it needed time. I had one of these moments during the writing meetup I hosted this ev...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Nature

When I wake up in the morning, the first thing I do is get out of bed and turn on my fairy lights. I read for a little while under the warm glow of the lights while the sun is not yet visible in the winter morning. I am reading a book about Nature right now – stories of walki...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Walden

I wanted to start this blog post with a quote. I started flicking through Walden, which I have just finished reading, for one that would be appropriate. But then I realised any choice would be arbitrary, for the wisdom is so deep within the book that any choice would leave me...

James' Coffee Blog Supports Webmention
James' Coffee Blog

Getting ready for studying

I start my degree in art history at the Open University in under two weeks. Just after the holidays, I got access to the materials for my first year, which is made up of two modules: “Discovering the arts and humanities” and “Cultures”. In the former module I’ll study a new t...