How I built this website
Jan 20
5 min read

Everyone knows how challenging it is to work on their personal website. I went through multiple iterations of different designs, frameworks, libraries, before finally landing on something I like.

This website uses React, Three.js, Next.js, and Framer for the animation library. The home page was originally all designed with DOM elements but I wanted to try something new so I recreated it with WebGL.

Light concept design

I use zustand for the state management layer of the website. It's been a pleasure to use over redux or even just react context. It also integrates with redux dev tools which is neat.

Framer Motion has also proven to be a really useful tool. It's simple to use composable with React components but it can also be used universally to tween anything (as shown on the home page). I actually chose to use GSAP for the tweening functions since they have some nice bezier easing functions.

Dark concept design

For the blog I chose to use MDX since its very versatile and easy to use. I can import jsx into markdown which can be very handy for future posts. You can render mdx in next using the @next/mdx package