<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Wandering Monster</title>
  <subtitle>A coding blog about Astro, Svelte, TypeScript, self-hosting, and the craft of building for the web. Written by a developer who rolled a natural 20 on curiosity.</subtitle>
  <link href="https://wanderingmonster.dev/" rel="alternate" />
  <link href="https://wanderingmonster.dev/atom.xml" rel="self" type="application/atom+xml" />
  <id>https://wanderingmonster.dev/</id>
  <updated>2026-04-06T00:00:00.000Z</updated>
  <generator>Astro</generator>
  <entry>
    <title>Flameshot to XBackBone on Linux: The Keyboard Shortcut Graveyard</title>
    <link href="https://wanderingmonster.dev/blog/flameshot-xbackbone-linux" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/flameshot-xbackbone-linux</id>
    <published>2026-04-06T00:00:00.000Z</published>
    <updated>2026-04-06T00:00:00.000Z</updated>
    <summary>Getting a one-key screenshot-and-upload workflow on Bazzite KDE with Flameshot and XBackBone. The script is ten lines. The keyboard shortcut took two hours and a tour through four KDE subsystems.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="linux" />
    <category term="self-hosting" />
    <category term="kde" />
    <category term="bazzite" />
    <category term="flameshot" />
    <category term="xbackbone" />
    <category term="screenshot" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>A Toolkit for Assessing Cloudron Packaging Difficulty</title>
    <link href="https://wanderingmonster.dev/blog/cloudron-packaging-assessment-toolkit" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/cloudron-packaging-assessment-toolkit</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Before packaging an app for Cloudron, you should know what you are getting into. This toolkit scores apps across eleven axes of structural and compliance difficulty, so you can prioritise wisely.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
    <category term="tutorial" />
  </entry>
  <entry>
    <title>Deploying Astro 6 to Cloudron Surfer</title>
    <link href="https://wanderingmonster.dev/blog/deploying-astro-to-cloudron-surfer" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/deploying-astro-to-cloudron-surfer</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>A practical guide to deploying a static Astro site to Cloudron Surfer via WebDAV, including the surfer CLI gotchas that will waste your afternoon.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="astro" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Expressive Code with Tokyo Night</title>
    <link href="https://wanderingmonster.dev/blog/expressive-code-tokyo-night" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/expressive-code-tokyo-night</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Setting up Expressive Code in Astro 6 with the Tokyo Night theme, custom fonts, line highlighting, and file name tabs.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="astro" />
    <category term="expressive-code" />
    <category term="theming" />
    <category term="tutorial" />
  </entry>
  <entry>
    <title>Monster Manual: AppFlowy Cloud</title>
    <link href="https://wanderingmonster.dev/blog/monster-manual-appflowy" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/monster-manual-appflowy</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Cloudron packaging assessment for AppFlowy Cloud. Structural difficulty 11/14, compliance cost 11/13. Tightly coupled GoTrue auth and multi-service architecture make this impractical.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="monster-manual" />
    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Monster Manual: ejabberd</title>
    <link href="https://wanderingmonster.dev/blog/monster-manual-ejabberd" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/monster-manual-ejabberd</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Cloudron packaging assessment for ejabberd. Structural difficulty 10/14, compliance cost 9/13. A well-engineered XMPP server that is fundamentally incompatible with Cloudron&apos;s architecture.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="monster-manual" />
    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Monster Manual: FacilMap</title>
    <link href="https://wanderingmonster.dev/blog/monster-manual-facilmap" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/monster-manual-facilmap</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Cloudron packaging assessment for FacilMap. Structural difficulty 1/14, compliance cost 3/13. One of the simplest apps to package. A quick win for the community.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="monster-manual" />
    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Monster Manual: Huginn</title>
    <link href="https://wanderingmonster.dev/blog/monster-manual-huginn" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/monster-manual-huginn</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Cloudron packaging assessment for Huginn. Structural difficulty 6/14, compliance cost 5/13. A viable and worthwhile packaging candidate for personal web automation.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="monster-manual" />
    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Monster Manual: Prosody</title>
    <link href="https://wanderingmonster.dev/blog/monster-manual-prosody" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/monster-manual-prosody</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Cloudron packaging assessment for Prosody XMPP server. Structural difficulty 2/14, compliance cost 7/13. Lightweight and simple, but XMPP protocol requirements drive the compliance cost.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="monster-manual" />
    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Monster Manual: Supabase</title>
    <link href="https://wanderingmonster.dev/blog/monster-manual-supabase" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/monster-manual-supabase</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>Cloudron packaging assessment for Supabase. Structural difficulty 14/14, compliance cost 10/13. The theoretical maximum score. This is a platform, not an application.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="monster-manual" />
    <category term="cloudron" />
    <category term="self-hosting" />
    <category term="plane-of-infrastructure" />
  </entry>
  <entry>
    <title>Welcome to Wandering Monster</title>
    <link href="https://wanderingmonster.dev/blog/welcome-to-wandering-monster" rel="alternate" />
    <id>https://wanderingmonster.dev/blog/welcome-to-wandering-monster</id>
    <published>2026-03-17T00:00:00.000Z</published>
    <updated>2026-03-17T00:00:00.000Z</updated>
    <summary>The first post. Why this blog exists, what it covers, and why it is named after a table roll.</summary>
    <author><name>Wandering Monster</name></author>

    <category term="meta" />
    <category term="astro" />
    <category term="svelte" />
    <category term="cloudron" />
    <category term="self-hosting" />
  </entry>
</feed>