<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
			<channel>
				<title>JovianMoon.io</title>
				<description>JovianMoon.io - A blog about web programming</description>
				<link>https://jovianmoon.io</link>
				<atom:link href="https://jovianmoon.io/rss.xml" rel="self" type="application/rss+xml"/>
				
						<item>
							<title>Dispatches from the Other Side: GPU Passthrough with Looking Glass</title>
							<description>I got GPU passthrough and Looking Glass working on Arch. This is the debrief.</description>
							<link>https://jovianmoon.io/posts/looking-glass-gpu-passthrough</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/looking-glass-gpu-passthrough</guid>
							<pubDate>Mon, 06 Apr 2026 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Cheapino Review: A Budget Entry Point to Split Ergo</title>
							<description>For everyone still on the fence about split keyboards. A look at what a $55 AliExpress board gets you, and whether it's enough to get started.</description>
							<link>https://jovianmoon.io/posts/cheapino-budget-split-keyboard</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/cheapino-budget-split-keyboard</guid>
							<pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Managing Dotfiles with GNU Stow</title>
							<description>A simple single-package approach to dotfiles management with GNU Stow, plus a rofi menu for quick access</description>
							<link>https://jovianmoon.io/posts/managing-dotfiles-with-gnu-stow</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/managing-dotfiles-with-gnu-stow</guid>
							<pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Piantor Pro Review: My RSI Journey and Switching to a 36-Key Keyboard</title>
							<description>A Piantor Pro showcase and the story of how repetitive strain injury forced me to rethink everything about how I type.</description>
							<link>https://jovianmoon.io/posts/rsi-36-key-keyboard</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/rsi-36-key-keyboard</guid>
							<pubDate>Tue, 10 Feb 2026 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Apple Magic Trackpad (USB-C) on Arch Linux with Hyprland</title>
							<description>Getting the Magic Trackpad working with full gesture support on Linux</description>
							<link>https://jovianmoon.io/posts/magic-trackpad-arch-linux</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/magic-trackpad-arch-linux</guid>
							<pubDate>Fri, 30 Jan 2026 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Getting Svelte Inspector Working with Neovim</title>
							<description>Setting up click-to-edit from browser to Neovim on Arch Linux</description>
							<link>https://jovianmoon.io/posts/svelte-inspector-with-neovim</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/svelte-inspector-with-neovim</guid>
							<pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Building the Craft Roulette Giveaway Spinner: Three Years of Interactive OBS Development</title>
							<description>Building an automated prize wheel system with Svelte, WebSockets, Stream Deck, and Directus to manage weekly giveaways for hundreds of contributors.</description>
							<link>https://jovianmoon.io/posts/craft-roulette-give-away-spinner</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/craft-roulette-give-away-spinner</guid>
							<pubDate>Sat, 15 Nov 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>SSR Theme Switching Without Flash in SvelteKit</title>
							<description>How to implement theme switching that avoids flash when users prefer the opposite of their system theme</description>
							<link>https://jovianmoon.io/posts/ssr-theme-no-flash</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/ssr-theme-no-flash</guid>
							<pubDate>Sat, 13 Sep 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Adding Audio Narration to a Memorial Website in 45 Minutes</title>
							<description>How Claude Code helped me build an automated audio pipeline for 100+ markdown articles using ElevenLabs</description>
							<link>https://jovianmoon.io/posts/adding-audio-narration-to-a-memorial-website-in-45-minutes</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/adding-audio-narration-to-a-memorial-website-in-45-minutes</guid>
							<pubDate>Thu, 21 Aug 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Generating Open Graph Images with SvelteKit Components</title>
							<description>Create dynamic Open Graph images using SvelteKit components with svelte-component-to-image - now with simplified installation!</description>
							<link>https://jovianmoon.io/posts/generating-open-graph-images-with-sveltekit-components</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/generating-open-graph-images-with-sveltekit-components</guid>
							<pubDate>Mon, 30 Jun 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Installing and using Svelte Component To Image with Svelte 5 (DEPRECATED)</title>
							<description>Generate dynamic raster images on the fly for Open Graph, Email Marketing, or anything else.</description>
							<link>https://jovianmoon.io/posts/installing-and-using-svelte-component-to-image</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/installing-and-using-svelte-component-to-image</guid>
							<pubDate>Fri, 27 Jun 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Automate (almost) your YouTube Chapter Creation in OBS with Elgato Timestamps</title>
							<description>A workflow and tool to transform your content timestamps into YouTube-ready chapter markers.</description>
							<link>https://jovianmoon.io/posts/automating-youtube-chapters-with-elgato-timestamps</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/automating-youtube-chapters-with-elgato-timestamps</guid>
							<pubDate>Sat, 03 May 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Self-hosting Umami Analytics on a Raspberry Pi</title>
							<description>Breaking free from expensive analytics platforms by running Umami on a Raspberry Pi with Cloudflare tunnels</description>
							<link>https://jovianmoon.io/posts/self-hosting-my-analytics-on-a-raspberry-pi</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/self-hosting-my-analytics-on-a-raspberry-pi</guid>
							<pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Making an interactive OBS stream overlay with Cloudflare Durable Objects and Svelte</title>
							<description>Control a dynamic stream overlay from an Elgato Streamdeck in an OBS Browser Source that you can self host.</description>
							<link>https://jovianmoon.io/posts/making-an-interactive-obs-overlay-with-cloudflare-durable-objects-and-svelte</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/making-an-interactive-obs-overlay-with-cloudflare-durable-objects-and-svelte</guid>
							<pubDate>Tue, 25 Feb 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Using GLSL shaders on the web without dependencies</title>
							<description>Wrangling the power of LLMs to create stunning visuals from GLSL shaders.</description>
							<link>https://jovianmoon.io/posts/using-glsl-shaders-on-websites-with-no-dependencies</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/using-glsl-shaders-on-websites-with-no-dependencies</guid>
							<pubDate>Mon, 24 Feb 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>I made my homepage multiplayer with websockets</title>
							<description>And PartyKit made it easier than ever!</description>
							<link>https://jovianmoon.io/posts/i-made-my-homepage-multiplayer</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/i-made-my-homepage-multiplayer</guid>
							<pubDate>Tue, 18 Feb 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>SvelteKit form validation with Valibot</title>
							<description>Creating a formData extraction system that relies on Valibot schemas for simple validation</description>
							<link>https://jovianmoon.io/posts/sveltekit-form-validation-with-valibot</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/sveltekit-form-validation-with-valibot</guid>
							<pubDate>Sun, 16 Feb 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Automating Directus TypeForge with NPM Scripts</title>
							<description>A guide to automating type generation for Directus using TypeForge and custom NPM scripts</description>
							<link>https://jovianmoon.io/posts/generating-typescript-types-from-directus</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/generating-typescript-types-from-directus</guid>
							<pubDate>Fri, 31 Jan 2025 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Enhancing HTML Form Validation with Svelte 5</title>
							<description>Building on the browser’s built-in form validation, Svelte 5 can enrich the user
