Hi! I'm Michael

And this is my website. I'm a frontend developer who likes to make things. I'm interested in the modern web revival. I'm passionate about web accessibility and usability. I like experimenting and learning new skills. This is site is part portfolio, part playground. Feel free to drop me a message in my guest book, or come hang out in the chat room, or if you wanna reach out to me directly, shoot me an email or text!

What are these settings?

Customize the appearance and behavior of my portfolio. Your choices will persist for your next visits.

You are visitor


Global settings

Theme

Switch between light and dark mode

LightDark

Font

Plex Sans · Rubik

Display name

Change the name used in the greeting on the front page

Default settings

Restore layout and UI preferences to defaults.
Theme is unchanged.

Header settings

Show avatar

Variant 1 | Variant 2 | Variant 3

Audio settings

Variant

Choose the audio player variant


Please sign my guestbook!! :)

Posting as

Privacy policy

Functional cookies

This site uses a single functional cookie (portfolio-layout) to remember your preferences: theme (light/dark), sidebar state, volume, font choice, display name for the greeting, whether you dismissed the mobile warning, and (if you use it) the position of the iPod-style player. This cookie is stored only on your device and is not sent to any third party. It is used solely so your choices persist across visits.

Vercel Web Analytics

This site uses Vercel Web Analytics to understand how the site is used (e.g. page views, referrers, device type). Vercel Analytics does not use cookies. It uses a daily, anonymized hash based on the request, which is not shared across sites and does not identify you. Data is aggregated and session data is discarded after 24 hours. For more details, see Vercel's privacy and compliance documentation.

Built with

TypeScript, Next.js, React, Tailwind CSS, Radix UI, Motion, Zustand. Icons from iconoir.com.

Thanks to

iPod Classic CSS courtesy of John Kreitlow.