<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>ShockStack</title><description>Convention-first monorepo template.</description><link>https://shockstack.dev/</link><item><title>Hello World</title><link>https://shockstack.dev/blog/hello-world/</link><guid isPermaLink="true">https://shockstack.dev/blog/hello-world/</guid><description>Welcome to ShockStack — a convention-first monorepo template.</description><pubDate>Sat, 28 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Why Convention-First Matters</title><link>https://shockstack.dev/blog/why-convention-first/</link><guid isPermaLink="true">https://shockstack.dev/blog/why-convention-first/</guid><description>An opinionated take on why monorepo templates should make decisions for you, not ask you to make them.</description><pubDate>Fri, 27 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Design Tokens Deep Dive</title><link>https://shockstack.dev/blog/design-tokens-deep-dive/</link><guid isPermaLink="true">https://shockstack.dev/blog/design-tokens-deep-dive/</guid><description>How a single color value flows from a JSON token through Style Dictionary into CSS variables, Tailwind utilities, and TypeScript constants.</description><pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Astro + Vue Islands Architecture</title><link>https://shockstack.dev/blog/astro-vue-islands/</link><guid isPermaLink="true">https://shockstack.dev/blog/astro-vue-islands/</guid><description>When to use Astro components for static content and Vue islands for interactivity — and how hydration strategies affect performance.</description><pubDate>Wed, 25 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Tailwind v4: What Actually Changed</title><link>https://shockstack.dev/blog/tailwind-v4-migration/</link><guid isPermaLink="true">https://shockstack.dev/blog/tailwind-v4-migration/</guid><description>The practical differences between Tailwind 3 and 4 — new Vite plugin, CSS-first config, @theme blocks, and how ShockStack uses them.</description><pubDate>Tue, 24 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Better Auth in Astro 5</title><link>https://shockstack.dev/blog/better-auth-astro/</link><guid isPermaLink="true">https://shockstack.dev/blog/better-auth-astro/</guid><description>How ShockStack integrates Better Auth for server-side sessions, the Drizzle adapter pattern, protected routes, and client-side auth.</description><pubDate>Mon, 23 Feb 2026 00:00:00 GMT</pubDate></item><item><title>.NET Aspire for Full-Stack Dev</title><link>https://shockstack.dev/blog/dotnet-aspire-fullstack/</link><guid isPermaLink="true">https://shockstack.dev/blog/dotnet-aspire-fullstack/</guid><description>How .NET Aspire orchestrates Postgres, the API, and the Astro frontend with a single command — and why it beats docker-compose for dev.</description><pubDate>Sun, 22 Feb 2026 00:00:00 GMT</pubDate></item><item><title>Zero-JS Animations With Modern CSS</title><link>https://shockstack.dev/blog/css-scroll-animations/</link><guid isPermaLink="true">https://shockstack.dev/blog/css-scroll-animations/</guid><description>Scroll-driven animations, enter transitions, and discrete display changes — all in CSS, with no JavaScript and full accessibility.</description><pubDate>Sat, 21 Feb 2026 00:00:00 GMT</pubDate></item></channel></rss>