[{"data":1,"prerenderedAt":56},["ShallowReactive",2],{"blog-posts":3},[4,14,24,32,40,48],{"path":5,"title":6,"description":7,"date":8,"tags":9,"image":13},"\u002Fblog\u002F149-prompts","What 149 prompts actually look like","I built this site by talking to an AI agent instead of typing most of the code. Here's the honest tally, and what surprised me.","2026-07-18",[10,11,12],"AI","Process","Reflection",null,{"path":15,"title":16,"description":17,"date":18,"tags":19,"image":23},"\u002Fblog\u002Fnuxt-series-deploy","Building a Nuxt CV, Part 3: Deploy","From a local build to a self-hosted container behind nginx — the deploy script, Docker image, and the gotchas worth knowing.","2026-07-15",[20,21,22],"Nuxt","Deployment","Series","\u002Fimages\u002Fblog\u002Fnuxt-series-3.svg",{"path":25,"title":26,"description":27,"date":28,"tags":29,"image":13},"\u002Fblog\u002Fbuilding-this-cv-with-nuxt","Building this CV site with Nuxt 4","How I built a fast, minimal, self-hosted portfolio with Nuxt 4, static generation, and a Resend contact form.","2026-07-13",[20,30,31],"Performance","DX",{"path":33,"title":34,"description":35,"date":36,"tags":37,"image":39},"\u002Fblog\u002Fnuxt-series-content","Building a Nuxt CV, Part 2: Content","Modelling CV data as typed TypeScript objects and wiring the blog with @nuxt\u002Fcontent, so facts live in one place and render everywhere.","2026-07-08",[20,38,22],"Content","\u002Fimages\u002Fblog\u002Fnuxt-series-2.svg",{"path":41,"title":42,"description":43,"date":44,"tags":45,"image":47},"\u002Fblog\u002Fnuxt-series-foundations","Building a Nuxt CV, Part 1: Foundations","Starting a portfolio from an empty directory — the stack decisions, project layout, and why Nuxt 4 in SSG mode is the right base.","2026-07-01",[20,46,22],"Architecture","\u002Fimages\u002Fblog\u002Fnuxt-series-1.svg",{"path":49,"title":50,"description":51,"date":52,"tags":53,"image":13},"\u002Fblog\u002Fwhy-static-generation","Why static generation is perfect for a portfolio","Static-first sites load instantly, cost almost nothing to host, and stay secure. Here's why SSG fits a CV.","2026-06-20",[54,30,55],"SSG","Web",1786402985328]