Personal site. Astro (static output, plain JS), Tailwind CSS v4 via @tailwindcss/vite, Markdown/MDX content in git, three.js from npm (keyboard page only), self-hosted fonts (@fontsource-variable/inter-tight), hosted on Cloudflare Pages.
src/pages/:/(home),/blog/and/blog/<slug>/,/projects/<slug>/,/keyboard/src/content/blog/*.md: posts withtitle,date,minutes,tags,excerptsrc/content/projects/*.mdx: the homepage boxes, withtitle(side name),order,summary(the paragraph beside a focused box)src/scripts/: the animation scripts (site.js,blog.js,keyboard.js) and the<ascii-art>elementsrc/vendor/ascii/: the planet piece from ascii.rest (MIT), copied in so nothing loads from a CDNsrc/styles/:global.css(Tailwind + font) and one stylesheet per page
npm run dev, npm run build (output in dist/), npm run preview
Build command npm run build, output directory dist, Node 22 (.node-version).