[{"data":1,"prerenderedAt":187},["ShallowReactive",2],{"page-colophon":3},{"id":4,"title":5,"body":6,"description":178,"extension":179,"meta":180,"navigation":181,"path":182,"seo":183,"stem":184,"updated":185,"__hash__":186},"pages\u002Fpages\u002Fcolophon.md","Colophon",{"type":7,"value":8,"toc":170},"minimark",[9,13,18,103,107,127,131,134,138],[10,11,12],"p",{},"This site is built and deployed deliberately small. The goal is for the site itself to be a working showcase of the stack, not a generic portfolio shell.",[14,15,17],"h2",{"id":16},"stack","Stack",[19,20,21,43,54,76,87,97],"ul",{},[22,23,24,28,29,36,37,42],"li",{},[25,26,27],"strong",{},"Framework:"," ",[30,31,35],"a",{"href":32,"rel":33},"https:\u002F\u002Fnuxt.com",[34],"nofollow","Nuxt 4"," on ",[30,38,41],{"href":39,"rel":40},"https:\u002F\u002Fvuejs.org",[34],"Vue 3",". Server-side rendered at build time.",[22,44,45,28,48,53],{},[25,46,47],{},"Runtime and package manager:",[30,49,52],{"href":50,"rel":51},"https:\u002F\u002Fbun.sh",[34],"Bun",". Faster installs, single binary, fewer moving parts than Node + npm.",[22,55,56,28,59,67,68,71,72,75],{},[25,57,58],{},"Content pipeline:",[30,60,63],{"href":61,"rel":62},"https:\u002F\u002Fcontent.nuxt.com",[34],[64,65,66],"code",{},"@nuxt\u002Fcontent"," v3. Markdown files in ",[64,69,70],{},"content\u002F",", indexed at build time with SQLite (",[64,73,74],{},"better-sqlite3",") and queried from page components like a tiny embedded CMS.",[22,77,78,28,81,86],{},[25,79,80],{},"Hosting:",[30,82,85],{"href":83,"rel":84},"https:\u002F\u002Fpages.cloudflare.com",[34],"Cloudflare Pages",". Static prerendered output, edge-cached, no origin server to babysit.",[22,88,89,92,93,96],{},[25,90,91],{},"Styling:"," Plain CSS in ",[64,94,95],{},"app\u002Fapp.vue",". No Tailwind, no CSS-in-JS, no design system — the page count is small enough that a few hundred lines of CSS does the job, and the cascade is doing real work.",[22,98,99,102],{},[25,100,101],{},"Type font:"," Inter via system fallback chain. Loaded from the user's OS where available; no web-font network request.",[14,104,106],{"id":105},"why-these-choices","Why these choices",[19,108,109,115,121],{},[22,110,111,114],{},[25,112,113],{},"Why Nuxt over plain Vite or Astro:"," I wanted file-based routing, SSG out of the box, and a content layer that doesn't require wiring up MDX manually. Nuxt Content gives that with one module.",[22,116,117,120],{},[25,118,119],{},"Why Cloudflare Pages over Vercel\u002FNetlify:"," I already use Cloudflare for DNS and want CDN to be a feature I depend on, not a vendor lock-in. Pages keeps that boundary clean.",[22,122,123,126],{},[25,124,125],{},"Why no Tailwind:"," The site is small and the design language is mine, not a utility-class dialect. When the page surface grows enough to justify the abstraction, I'll revisit.",[14,128,130],{"id":129},"source","Source",[10,132,133],{},"The source for this site is on GitHub — TODO: link once the remote is set.",[14,135,137],{"id":136},"credits","Credits",[19,139,140,147,160],{},[22,141,142,143,146],{},"Page structure inspired by the long tradition of personal sites that bother having a ",[64,144,145],{},"\u002Fcolophon"," at all.",[22,148,149,150,153,154,159],{},"The ",[64,151,152],{},"\u002Fuses"," page convention comes from ",[30,155,158],{"href":156,"rel":157},"https:\u002F\u002Fuses.tech\u002F",[34],"uses.tech",".",[22,161,149,162,153,165,159],{},[64,163,164],{},"\u002Fnow",[30,166,169],{"href":167,"rel":168},"https:\u002F\u002Fnownownow.com",[34],"nownownow.com",{"title":171,"searchDepth":172,"depth":172,"links":173},"",2,[174,175,176,177],{"id":16,"depth":172,"text":17},{"id":105,"depth":172,"text":106},{"id":129,"depth":172,"text":130},{"id":136,"depth":172,"text":137},"How nickczj.com is built — the stack, the choices, and the trade-offs.","md",{},true,"\u002Fpages\u002Fcolophon",{"title":5,"description":178},"pages\u002Fcolophon","2026-05-05","nDuQsjepIBtOAgMvBEHwF6DA0h6_ok9kyz-FqkI4YyQ",1777964619873]