<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Starlab blog</title><link>https://starlab.io.vn/blog/</link><description>Small, tested developer tools and handbooks: zero-downtime deploys, restorable backups and a Go webhook receiver. Every claim is measured and the limits are listed.</description><language>en</language>
<item><title>I destroyed my server on purpose and timed the recovery</title><link>https://starlab.io.vn/blog/destroy-your-server-recovery-drill/</link><guid>https://starlab.io.vn/blog/destroy-your-server-recovery-drill/</guid><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><description>A scripted disaster-recovery drill: destroy the server, rebuild from restic and check the data. Timings, plus five bugs the drill found in my own scripts.</description></item>
<item><title>Receiving signed webhooks in Go: verify, dedupe, retry</title><link>https://starlab.io.vn/blog/receiving-webhooks-go/</link><guid>https://starlab.io.vn/blog/receiving-webhooks-go/</guid><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><description>How to receive webhooks safely in Go: raw-body signatures for GitHub, Stripe and Standard Webhooks, dedupe, a SQLite queue and retries, with numbers.</description></item>
<item><title>Zero-downtime deploys on one VPS with Caddy and pm2</title><link>https://starlab.io.vn/blog/zero-downtime-deploys-one-vps/</link><guid>https://starlab.io.vn/blog/zero-downtime-deploys-one-vps/</guid><pubDate>Mon, 09 Nov 2026 00:00:00 +0000</pubDate><description>Blue/green deploys with Caddy and pm2 on one server, with the commands, the pm2 symlink trap and measured failed-request counts under load.</description></item>
</channel></rss>
