<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/pretty-feed-v3.xsl"?>
<rss
  version="2.0"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:source="https://source.scripting.com/"
>
  <channel>
    <title>Paul Tibbetts</title>
    <link>https://paultibbetts.uk/tags/micropub/</link>
    <description>Recent posts by Paul Tibbetts on Micropub</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <lastBuildDate>Mon, 27 Apr 2026 21:37:43 +0000</lastBuildDate>
    <atom:link href="https://paultibbetts.uk/tags/micropub/feed.xml" rel="self" type="application/rss+xml" /><item>
      <title>My IndieWebCamp Düsseldorf Demo:  Extended Edition</title>
      <link>https://paultibbetts.uk/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/</link>
      <pubDate>Mon, 27 Apr 2026 22:30:42 +0100</pubDate>
      <guid>https://paultibbetts.uk/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/</guid>
      <category>IndieWebCamp</category>
      <category>Micropub</category>
      <description>Featuring never-before-seen coverage and a look behind the scenes.</description>
      <content:encoded><![CDATA[<p>The second part of <a href="https://events.indieweb.org/2026/04/-indiewebcamp-d%C3%BCsseldorf-ewHCZehNA3gg">IndieWebCamp Düsseldorf 2026</a>
 was &ldquo;create day&rdquo; where you take your inspiration from day one, make it a reality, and show it to everyone else.</p>
<p>My inspiration was from a few weeks ago when <a href="https://ricardochavezt.com">Ricardo</a>
 demonstrated his new setup at <a href="https://hwclondon.co.uk/">Homebrew Website Club London</a>
.  I guess I was prompted into action by the <strong>How to unblock yourself and actually post more often</strong> session this weekend, but I&rsquo;m trying to give credit where it&rsquo;s due, since my demo was basically the same as his.</p>
<p>What I didn&rsquo;t show, however, was all the work that&rsquo;s been happening over the last few months to make my demo possible, which is why I&rsquo;m posting this.</p>
<p>Also, I wanted to regain some nerd-cred because my demo was followed by <a href="https://burgeonlab.com/">Naty</a>
 who showed us an updated <a href="https://burgeonlab.com/stats/">stats page</a>
 , which looks awesome and is something I&rsquo;m going to have to steal.</p>
<aside>
<p><small>Hi Naty 👋, after we spoke at IWC I went on your site and realised who you were. Your site was a big inspiration for mine when I was redesigning it. <em>That&rsquo;s</em> why they look similar!</small></p>
</aside>
<h2 id="intro">Intro</h2>
<p>My site&rsquo;s powered by Hugo, which is a static site generator that turns files into a website.</p>
<p>I write posts on my laptop and push them up to GitHub, where the site gets generated with the new content and then deployed to my server. I&rsquo;ve written about that <a href="https://paultibbetts.uk/2026/02/19/moved-my-website-from-github-pages-to-a-raspberry-pi/">before</a>
,  which you don&rsquo;t need to read for this, I&rsquo;m just setting the scene.</p>
<p>With that setup I couldn&rsquo;t publish from my phone, which is sometimes all I have on me.</p>
<p>The indie web has a solution for this called <a href="https://indieweb.org/micropub">Micropub</a>
, which is an API for creating posts on your site, even if you use a static site generator like I do.</p>
<h2 id="indiekit">IndieKit</h2>
<p>As mentioned, a few weeks ago at HWC Ricardo showed us his new setup, to which he&rsquo;d added a Micropub server called <a href="https://getindiekit.com">IndieKit</a>
.</p>
<p>It was created by <a href="https://paulrobertlloyd.com/">Paul Robert Lloyd</a>
, who I met (briefly) at an IndieWebCamp <strong>eleven</strong> years ago.</p>
<p>Side note - isn&rsquo;t it strange that there&rsquo;s millions of things on the web but you prefer using the things made by people you&rsquo;ve met in real life?</p>
<p>IndieKit works by connecting to the place you store your posts, which for me is GitHub, and lets you write new ones from the web:</p>
<img
      src="https://paultibbetts.uk/media/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/indiekit.png"
      width="1200"
      height="802"
      alt="IndieKit user interface"
      loading="lazy"
      decoding="async"
      class="w-full h-auto rounded-lg"
    />
<h2 id="-sparkles-">✨ Sparkles ✨</h2>
<p>The other thing a Micropub server lets you do is use any Micropub client you want. You don&rsquo;t have to use the one in Indiekit - which is perfectly fine by the way - you can use a different one if you like.</p>
<p>Or you could use multiple. <a href="https://epilogue.micro.blog/">Epilogue</a>
 and <a href="https://indiebookclub.biz/">indiebookclub</a>
 both let you post about books you&rsquo;ve read.</p>
<p>Or you could post from a native app, like <a href="https://ia.net/writer/">iA Writer</a>
, a markdown editor that lets you post to WordPress, Ghost, and with Micropub: your own website.</p>
<p>The one Ricardo showed us in his demo, because it&rsquo;s got a good interface for posting about songs and albums, was <a href="https://sparkles.sploot.com/">Sparkles</a>
.</p>
<p>I don&rsquo;t post about songs or albums, but I do like how it looks, so I included it in my demo:</p>
<img
      src="https://paultibbetts.uk/media/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/sparkles.png"
      width="1200"
      height="749"
      alt="Sparkles user interface"
      loading="lazy"
      decoding="async"
      class="w-full h-auto rounded-lg"
    />
<h2 id="bonus-content">Bonus content</h2>
<p>And that&rsquo;s where my demo ended.</p>
<p>Here&rsquo;s the extra footage.</p>
<h3 id="home-server">Home server</h3>
<p>I first tried running IndieKit on the Raspberry Pi that hosts my site.</p>
<p>The Pi doesn&rsquo;t have any direct storage attached. That means I can&rsquo;t reliably run a database on it and IndieKit needs one for some of the features I want from it.</p>
<p>I didn&rsquo;t want to rent another server. I already have one at home, so I installed IndieKit there instead.</p>
<p>It works, I can access it from my phone, but only on my home network. Not much of an upgrade.</p>
<h3 id="tunnel">Tunnel</h3>
<p>The next step then was to add it to the &ldquo;tunnel&rdquo; setup I have.</p>
<p>I rent a VPS, which lives in Nürnberg by the way, and have <a href="https://pangolin.net/">Pangolin</a>
 running on it, which is a reverse proxy that sends traffic down a Wireguard tunnel that ends in my home.</p>
<img
      src="https://paultibbetts.uk/media/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/indiekit-phone.png"
      width="1179"
      height="2556"
      alt="IndieKit mobile interface"
      loading="lazy"
      decoding="async"
      class="rounded-lg"
    />
<p>and now I can post to my site, wherever I am 🎉.</p>
<h2 id="deleted-scenes">Deleted scenes</h2>
<p>Dan&rsquo;s indie feed reader <a href="https://feed.city/">feed.city</a>
 - which I discovered through IWC this weekend - caught me testing all of this and <a href="https://feed.city/feed?url=https://paultibbetts.uk/feed.xml#946987">recorded my test posts</a>
.</p>
<p>Sometimes deleted scenes are deleted for a reason. They&rsquo;re boring.</p>
<p>I only included them here as part of the Extended Edition theme I&rsquo;ve chosen to use. Let&rsquo;s skip forward.</p>
<h2 id="behind-the-scenes">Behind the scenes</h2>
<p>When I use Sparkles to post to my site:</p>
<ul>
<li>I go to <a href="https://sparkles.sploot.com/">sparkles.sploot.com</a>
 and enter my website&rsquo;s address</li>
<li>Sparkles sees the address of the Micropub endpoint I declare in the <code>&lt;head&gt;</code> of my site
<ul>
<li>which points at IndieKit</li>
</ul>
</li>
<li>Sparkles connects to IndieKit
<ul>
<li>by going to the VPS in Germany</li>
<li>through the tunnel into my home in the UK</li>
<li>and finds IndieKit on my home server</li>
</ul>
</li>
<li>I write a new post</li>
<li>IndieKit sends it to GitHub
<ul>
<li>GitHub creates a new markdown file</li>
</ul>
</li>
<li>the change triggers my deployment pipeline
<ul>
<li>which builds the site</li>
<li>and pushes it up to the Raspberry Pi</li>
</ul>
</li>
</ul>
<p>This is more complex than a typical hosted solution but it means I can self-host IndieKit at home and access it from anywhere.</p>
<p>If you&rsquo;re into that sort of stuff, stick around, I&rsquo;ll be posting about the setup and sharing the code soon.</p>
<h2 id="sequel">Sequel?</h2>
<p>If you&rsquo;re not, then I might see you at a future IndieWebCamp, hopefully in-person that time.</p>
<p>Maybe that&rsquo;ll be <a href="https://events.indieweb.org/2026/06/-indiewebcamp-nuremberg-7EIKg0lqfg93">IndieWebCamp Nürnberg 2026</a>
 and I&rsquo;ll get to meet my VPS for the first time, as well as some of the wonderful people who made this weekend possible.</p>]]></content:encoded><source:markdown>
