New Website!

March 15, 2025

New Website

Hello World! This may seem new to you, but I now have a website that represents who I am and my interests in an organized manner. I will be going into why I decided to make an entirely new website from scratch, what tools I used, updates & additions, and the trials and tribulations faced during the journey.

The Old Website

Old Website

I had developed the first iteration of my personal portfolio during the winter break of 2023. It served as a good showcase of my skills and projects at the time, but I had felt that the interface was not as appealing, and that there could have been more information present. I was thinking of updating the original website itself, but found that since I had developed it in basic HTML, CSS, and JavaScript, that it would become tedious to implement complex features such as a blog. I had decided on creating a new website that uses an actual frontend framework to simplify the process of building and adding onto it.

Tech Stack

Projects Section

For this website, I had decided to use the Next.js framework, which is powered by React.js. I had decided on choosing Next.js due to its widely known performance metrics and its SEO optimizations. For all animations on this website, the Motion package was used as it provided a simple and seamless experience when creating them. The React-Icons package was used in a few places on this website, mainly in the Interests section on the Home page and the mobile header. MDX was used to make it easier for me to write blogs as I was already familiar with Markdown. I use Cloudflare to host this website, as it provides real-time analytics along with DDoS protection.

Updates

Most of the updates made on this new iteration mostly concern the home page. I reworked the entire projects section to be a carousel that is guided by you, the user. This way, the section does not take up as much space as the first iteration did, which is essential when adding more projects to the list.

Projects Section

The interests section also was reworked, as I found the first iteration of the section to be irrelevant, as it offered no more information about myself. Now, there is a paragraph under each interest explaining why I chose it along with some creators I follow that specialize under that interest.

Projects Section

Additions

There were many new additions to the website, which were mostly new pages. In an effort to further make this website personal to me, I added three pages: The blog, my reading list, and my resume. I had decided on integrating a blog onto this website as I desired a creative outlet for writing about certain items of interest and to also just improve my writing skills in general. I plan to write generally about my life, events that are occurring in the field of technology, and other general topics I feel like writing about. As of right now, there is only one blog post (this one!), but there will be more to arrive in the near future. The reading list section lists all books I have read so far. I wanted to add this piece to the new iteration as a place to showcase my growth and to connect with like-minded people through reading. I added a resume page as I want to showcase my achievements and projects along with providing an outlet for employers to view it. My resume was originally built in HTML and CSS, but I had decided to recreate in LaTeX using Overleaf, as it produces high-quality professional documents with organized structure. Also, I just learned it because learning new languages is something every programmer should strive to do.

Trials & Tribulations

Projects Section

Unironically, this blog was the hardest section of the website to implement. Back when the website launched around January 2025, I already had a fully working solution for this blog. But there was just one problem. Remember when I told you that this website was hosted on Cloudflare? It turns out Cloudflare runs website on something called the Edge Runtime. Edge is an alternative to traditional Node.js runtime, designed for lower latency and better performance. Since this website was created using Node.js, the blog was utilized to use Node.js packages such as fn and path. Since those two packages, which simplified the blogging process, were not allowed, I had to find a different method of displaying blogs. I eventually found a method to quell this roadblock by generating a JSON file containing each blog post (in the form of a MDX file), and fetching that JSON file to render each post.

Conclusion

This should be the first of many blog posts to arrive on this website so stay tuned! If you made it to the end of the post, thank you for your time and I look forward to sharing more exciting content with you in the future.

New Website! | Aayush Sood