Redesigning my website has been a passion of mine. I originally built it in Gatsby but have since transitioned to Next.js. Initially, choosing a new JavaScript framework felt daunting due to the numerous options available, such as Astro, Vue, and Angular.
Ultimately, I decided on Next.js because it is already built on react and has server capabilities which can help in my other projects. This environment provides the perfect opportunity to learn a new framework and experiment with new animation libraries. Now, let’s explore the reasons behind my decision to move away from Gatsby.
Gatsby Pros and Cons
Gatsby is a static site generator I used for my previous site, but I encountered several difficulties. Its heavy reliance on plugins often led to issues that could break the entire site after extended periods of inactivity, which was quite inconvenient.
Additionally, I wasn't fond of Gatsby's lazy loading feature for images; it caused a noticeable delay in image clarity, as they would appear blurry for a few seconds before becoming sharp, detracting from the overall experience. Additionally, Gatsby is not a popular framework used in professional projects.
In summary, while Gatsby is functional, it’s not a solution I would choose for future projects.
Enter NextJs
Next.js offers several advantages over plain vanilla React. As a framework, it includes features that aren’t available out of the box with React, such as built-in routing and native support for displaying blog articles stored as Markdown files.
The primary reasons for choosing Next.js include its built-in App Router, strong SEO capabilities, and the opportunity to learn a new framework.
Additionally, Next.js supports Static Site Generation similar to Gatsby and provides Server-Side Rendering, which enhances performance and SEO.
Animations
You might be curious about the animation libraries that I used on this website. Framer motion is the main one and I grabbed several animations from hover.dev which offers many components for free.
Future Features
Hopefully, I would like to add some new features such as light/dark mode and improve the profile map.
Conclusion
I hope my new layout works out and please let me know in the contact form what you think.