The second part of [IndieWebCamp Düsseldorf 2026](https://events.indieweb.org/2026/04/-indiewebcamp-d%C3%BCsseldorf-ewHCZehNA3gg) was &#34;create day&#34; where you take your inspiration from day one, make it a reality, and show it to everyone else.

My inspiration was from a few weeks ago when [Ricardo](https://ricardochavezt.com) demonstrated his new setup at [Homebrew Website Club London](https://hwclondon.co.uk/).  I guess I was prompted into action by the **How to unblock yourself and actually post more often** session this weekend, but I&#39;m trying to give credit where it&#39;s due, since my demo was basically the same as his.

What I didn&#39;t show, however, was all the work that&#39;s been happening over the last few months to make my demo possible, which is why I&#39;m posting this.

Also, I wanted to regain some nerd-cred because my demo was followed by [Naty](https://burgeonlab.com/) who showed us an updated [stats page](https://burgeonlab.com/stats/) , which looks awesome and is something I&#39;m going to have to steal. 

&lt;aside&gt;

&lt;small&gt;Hi Naty 👋, after we spoke at IWC I went on your site and realised who you were. Your site was a big inspiration for mine when I was redesigning it. &lt;em&gt;That&#39;s&lt;/em&gt; why they look similar!&lt;/small&gt;

&lt;/aside&gt;

## Intro

My site&#39;s powered by Hugo, which is a static site generator that turns files into a website. 

I write posts on my laptop and push them up to GitHub, where the site gets generated with the new content and then deployed to my server. I&#39;ve written about that [before](/2026/02/19/moved-my-website-from-github-pages-to-a-raspberry-pi/),  which you don&#39;t need to read for this, I&#39;m just setting the scene.

With that setup I couldn&#39;t publish from my phone, which is sometimes all I have on me.

The indie web has a solution for this called [Micropub](https://indieweb.org/micropub), which is an API for creating posts on your site, even if you use a static site generator like I do.

## IndieKit

As mentioned, a few weeks ago at HWC Ricardo showed us his new setup, to which he&#39;d added a Micropub server called [IndieKit](https://getindiekit.com).

It was created by [Paul Robert Lloyd](https://paulrobertlloyd.com/), who I met (briefly) at an IndieWebCamp **eleven** years ago. 

Side note - isn&#39;t it strange that there&#39;s millions of things on the web but you prefer using the things made by people you&#39;ve met in real life?

IndieKit works by connecting to the place you store your posts, which for me is GitHub, and lets you write new ones from the web:

{{&lt; img src=&#34;https://paultibbetts.uk/media/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/indiekit.png&#34; alt=&#34;IndieKit user interface&#34; class=&#34;w-full h-auto rounded-lg&#34; width=&#34;1200&#34; height=&#34;802&#34; &gt;}}

## ✨ Sparkles ✨

The other thing a Micropub server lets you do is use any Micropub client you want. You don&#39;t have to use the one in Indiekit - which is perfectly fine by the way - you can use a different one if you like. 

Or you could use multiple. [Epilogue](https://epilogue.micro.blog/) and [indiebookclub](https://indiebookclub.biz/) both let you post about books you&#39;ve read. 

Or you could post from a native app, like [iA Writer](https://ia.net/writer/), a markdown editor that lets you post to WordPress, Ghost, and with Micropub: your own website.

The one Ricardo showed us in his demo, because it&#39;s got a good interface for posting about songs and albums, was [Sparkles](https://sparkles.sploot.com/).

I don&#39;t post about songs or albums, but I do like how it looks, so I included it in my demo:

{{&lt; img src=&#34;https://paultibbetts.uk/media/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/sparkles.png&#34; alt=&#34;Sparkles user interface&#34; class=&#34;w-full h-auto rounded-lg&#34; width=&#34;1200&#34; height=&#34;749&#34; &gt;}}

## Bonus content

And that&#39;s where my demo ended.

Here&#39;s the extra footage.

### Home server

I first tried running IndieKit on the Raspberry Pi that hosts my site.

The Pi doesn&#39;t have any direct storage attached. That means I can&#39;t reliably run a database on it and IndieKit needs one for some of the features I want from it.

I didn&#39;t want to rent another server. I already have one at home, so I installed IndieKit there instead.

It works, I can access it from my phone, but only on my home network. Not much of an upgrade.

### Tunnel

The next step then was to add it to the &#34;tunnel&#34; setup I have. 

I rent a VPS, which lives in Nürnberg by the way, and have [Pangolin](https://pangolin.net/) running on it, which is a reverse proxy that sends traffic down a Wireguard tunnel that ends in my home.

{{&lt; img src=&#34;https://paultibbetts.uk/media/2026/04/27/my-indiewebcamp-dusseldorf-demo-extended-edition/indiekit-phone.png&#34; alt=&#34;IndieKit mobile interface&#34; class=&#34;rounded-lg&#34; width=&#34;1179&#34; height=&#34;2556&#34; &gt;}}

and now I can post to my site, wherever I am 🎉.

## Deleted scenes

Dan&#39;s indie feed reader [feed.city](https://feed.city/) - which I discovered through IWC this weekend - caught me testing all of this and [recorded my test posts](https://feed.city/feed?url=https://paultibbetts.uk/feed.xml#946987). 

Sometimes deleted scenes are deleted for a reason. They&#39;re boring. 

I only included them here as part of the Extended Edition theme I&#39;ve chosen to use. Let&#39;s skip forward.

## Behind the scenes

When I use Sparkles to post to my site:

- I go to [sparkles.sploot.com](https://sparkles.sploot.com/) and enter my website&#39;s address
- Sparkles sees the address of the Micropub endpoint I declare in the `&lt;head&gt;` of my site
	- which points at IndieKit
- Sparkles connects to IndieKit
	- by going to the VPS in Germany 
	- through the tunnel into my home in the UK
	- and finds IndieKit on my home server
- I write a new post
- IndieKit sends it to GitHub
	- GitHub creates a new markdown file
- the change triggers my deployment pipeline
	- which builds the site
	- and pushes it up to the Raspberry Pi

This is more complex than a typical hosted solution but it means I can self-host IndieKit at home and access it from anywhere.

If you&#39;re into that sort of stuff, stick around, I&#39;ll be posting about the setup and sharing the code soon.

## Sequel?

If you&#39;re not, then I might see you at a future IndieWebCamp, hopefully in-person that time.

Maybe that&#39;ll be [IndieWebCamp Nürnberg 2026](https://events.indieweb.org/2026/06/-indiewebcamp-nuremberg-7EIKg0lqfg93) and I&#39;ll get to meet my VPS for the first time, as well as some of the wonderful people who made this weekend possible.</source:markdown></item>
  </channel>
</rss>
