Building an IndieWeb house (I): introduction
It’s been a very long time since I’ve given a formal talk on one of my hobbies; in fact, I haven’t done one since an exceptionally distant high-school English class.
I think, for being in my mid-teens, I did alright in that talk (it was on fossils); at least, I recall that’s what my teacher said. I also remember the best talk in my class was the one done by a young gentleman on playing guitar – although my teacher was not insensible to the fact that talking on (as well as playing on) something primarily designed to be entertaining gives you some audience advantage.
Especially when the audience is teenagers (although it was an acoustic guitar).
Anyway, I digress. In fact, I often digress because I deliberately write these posts as if I’m talking to you (although with less ‘urmmm’). That’s just the style you’re going to get when reading my stuff.
So, back to topic, when an email went round at work asking if anyone was up for giving a lunchtime talk (a strict 30-min slot) on a hobby, I volunteered to do so.
I’ve got to be honest that I did suspect ‘static site personal blogging’ might be considered a bit too esoteric for them to accept, but no, they took me up on it. Whelp!
That’s now done, so, to record the details, I’m also writing it up as a few – maybe it’ll run to three, we’ll see – blog posts.
Hence, here is part I of ‘Building an IndieWeb house: the why and hows of Coffee Now’. We’ll cover what is the IndieWeb, what is a website and writing in markdown here, with using the static site generator (SSG) Hugo, syndicating elsewhere and some things I’ve learnt in the process to follow in future posts.
Because the talk was given to a general audience, readers might know a good deal of what’s below. However, I still hope it’s of interest – or at the very least somewhat interesting – to those coming across this post!
What is the IndieWeb?
IndieWeb websites are personal sites that follow these two basic principles:
- They run under your own domain name
- They act as your primary (public) online identity
The reason for starting such a site is often a response to enshittification (at work, I might have said ‘platform decay’, but that was at work – Cory Doctorow’s term is the most common!).
So what do I mean by that?
Well, when James and I started ‘coffee now’ in 2021, although AI slop was less common than it is now, it was still clear that social media and the web was getting more and more about the interests of the platform/page and less about your interests.
Indeed, although you get enshittification in other circumstances (operating systems showing adverts on the lock screen or defaulting to storing your stuff in their cloud platforms, then charging for that privilege), the reason for starting your own website is often because of enshittification of social media services.
Just how bad this now is very obvious when scrolling through my feed in a major commercial social media platform (one that I don’t use very much these days for just this reason).
I counted up that it was only three out of the first 17 posts that I was shown that were things I’d actually signed up to see.
‘Highlights’ of the other posts included an advert for weight loss treatment (uggg), posts from a group where I’d visited their webpage that obviously had a tracker I hadn’t blocked, and a post from Oxford parkrun (complete with a creepy AI image of some characters on a tandem that could never work), because obviously I’m interested in a random parkrun event halfway across the country from where I live.
At least one post might have even been shown to me for the purpose of rage baiting.
I simply don’t want to be forcing those I know to sign up to such services (giving away personal information in the process) and to see that sort of mess just to follow a few silly low-key updates about my life. Not to mention social media platforms are potentially about more than commercial capitalism these days.
All in all, if you only post your content in such silos, or even in other blogging platforms (Medium, Substack, Blogger etc.), you’re also only renting your space and are vulnerable to changes in how those platforms operate.
Including them disappearing altogether.
As the person who posted this on social media said, "once seen, never forgotten".
If you IndieWeb, then it can be different. You can build your own house.
And that’s where a reason for doing this that’s more positive comes in. As part of the IndieWeb, I have much more control of how I want content to be presented. I can have images in the middle of posts, long-form content and write what I want, how I want (well, within the law, including the UK Online Safety Act).
Blogging is a creative hobby.
And it’s not about eschewing mainstream social media altogether; we can choose to share content from our IndieWeb site where we like.
IndieWeb is hence formalised in two concepts:
- POSSE: Publish (on your) Own Site, Syndicate Elsewhere
- PESOS: Publish Elsewhere, Syndicate (to your) Own Site
I’m not a purist about following either the POSSE or PESOS system; most stuff is here first, then shared elsewhere via a link, the POSSE way, but if you take my recent book review post, that was indeed published elsewhere first.
I also don’t publish everything here; this blog does really confine itself to long-form content that won’t change much over time, and that stays up.
Short posts, or throw-away content, are most likely be found over on my personal Mastodon account, and most of that is deleted after 6 months. (In fact, I delete most stuff on all my social media accounts fairly often, even from platforms that make you do it manually post by post, not so much for privacy reasons but because content like that doesn’t make sense out of the time, and hence context, in which it was written.)
Right, so after covering a brief bit of the whys, let’s get down to some hows – how do we go about publishing on own site?
Publish (on your) own site
I have nothing to write about
When I tell people I do a personal blog (as opposed to a topic blog), one of those most common responses I get is “oh, I couldn’t do that; I have nothing to write about”.
I have to say my response, is generally “I don’t believe that”.
That’s not meant to disparage; it’s just I know I’d be interested in a site written by anyone I know!
First, as I’ve alluded to, a blog, even a personal blog, doesn’t have to be by just one person. Here, James and I both contribute.
We weren’t sure that would be best at first, but given some posts have indeed been written by both of us together, it has made sense over the years. [It would have even been very odd if the posts on our wedding didn’t feature us both as authors!]
This also means that whenever either of us do something a bit out of the ordinary (i.e. whether that’s me running the London marathon or James walking the West Highland Way), we’ll get posts out of it. Usually this amounts to a post every couple of months.
Also, although long-form blogging is not always a quick process, that isn’t what you have to do to run an IndieWeb site.
You can also do this as a:
- a digital garden, meaning pages where content is added, updated and ‘pruned’ rather than being stuff that rarely changes (Maggie Appleton’s ‘A Brief History & Ethos of the Digital Garden’ and Joel Hook’s ‘My blog is a digital garden, not a blog’ explain more).
- a ‘currently’ page: ‘I’m current reading…’, ‘I’m currently listening to…’
- a collection of interesting links or week notes (especially as search is another thing that’s enshittifying to the extent that you don’t find articles via search engines as easily as you once did; an example of such a blog is bob’s ramblings).
Buying a domain name
I’ve said that having your own domain name is important. That’s because once you have this, then this is something that can stick with you, as your identity, forever (well, as long as you keep up the registrar fees).
But what is a domain name?
If you take one of the URLs for a post here, the domain name comprises the bit you choose (‘moomop’ – don’t ask) plus the top level domain (tld), here ‘.uk’.
Different tlds are controlled by different registrars, and the UK tlds (.uk, .co.uk, .me.uk etc.) are controlled by the UK public-benefit company Nominet. [In fact an early brush with where to buy services led us to avoiding buying our domain name from a supplier that supported 2021 efforts to commercialise Nominet, something that we’re glad didn’t happen.]
The other parts of the URL comprise the subdomain, which isn’t necessary, but something that we’ve chosen here to link back to the title of this blog (and to give more flexibility if we ever wanted other websites under the same domain name), and the slug (ideally short and giving a idea of what the URL will be about).
What is a website?
OK, so we’ve decided to make an (IndieWeb) website, but what actually does that mean? What even is a website?
The way I like to think about this is that a website is a collection of content that’s accessed via URL.
The content is made up of three components:
First, HTML – the underpinning ‘DNA’ of the website. [ok, bit cringy but I am, or at least was, a biologist.]
HTML is made up of ‘elements’, most often text given a ‘purpose’ by surrounding opening and closing tags in angle brackets.
Examples of elements would be:
<h1>A big title</h1>
<p>A standard paragraph</p>
Second, ‘cascading styles sheets’ (CSS); CSS provides styles (colour, size, position etc.) to HTML elements.
Without CSS, you get stuck with browser defaults for the styles.
There’s even a CSS naked day every April 9th, where websites might take off their CSS, revealing the underlying HTML structure!
My book review post, naked of CSS. Some styles are applied for the labelled HTML elements but it’s all very basic.
And finally, JavaScript; this is script written into the website source code that is run by your browser.
Whereas I have either written, or at least understand, all the CSS on the website, that isn’t true of the JavaScript.
However, we’re careful to only use JavaScript we trust, given that it can be used for purposes we wouldn’t want (for example, it can track mouse positions and scrolls, the time spent on a website, and pull in external sources of scripts and content – and many, if not most websites, although notably not Mastodon, have webpages that do this if you don’t use a tracker blocker).
Here, JavaScript is only used to make the image galleries, do a little animation (when CSS won’t quite cut it), and to power the syntax highlighting and search, but it’s perfectly possible to run a blog without any JavaScript at all (aside: or to do it in a platform like ‘React’ where there’s a lot of JavaScript).
Dynamic vs static sites
So, if a website is HTML, CSS and JavaScript, how are websites actually made?
Well, there are two different types of website, dynamic sites and static sites.
Starting with dynamic sites, they run from web servers as below:
Although there are many, many different content management system (CMS) programs that run dynamic sites, the most commonly known is probably the PHP-based program WordPress.
Taking this as an example, WordPress would live on the web server.
Then, when your browser contacts the web server, the WordPress program runs, taking information from and/or writing information to the database, in this case an SQL database, processing the outcome and sending HTML, CSS and JavaScript back to the browser.
What is apparent from this set-up is that someone is going to need to keep everything up to date to make sure there are no vulnerabilities in the WordPress set up (or most often its plugins), because that can be exploited to corrupt your website.
The classic example is an SQL injection attack – when inputs aren’t sanitised such as you end up with a user being able to modify your database. Indeed, even today, if databases aren’t secured properly, people can be found modifying your website (see 404 media’s report on waste[.]gov).
As well as this, such a system means databases are modified on the fly. This means you also need to start making database backups on the fly.
But there’s a simpler way to make a website.
Cut out the database, just put your files with HTML, CSS and JavaScript directly on the web server, and make what’s called a static site.
The issue is how far would we get writing HTML, CSS and JavaScript by hand. Can you imagine typing all those HTML angle brackets!?
Well fortunately, for HTML, there’s help on hand here, in the form of markdown, files with the extension ‘.md.’
Markdown
Markdown files are plain text and are designed as a way to write HTML more quickly; indeed, even in some CMSs you might find yourself writing in markdown, as in many ways it’s often easier than using a WYSIWYG editor.
Wikipedia shows the basics of how you write in markdown; e.g. ‘#’ symbols are used to denote a line of text as a heading element, line breaks are used to denote paragraph elements etc. You can also see more in an online tool to give writing markdown a go yourself.
I firmly believe that if you can manage to use a complicated full word processor, like MS Word, Apple Pages or LibreOffice Writer, then you can easily write markdown, although you probably want to do so in a syntax editor to help highlight styles.
Markdown being a open format means you also never have the problem of finding you wouldn’t be able to open it somewhere. The popular (although proprietary) note-taking tool Obsidian also uses markdown for its notes, so it’s not something you only come across in the context of websites.
As a real example, some of the markdown for the book post is below:
<!---
This first part is for providing information to the SSG and is called 'front matter'
-->
---
title: "A 2024 reading round up"
slug: book-reviews-2024
date: 2025-01-12
author:
- Clare
tags:
- book reviews
- review
- reading
- fantasy literature
---
<!---
The post starts here, notice the bracketed terms for making links
-->
Here, I'm bringing together all 19 book reviews I've written for fantasy books read in 2024, as originally published on [my Bookwyrm account](https://ramblingreaders.org/user/clare_hooley). With the exception of cookbooks, fantasy has always been my most prevalent reading genre (although I’ll admit there’s a bit of presenting myself in a certain way on the internet here as, yes, I do read quite a few light romances too).
Obviously, I don't expect anyone is interested in ploughing through all 20 minutes plus of text to read every review (although note to self – the blog is still vastly over estimating reading time and I really must fix this), so here's the jump links for each book:
<!---
dashes for lists, indented dashes for an indented list (in this case a list of links)
-->
- [The Rook and Rose trilogy (M. A. Carrick)](#rook-and-rose-trilogy-by-m-a-carrick)
- [The Mask of Mirrors](#the-mask-of-mirrors-rook-and-rose-1)
- [The Liar's Knot](#the-liars-knot-rook-and-rose-2)
- [Labyrinth's Heart](#labyrinths-heart-rook-and-rose-3)
- [The Scholomance trilogy (Naomi Novik)](#the-scholomance-trilogy-by-naomi-novik)
- [A Deadly Education](#a-deadly-education-the-scholomance-1)
- [The Last Graduate](#the-last-graduate-the-scholomance-2)
- [The Golden Enclaves](#the-golden-enclaves-the-scholomance-3)
- [The Prince of Nothing trilogy (R. Scott Bakker)](#the-prince-of-nothing-trilogy-by-r-scott-bakker)
- [The Darkness That Comes Before ](#the-darkness-that-comes-before-the-prince-of-nothing-1)...
<!---
truncated from the real version, now some paragraphs, also truncated
-->
It’s always a bit difficult to boil any book down to a single star rating, especially one that might be meaningful to others (although, here, given this is my blog and my rules, I do get half stars). Of course, I’m not going to buy and read a book with the thought I’m not going to like it, hence by default we’re going to get ratings that are towards the higher end of things.
But I do think I need to push things down a bit to distinguish those books I *really* enjoyed from the pack, so here take anything at three stars or above as ‘I didn’t regret this one’. But, yeh, two stars (only one this year) is a real ‘meh’.
<!---
... and so on until
-->
One of the books below is currently AI-smooshed down in Amazon UK to:
<!---
and a block quote
-->
> Customers enjoyed the satisfying conclusion to the trilogy. They appreciated the world-building and character development. The ending was described as bittersweet.
I hope I just give a bit more – not only whether I liked the book, but whether you might. Reviews are spoiler-free but, for series, you'll obviously get some hints as to outcomes from earlier books in later reviews.
<!---
a horizontal rule and a level 2 title
-->
---
## 'Rook and Rose' trilogy by M. A. Carrick
A trilogy written by two authors under the pen name of M. A. Carrick. It follows the stories of multiple characters as they try and negotiate the turbulence of life in the Renaissance Venice-inspired city of Nadežra.
Our main protagonist is Ren, a city native (who are usually of Vraszenian or part-Vraszenian race), who has returned to Nadežra after being forced to flee it after betraying the sinister...
<!---
and so on
-->
But we do need to process this into HTML, and we also need our CSS and JavaScript, and that’s where the SSGs come in. There are also many SSGs (Hugo, Eleventy, Jekyll, Pelican, Gatsby and Astro to name a few).
We use Hugo, and we’ll come back next time to the basics of how you go from having posts written in markdown to getting an actual website.
Extra shots
On enshittification
- Blogger Edward Zitron on it’s not that you don’t ‘get’ tech, it’s enshittification
https://www.wheresyoured.at/never-forgive-them/ - Making opting out of unwanted features difficult in Gmail
https://www.404media.co/opting-out-of-gmails-gemini-ai-summaries-is-a-mess-heres-how-to-do-it-we-think/ - Fake people added to Meta’s platforms
https://edition.cnn.com/2025/01/03/business/meta-ai-accounts-instagram-facebook/index.html - On relying on PubMed within medicine and biology
https://absolutelymaybe.plos.org/2025/02/14/what-if-we-cant-rely-on-pubmed/
On the fun of joining the IndieWeb
- A love letter to the personal website
https://localghost.dev/blog/this-page-is-under-construction/ - The journalist Molly White on POSSE as the best of both worlds
https://www.citationneeded.news/posse/ - Blogger Naz Hamid on creating your own site as a home
https://nazhamid.com/journal/your-site-is-a-home/ - Blogger Evan Boehs on being tired of big tech and blogging instead
https://boehs.org/node/2025-call-for-bloggers - A call to put yourself on the ‘free web’
https://thehistoryoftheweb.com/the-free-web/
On markdown
- Blogger Piotr Migdał on keeping all your notes in markdown
https://p.migdal.pl/blog/2025/02/markdown-saves/
Credits
- Photo of guitar by by Rachmaddian Shotz on Unsplash.
Comments (0)
No comments yet.