New Year, New Website
The last time I maintained a personal website was 2011. It was a barebones docuwiki instance with a landing page. I knew a bit about the LAMP stack and had dabbled with Javascript. Over the last 10 years while I have been living under a rock, the web has evolved into a very different place. It's time to catch up.
Requirements
At the outset there are a things that seem important to me:
- Keeping deployment relatively simple
- A simple clean theme
- An easy way to add posts (preferably Markdown)
- Ability to add custom interactive widgets/plots to some posts
- Ability to create some interactive pages
- Use standard tools/frameworks
The first three essentially are about keeping the common case to be simple. The last three for me are about getting better at modern Javascript.
Candidate Ideas
There were a few choices to consider based on what I had used in the past.
- HTML+CSS: Keep things simple! Would need to write custom Javascript.
- Hugo: Easy to author but customization has been hard for me in the past.
- Wordpress: Really wanted to avoid maintaining a database.
- React-based Framework: Good mix of ease of use and customizability.
In the end I went with Next.js. The main reasons for me were the following:
- Seems to support better SEO vs React Progressive Web Apps.
- The onboarding tutorial is fairly short.
- Has the ability to allow Server Side Rendering if required for future projects.
Next Steps/To-Do List
There are still quite a few things to put in place before everything works as intended.
- Create footer
- Allow interactive components in Markdown pages.
- Settled on
next-mdx-remote
1
- Settled on
- Find a webhost for static site (netlify)
- Add support for syntax highlighting
- Add support for math ()
- Add an interactive post
- Passing in all components is a bit kludgy↩