Website logo
Pablo Porto
  • About
  • Now
Made with
and flat whites
in Spain, 2026™
See all posts
Author photo
November 20, 2022
Website

Redesign and new stack: Version 5.0

Once in a while, I get tired of the design of my website or its technical stack and start tinkering around. Having a personal website as a pet project has helped me to stay up to date with modern front-end development.

Version 5.0 of the website

Over the last year, I have been working on a full redesign and rewrite of this website. What is now version 5 started as an attempt to learn new technologies, Next.js and TaildwindCSS. I thought this milestone would be a good opportunity to reflect on the different rewrites and redesigns I have done over the years. Thus, I decided to jump into the Wayback Machine and write what I like to call a retrospective changelog. Here it goes.

Changelog

Version 1.0 - 2008

Version 1.0 of the website

In the mid 2000s blogging was already very popular. I wanted a quick way to start writing and sharing my ideas so I decided to build a blog.

The setup I went for was quite simple. I choose one of the most known CMS, WordPress, and I hosted the site in one of the popular VPS-based hosting providers of the time. I tried to find a more representative screenshoot of the site using Wayback Machine but I failed.

PurposeTool
CoreWordpress
ContentWordpress
StylesPlain CSS
HostingVPS
FeaturesBlog

Version 2.0 - October 2013

Version 2.0 of the website

In September 2013, I finished my master's in Networks and distributed systems. I took a few months to prepare for job interviews and look for my first job as a software engineer. I had quite a lot of free time so I decided to create a portfolio from scratch to share my CV.

Inspired by this post by Amazon CTO Werner Vogels. I choose Cactus as a Python static site generator. I used AWS S3 for serverless hosting as I was starting to learn about cloud technologies back then.

PurposeTool
CoreCactus, Python
ContentHTML, Django template system
StylesBootstrap, Fontawesome
HostingAWS S3
FeaturesPortfolio, Online CV

Version 3.0 - December 2014

For version 3, I decided to migrate the tech stack to host the website for free on GitHub Pages. I replaced Cactus for Jekyll as a static site generator. The fact that I was working with Ruby at work at the time influenced my choice.

I also migrated the content from HTML to YAML. I honestly don't remember why I didn't choose another more text-friendly format like Markdown.

PurposeTool
CoreJekyll, Ruby
ContentYAML files
StylesBootstrap, Fontawesome
HostingGithub Pages
FeaturesPortfolio, Online CV

Version 4.0 - July 2017

Version 4 was another tech stack migration. The most time-consuming and complex to date. I was learning React and Redux and I wanted to have a pet project to practice those technologies. I started by creating a web application that offered the same functionality as the Jekyll site.

I managed to learn a lot about creating single-page applications or SPA. I was reading the book Atomic Design and working with Storybook at work so I also used this version of the website to learn how to create my own design system and a component library. This is another example of how using the site as playground helped me to stay up to date and develop new skills.

From an SEO perspective, it was a terrible decision. Moving from a Jamstack architecture to SPA made it hard for the SEO crawlers to index my content.

PurposeTool
CoreReact, Redux, Storybook
ContentJSON
StylesBootstrap, Fontawesome
HostingGithub Pages
FeaturesPortfolio, Online CV

Version 5.0 - March 2021

Version 5.0 of the website: Making page

Version 5 is the one you are probably seeing right now. I decided to go back to the Jamstack architectural style of versions 2 and 3 but keeping React and JavaScript as the core technologies.

I choose NextJS as a static site generator and React framework. I was curious about modern react frameworks so I decided to get some experience with them. The same happened with TailwindCSS. The design was a bit old so I took the opportunity to do a complete re-design and learn about utility-first CSS frameworks.

One of the goals of this version was to build a site that allowed me to go back to blogging. I wanted a workflow that allowed me to quickly create blog posts or notes and share them on the site. I migrate the content to Markdown so I can write and edit the content in minimalist tools like Obsidian and easily copy and paste it into the codebase.

I also change the infrastructure. From GitHub Pages to Vercel. I was quite impressed by the developer experience of Vercel as a platform. I really recommend to give a try to anyone looking for a simple hosting solution.

I didn't move away from GitHub completely. When I started doing this rewrite, I was quite excited about GitHub Actions. I went to create a continuous deployment pipeline for the blog based on a trunk-based development workflow. I don't create pull requests for new changes (except for the ones created by Dependabot). I push directly to master and I trust the automated quality gates I created in the pipeline to do their job. You can checkout the pipeline in action here.

PurposeTool
CoreNextJS, React, TypeScript
ContentMarkdown
StylesTailwindCSS
HostingVercel
CI/CDGithub Actions
FeaturesBlog, Portfolio, Online CV, Travel tracker

Take aways

As you can see, this website has changed quite a lot over the years. Writing this post allowed me to reflect on how much time I put into making these changes both in the design and the code. Was it worth it? Could I spend that time on something more productive like writing more or building an app? Maybe.

I still think the main ROI of these efforts has been the ability to have a playground to learn and develop new front-end skills that I could apply in my day-to-day job. I have many examples of technologies I was able to understand better after applying them to my website: CSS, SaSS, TypeScript, Storybook, and Next.js. TailwindCSS, Atomic Design. GitHub Actions...

I am always checking other people's websites to get inspiration. Do you have one you want to share? Reach out to me on Twitter. Finally, I want to share some of the personal websites that inspired me to improve mine and write this.

  • brianlovin.com
  • kentcdodds.com
  • maggieappleton.com
  • taniarascia.com
See all posts