As it was before
It would be possible to take Wordpress and not bother, but for it, you need to buy and maintain hosting. I wanted something simple with minimal cost. The static generator, in this case, is an ideal solution. The Hugo was selected for the new version as a high-performance, written in Go language, generator with a vast number of functions and capabilities.
Also, do not forget about Jekyll, one of the first and probably the most successful generator of static sites. But it did not suit me since I do not intersect with the Ruby world at all. In the appendage, it was essential for me to ensure the work of the site in two languages, Russian and English, and it seemed more challenging to implement mine needs with Jekyll. Therefore Hugo.
Why exactly the generator
The beauty of a static site is that it does not require anything to run, as it is a set of ready-made (generated) HTML pages. It is enough to place them somewhere on the Internet, and that’s it. For this purpose, any file hosting is suitable with the ability to bind a domain name (you can and without). I know examples about sites hosted on Amazon S3. There are also exist specialized services like Netlify, as well as free GitHub Pages.
The second important point is the version control system. In the case of a static site, under version control, you can keep both the sources of the site itself and its generated copies. It allows you to use git to track the entire history of changes to see what data has changed in the process, which significantly simplifies the search for possible mistakes. Collaborating on content is possible also thanks to VCS.
And the third aspect is the text editor. The whole site contains only files, which means you can use any convenient editor on any operating system.
How does it work
Generated copies, one for each language, are placed in their separate repositories on GitHub. GitHub Pages supports only one domain per repository, and I have to have two of them. In general, Hugo supports multilingual sites, and it would be possible to do everything on one domain, but with subsections of the form
site.com/en, but I like it more when klimchuk.by is entirely in Russian and klimchuk.com is in English, so I had to complicate the circuit.
To be able to write notes for my site conveniently, I use the Forestry service, compatible with Hugo sites (there is support for other popular generators). It requires additional configuration, but the step is optional, any text editor can handle it.
Such a distributed system of repositories and services implies the need for automation, and of course, I implemented it. In short, everything works thanks to CircleCI, which tracks changes on GitHub and starts the assembly and publication of site pages. I’ll tell you more about site automation in the next article.
A few words about the content
Previously, the site was a simple blog with notes and a few words about myself, but in the new version, I decided to expand and separate substantially different areas of my life. Now the site has three broad sections: Notes, Places, and Projects — several words about each of them.
This section practically did not change but migrated from the old site. It is a regular blog, where there are notes posted in several categories.
It is a new section in which I decided to separately collect notes and photos of the places I have ever visited. As a rule, these are trips with family or business trips, as well as cycling trips of an unsportsmanlike type. The list will be gradually replenished over the past years, but rather for myself, so as not to forget.
This section has not yet presented on the site; however, in my free time, I actively do something new as a hobby and want to share it. Here I will describe in detail the projects themselves, how I did them, and why. One of the latest such projects is pravilna.by.
In a sense, I am doing the current version of the site according to the principles of agile, when MVP implemented, and then brought to an acceptable state. So it’s entirely possible that over time, new sections may appear, and old ones may disappear.
To be continued.