Introduction
A friend of mine complained that his website made with a Jekyll template and hosted on Github pages was not popping up very high in the google search rankings when typing his name.
We figured I could remake the entire website using modern tools and his own domain to that end, while also giving him the possibility to edit the text content of his website himself live, without my help.
This may seem overkill at first glance but this ended up making the website feel near instantaneous thanks to Next.js prefetching.
It also made it easier to modify the contents of the website, and placed it in the top 3 when searching for his own name according to the google search console.
Technologies
Typescript, Tailwind for rapid styling, Next.js statically exported and hosted on Ovh (although using Cloudflare DNS), mostly for the SEO benefits.
I used two Github repositories, one for the Next.js build and another one for the static export that is connected to the Ovh deployment through a webhook detecting any changes.
An automated Github workflow pushes the static export onto the static repository allowing for a fully automated deployment pipeline, albeit rudimentary.
Purpose
The main purpose of this website is to give my friend improved ownership and control of his online image as a researcher in Mathematics.
While helping him through the necessary steps to deploy, I made sure he owns the domain and the deployment and understood every step involved in making updates.
At the same time, remaking this website was a useful refresher on accessibility and SEO concerns. As the project was very small scale, it was easy to keep it slim and adhere to the accessibility standards.
Lessons learned
- Deploying Next.js statically is an interesting way to implement a custom workflow on simple websites without server interaction.
- I learned a lot about automated Github actions and YAML workflow files during this project and will be more comfortable with them in the future.
- I understand better why headless cms are such an important part of building a website for a client. While my implementation works for Vincent who has enough knowledge to push a commit to trigger the workflow and update the content, I would have needed to implement a better content management solution for someone else.
