Back to Projects
nickringelmann.com homepage hero introducing Nick as a freelance product designer based in Hamburg

Rework of My Personal Website

nickringelmann.com
PortfolioAstroTypeScriptFrontendUX DesignSelf-Hosted Backend
Role
Concept, Design & Implementation
Timeframe
1 week
Year
2026
Tools
Claude Code, Codex, VS Code, Figma, MCP, CLI

My own site is the one project where I'm both client and designer, so I use it to test decisions before I'd recommend them to anyone else. It's deliberately plain: no page builder, no component library pulled in from npm, a handful of Astro components and one stylesheet I can read start to finish. When I added a contact page, I skipped the usual third-party form service and built a small PHP backend instead, so a message sent through the form gets mailed straight from my own IONOS inbox rather than passing through someone else's server first.

The site runs on Astro 7 as a fully static build. I type project data in TypeScript and write blog posts in Markdown through Astro's Content Collections. Dark mode comes down to a single data attribute on the html tag: I persist it in localStorage and set it before paint so the page never flashes the wrong theme. Screenshots and photos go through Astro's image pipeline, which resizes everything to WebP with retina versions instead of me shipping full-resolution files. A GitHub Actions workflow builds the site and pushes it straight to IONOS shared hosting over SFTP on every push to main, so publishing a change is a single git push.

nickringelmann.com on mobile, scrolled through the hero, project grid, and approach sections
nickringelmann.com homepage hero introducing Nick as a freelance product designer based in Hamburg
nickringelmann.com projects section showing real client and side projects with their tags
nickringelmann.com approach section listing six product design principles, from lean UX to sustainability