experience with custom validation and feedback.
</description>
							<link>https://jovianmoon.io/posts/enhancing-html-form-validation-with-svelte-5</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/enhancing-html-form-validation-with-svelte-5</guid>
							<pubDate>Fri, 13 Dec 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Do you really need a CMS?</title>
							<description>A CMS is a powerful tool, but it's not always the right tool for the job.</description>
							<link>https://jovianmoon.io/posts/do-you-really-need-a-cms</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/do-you-really-need-a-cms</guid>
							<pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>OverReturn: A Cautionary Tale</title>
							<description>Some easy SvelteKit security tips on how to avoid this common mistake.</description>
							<link>https://jovianmoon.io/posts/overreturn-a-cautionary-tale</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/overreturn-a-cautionary-tale</guid>
							<pubDate>Thu, 14 Nov 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>How I Set Up My Neovim for SvelteKit</title>
							<description>My LSP config setup for SvelteKit in 2024 using Neovim</description>
							<link>https://jovianmoon.io/posts/neovim-lsp-setup-sveltekit</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/neovim-lsp-setup-sveltekit</guid>
							<pubDate>Wed, 13 Nov 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>A Really Simple Contact Form in SvelteKit using Form Actions</title>
							<description>If you need a contact form for your SvelteKit site, this is a simple example using Form Actions.</description>
							<link>https://jovianmoon.io/posts/a-really-simple-contact-form-in-sveltekit</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/a-really-simple-contact-form-in-sveltekit</guid>
							<pubDate>Tue, 12 Nov 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Copy a string to the system clipboard in Svelte</title>
							<description>Make a button that copies a string to the system clipboard in Svelte.</description>
							<link>https://jovianmoon.io/posts/copy-to-clipboard-in-svelte</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/copy-to-clipboard-in-svelte</guid>
							<pubDate>Mon, 11 Nov 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>My approach to sitemaps in SvelteKit</title>
							<description>How I programmatically generate sitemaps in SvelteKit using a server endpoint.</description>
							<link>https://jovianmoon.io/posts/my-approach-to-sitemaps-in-sveltekit</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/my-approach-to-sitemaps-in-sveltekit</guid>
							<pubDate>Sat, 09 Nov 2024 00:00:00 GMT</pubDate>
						</item>
					
						<item>
							<title>Generating a Randomized Starfield in SvelteKit</title>
							<description>An overview of how I generate the random starfield backgrounds on this site using SvelteKit SSR.</description>
							<link>https://jovianmoon.io/posts/generating-a-starfield-in-svelte</link>
							<guid isPermaLink="true">https://jovianmoon.io/posts/generating-a-starfield-in-svelte</guid>
							<pubDate>Thu, 24 Oct 2024 00:00:00 GMT</pubDate>
						</item>
					
			</channel>
		</rss>