Personal website built with Astro. Run locally with:
bun install
bun run devbun run build runs Astro's type checks and creates the static site in dist/.
bun run preview serves the production build.
A live, code-drawn blue seascape with painterly texture, Romanticist atmosphere, and an asymmetric composition. A larger breaking wave sits beneath an opening in the clouds. Green glazes follow its translucent face; foam forms along the moving crests. Cormorant and Spectral provide the typography.
src/data/site.ts: profile, experience, and links.src/styles/global.css: colors, typography, and responsive layout.src/shaders/sea.frag.glsl: the complete procedural painting. Clouds, wave shapes, pigment, and foam are calculated afresh each frame; there are no image textures or generated artwork.src/scripts/sea.ts: native WebGL renderer and animation lifecycle.src/components/Sea.astro: an inline SVG drawing for browsers without WebGL or JavaScript.
The painting targets 30 fps, caps its rendering resolution at 1.1 million pixels, and reduces resolution on slower devices. It stops when offscreen or in a hidden browser tab. Reduced-motion preferences display a still frame. Pointer and scroll movement subtly shift the composition. No graphics dependencies are needed.
Netlify serves the static build. netlify.toml proxies /fish and /restaurants
to their independently deployed sites; those routes need Netlify to work locally.
The homepage keeps its existing Umami events and social metadata.