Projects

Personal Website

TypeScript logo
React
Next.js
Tailwind CSS
NextUI

I made this portfolio site and used it as a ground to experiment with new technologies I was interested in learning. The site at its core is written using React, TypeScript and Next.js.

I've taken advantage of a whole bunch of new features including React Server Components, which allows HTML to be rendered directly on the server. This new way of creating React components gives improved performance, security and SEO compared to client components.

I've used Tailwind CSS and NextUI for styling. NextUI is a component library built upon React Aria that provides beautiful default styles. NextUI also comes loaded with Framer Motion which is used for the JavaScript animations.

The projects area uses the Headless CMS Sanity which allows me to modify the content of each project in an admin tool. The data is queried using a language called groq in server components.

The contact form uses tRPC to send an email to myself using Resend with a template composed in React Email. I use React Hook Form to manage the state of the form and Zod to validate the form on both client and server.