issafworks
An MVP version of my personal website. It includes a portfolio showcasing some of the projects I worked on and a blog to share different ideas and lessons I learn.
I can show my work, share ideas, and demonstrate my skills (on many levels). It's my way of showing you instead of telling you. Zooming out, I believe it's important to understand the economy, my industry, and what I bring to the table. This helps me clarify it for myself and showcase it over time.
I also hope this will allow me to connect with interesting and smart people who resonate with me. Being able to discuss concepts and ideas, share tips and lessons, and just have genuine conversations would be amazing.
The goal was to build a basic version (MVP) and quickly ship that. Then, over time, add more features, improve the website (UX, copywriting, SEO, performance, accessibility), and add more content. My requirements were simple:
This was actually fun to research. I learned a lot. Because this is more of a static website than a web app, Vue.js (my go to Frontend framework) wasn't the best choice. I was going to pick Nuxt.js but discovered Astro and went with that. Three reasons for that:
Most pages are static so I used SSG rendering. That means all the HTML, CSS, and JavaScript is generated on build. Blog overview page and individual article pages require a call to a CMS so I used SSR for those.
Speaking of CMS, I used Hygraph, it has a generous free tier, a clean UI, and the ability to fetch data using GraphQL. Lastly, for any client-side interactivity, I used Vue.js components. This improves not only performance but SEO as well.
Most images were resized, compressed and converted to “.webp” to optimize performance and speed. Tailwind was used for CSS. Finally, I used GSAP to create scroll-based animations.
This is a living project and will evolve as I evolve. I will continue maintaining and updating it as my needs and objectives change. For example I decided to build the blog from scratch. That's because I wanted to understand the technical nuances and specificities of building a blog. I also wanted the ability to create a custom reading experience. That being said, I am open to migrating to a dedicated blogging platform down the line if my needs change.