Writing is hard. Completing a project is even harder.
For my new year's resolution, I will finish all my projects that I plan to start this year, and I will write progress updates in order to be accountable to my audience.
I started my learning journey into static sites in 2019. The obvious advantage is speed and performance compared to dynamic sites. With that, I dived into different technologies that enabled static sites.
My first attempt at building a static site was creating a blog theme with Bootstrap and Harp.
Like any other static site builders, Harp creates a fast and responsive site.
Where Harp shines is that it allows you to create embeddable code via partials. For example, creating a file _header.ejs enables you to embed the header file in any of your html page.
Blog articles are also stored as markdown files, which enhances readability and portability. Harp generates one html per markdown file at compile time.
Disadvantages of Harp
Unlike other static site builders, Harp does not come with any default theme. This means that you will have to build your own theme, e.g. Bootstrap.js.
Also, the documentation is sparse and you may have to search through forums and google to find what you need.
In the year 2020, I came across another technology for building static sites, i.e. Hugo.
For me, the pain point for Harp.js was the lack of themes. This is where Hugo really shines as it has many different themes to choose from. Also, the themes are customizable if your Hugo skills are advanced.
If you are a beginner, the good news is that you don't have to fiddle around with the files under themes folder, as you can control basic settings from a config.toml file.
Like Harp, blog articles are stored as markdown files under content folder.
Continuous Deployment with Netlify
If you're a continuous deployment nut like me, you will also find that Netlify has CD support for Hugo from a GitHub repository. However, this topic requires a separate article by itself.
In reality, there are other static site generators that deserve mention, such as Jekyll, Gatsby, Vue Press, etc. However, I still like Hugo and will continue to use it for my personal sites.
This year, the DigitalOcean ["DO"] App Platform Hackathon has given me another idea.
My third attempt is to create a personal portfolio site using Hugo and deploying it to DO.
Why another personal site?
My GitHub account has been active since 2011, and building a portfolio online has always been in my task list but never got around to it. Hence, I'm taking this opportunity to create one during this hackathon.
For this project, I will update my progress status by posting to both my Dev.to and Twitter account. This ensures that I am held accountable by my readers and followers to complete my personal portfolio site.
Thank you for reading this far