frontend
-
Adding a Russian locale to an Astro blog, no CMS
How I added bilingual EN/RU posts to a static Astro blog without a headless CMS: route duplication, shared-slug file pairing, hreflang, and a switcher that finds the counterpart.
-
Typed content with Zod: schema as a build-time contract
An Astro content-collection Zod schema is not just validation - it is a build-time contract that turns a folder of MDX files into a fully typed CMS with no backend.
-
Why I rewrote my portfolio from Nuxt to Astro, in numbers
I rewrote my portfolio from Nuxt 3 to Astro 5 and tracked every metric that moved. Build time, bundle, Lighthouse, dev boot - the receipts for the swap.