2024

Portfolio v4

Modern Design, Thoughtful Experience

React TypeScript GSAP Tailwind CSS Next.js

Overview

My portfolio has always held a special place in my heart. After four iterations of recreating the same underlying subject matter, I've learned just how dramatically different each approach can be. Each version reflects not only my technical growth, but also my evolving understanding of design, user experience, and digital storytelling.

The inspiration for v4 came from listening to a world-class tech designer discuss what design truly means, its far-reaching implications, and how impactful great design can be in shaping human experiences.

After reflecting on the design principles discussed, I identified the fatal flaws I had missed in my v3 site:

  1. Visual hierarchy matters: People want pictures and clear visual cues, not abstract green circles.
  2. Connectivity does not equal usability: Just because everything is connected doesn't mean it's easy to traverse or navigate.
  3. Innovation for innovation's sake: Just because it's a unique way of demonstrating information doesn't mean it's a good way to do it.

Key Features

This iteration focuses on creating an immersive, storytelling experience that puts the work front and center while maintaining elegant interactions throughout.

  • GSAP-powered animations that create smooth, cinematic transitions and micro-interactions that guide users through the experience
  • Video previews for every project providing immediate visual context and allowing users to understand each project at a glance
  • Personal coffee chat invitation that breaks down the traditional portfolio barrier and invites genuine human connection
  • Responsive design system built with Tailwind CSS ensuring optimal experience across all devices and screen sizes

Challenges

The primary challenge was mastering GSAP and its opinionated approach to animations. CSS transformations - whether pure CSS, SCSS, or Tailwind - have always felt somewhat like a black box to me. GSAP's timeline system and animation orchestration required a fundamental shift in how I think about motion and user interaction.

Additionally, to avoid adding a loading state I had to use a custom strategy referred to as "lazy-loading" to ensure the site loaded quickly. Lazy-loading is a technique that allows you to load content only when it's being rendered on the screen. This is especially important for loading large amounts of video content having to be streamed over the network.

I've drawn inspiration over the years from various friends and designers who have developed prominent and fitting design styles. The challenge was ensuring I was making my own unique touches while still adopting established design best practices - walking the line between personal expression and user-centered design.

Conclusion

Creating this portfolio was incredibly rewarding and serves as a living reminder on the internet of how much I've built over the years. It represents not just a collection of projects, but a journey of growth, learning, and continuous iteration.

What brings me immense joy is seeing my work being used by others, inspiring fellow developers and designers, and knowing it will forever live in the vast entanglement of the internet. Each visitor who finds value in these projects adds another thread to this digital tapestry.