<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Blog on Thorsten Hans</title>
		<link>https://thorsten-hans.com/tags/blog/</link>
		<description>Recent content in Blog on Thorsten Hans</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Wed, 15 Oct 2025 10:15:00 +0200</lastBuildDate>
		
			<atom:link href="https://thorsten-hans.com/tags/blog/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>What I’ve Been Up To</title>
				<link>https://thorsten-hans.com/whats-ive-been-up-to/</link>
				<pubDate>Wed, 15 Oct 2025 10:15:00 +0200</pubDate>
				<guid>https://thorsten-hans.com/whats-ive-been-up-to/</guid>
				<description>&lt;p&gt;Although this blog became a bit quite recently, I wrote a bunch of articles over on our &lt;a href=&#34;https://www.fermyon.com/blog&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;corporate blog&lt;/a&gt;&#xA;. I thought it&amp;rsquo;s worth sharing a comprehensive list of the posts I wrote:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/openapi-docs-for-spin-with-rust&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;OpenAPI Documentation for Spin Apps with Rust&lt;/a&gt;&#xA;&#xA;In this guide, I’ll show you how to generate OpenAPI Specification (OAS) documentation directly from Spin apps written in Rust. You’ll learn how this improves API discoverability, speeds up onboarding, and unlocks tooling like SDK generation and testing.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/spin-wizer&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Supercharging Spin Applications with Wizer&lt;/a&gt;&#xA;&#xA;In this post, I’ll demonstrate how to use the WebAssembly pre-initializer Wizer to preload data into Spin apps — to speed up request processing. You’ll see how this technique makes your apps launch instantly and respond with near-zero latency.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/why-we-chose-rust-for-spin&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Why We Chose Rust For Spin&lt;/a&gt;&#xA;&#xA;In this article, I’ll explain why we built Spin in Rust and how its memory safety, speed, and ecosystem made it the perfect fit. I’ll also share how Rust’s tooling and developer experience align with our vision for Spin.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/authoring-custom-spin-templates&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Authoring Custom Spin Templates&lt;/a&gt;&#xA;&#xA;In this tutorial, I’ll walk you through creating your own custom Spin templates so you can scaffold projects with consistent structure and boilerplate. This is especially helpful if you want to speed up “Sprint Zero” or enforce team best practices.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/spin-js-router-showdown&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Spin JS/TS Router Showdown: Hono vs Itty vs Manual Routing&lt;/a&gt;&#xA;&#xA;In this post, I’ll compare three ways to handle routing in Spin JavaScript/TypeScript apps: &lt;code&gt;Hono&lt;/code&gt;, &lt;code&gt;Itty&lt;/code&gt;, and manual routing. You’ll see how each approach affects startup time, runtime performance, and memory usage.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/hono-router-with-spin&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Routing in Spin Apps with Hono&lt;/a&gt;&#xA;&#xA;In this article, I’ll show you how to use the lightweight &lt;code&gt;Hono&lt;/code&gt; Router with Spin now that the SDK no longer ships with a built-in router. You’ll learn how to build clean, expressive routes with middleware support using a familiar Express-style API.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/stream-data-from-linode-object-storage&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Stream Data from Linode Object Storage using the AWS S3 SDK&lt;/a&gt;&#xA;&#xA;In this tutorial, I’ll teach you how to build a Spin app that streams files directly from Linode Object Storage using the AWS S3 SDK. You’ll learn how to set up access, stream large files, and deploy the app to Fermyon Wasm Functions.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/sbom-for-your-spin-apps&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Software Bill of Materials (SBOM) for your Spin Apps&lt;/a&gt;&#xA;&#xA;In this post, I’ll explain what an SBOM is and why it’s essential for security and compliance in modern applications. Then I’ll show you how to generate SBOMs for your Spin apps to make your supply chain transparent and safe.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/advent-of-spin-2024-wrap&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Advent of Spin 2024 Wrap-up&lt;/a&gt;&#xA;&#xA;In this wrap-up, I’ll recap the Advent of Spin 2024 coding challenges and share some of the most creative solutions from the community. You’ll see how developers built festive apps, learned new languages, and had fun experimenting with Spin.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/scaling-spinapps-with-keda&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Scaling Spin Apps With KEDA&lt;/a&gt;&#xA;&#xA;In this article, I’ll show you how to scale Spin apps dynamically on Kubernetes using SpinKube and KEDA. You’ll learn how to set up autoscaling so your apps respond to real traffic while saving on resources.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/advent-of-spin-2024&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Announcing Advent of Spin 2024&lt;/a&gt;&#xA;&#xA;In this announcement, I’ll introduce the Advent of Spin 2024 — a series of holiday coding challenges to help you explore Spin and related tools. I’ll explain how to join, what you’ll build, and what prizes you can win.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/observing-spin-apps-with-otel-and-net-aspire-dashboard&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Observing Spin Apps with OpenTelemetry and the .NET Aspire Dashboard&lt;/a&gt;&#xA;&#xA;In this guide, I’ll show you how to observe Spin apps by exporting metrics, traces, and logs with OpenTelemetry and visualizing them in the .NET Aspire Dashboard. You’ll see how easy it is to get deep insights into your apps with minimal setup.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/gh-plugin&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Spin gh – Generate GitHub Actions for your Spin Apps in seconds&lt;/a&gt;&#xA;&#xA;In this post, I’ll introduce you to &lt;code&gt;spin gh&lt;/code&gt;, a plugin that generates GitHub Actions workflows for your Spin apps in seconds. You’ll learn how to install it, extend your CLI with plugins, and simplify your CI/CD pipeline.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/wasm-jobs-and-cronjobs-with-spinkube&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;WebAssembly Jobs and CronJobs in Kubernetes with SpinKube &amp;amp; the Spin Command Trigger&lt;/a&gt;&#xA;&#xA;In this tutorial, I’ll show you how to run Spin apps as Kubernetes Jobs and CronJobs using the &lt;code&gt;command&lt;/code&gt; trigger with SpinKube. You’ll learn how to schedule recurring workloads or run one-off tasks in a Wasm-powered environment.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/azure-cache-for-redis-as-key-value-store-with-spinkube&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Azure Cache for Redis as Key-Value Store with SpinKube&lt;/a&gt;&#xA;&#xA;In this guide, I’ll walk you through connecting a Spin app on AKS to Azure Cache for Redis with secure networking using Private Endpoints. You’ll see how to use Redis as a scalable key-value store for your Spin workloads.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/building-with-spin-htmx&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Building Serverless Apps with Spin and HTMX&lt;/a&gt;&#xA;&#xA;In this tutorial, I’ll show you how to build a lightweight shopping list app using Spin on the backend and &lt;code&gt;htmx&lt;/code&gt; for the frontend. You’ll learn how to make dynamic UIs without heavy JavaScript frameworks.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.fermyon.com/blog/webassembly-in-azure-with-azure-kubernetes-service-and-spinkube&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;WebAssembly in Azure with Azure Kubernetes Service and SpinKube&lt;/a&gt;&#xA;&#xA;In this article, I’ll walk you through running WebAssembly workloads on Azure Kubernetes Service with SpinKube. You’ll learn how to integrate Spin apps with AKS, Azure Container Registry, and Azure Identities for secure deployments.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
			</item>
			<item>
				<title>Closing down 2020 and approaching 2021</title>
				<link>https://thorsten-hans.com/closing-down-2020-and-approaching-2021/</link>
				<pubDate>Thu, 31 Dec 2020 00:00:00 +0000</pubDate>
				<guid>https://thorsten-hans.com/closing-down-2020-and-approaching-2021/</guid>
				<description>&lt;p&gt;2020 was quite challenging for everyone. We made our way through the pandemic so far, and I hope this post finds all of you healthy. That said, I want to look back at 2020 share some numbers and do a quick a forecast for 2021.&lt;/p&gt;&#xA;&lt;h2 id=&#34;blog-statistics&#34;&gt;Blog statistics&lt;/h2&gt;&#xA;&lt;p&gt;I am pretty satisfied with my blogging habits in 2020. But I did not publish consistently. I maintained a backlog of topics that I wanted to cover over the year. However, sometimes I struggled finishing articles. English is not my primary language, and creating posts takes more time than it actually would in German. Anyways, let&amp;rsquo;s have a look at the numbers:&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
