I needed a website that I could easily administer from anywhere and from any device, something that incorporated the latest and greatest web-developement technologies and would still give me absolute control over my site.

I realized that traditional CMSs were not suitable for my requirements, and started working with open-source headless CMSs like Directus, even pushing a couple of commits to their repository, but soon realized that most of them were too complex and cumbersome, and had a lot of overhead from what I required at the moment.

Then I came across static site generators and Hugo, which turned out to be a pretty good static flat-file CMS. It has several enterprise grade features, works out of the box, and is quite easy to master. It is lighweight, super fast, and its themes are fully customizable and responsive. Imagine getting all the convenience of a platform like WordPress or SquareSpace, while still having full control over every line of code on your site.

Static vs Dynamic Sites

A dynamic website is the type of website that most people are used to. Take YouTube for example; it is a dynamic site, which means every time you visit it the webpages are custom built just for you. You can log on and browse the site, then refresh the page and everything will look different. In fact, every time you go to YouTube, their web servers pull information from a database, generate the HTML code, and they give each user a custom made page.

Static sites are also quite common, and a lot more simpler than dynamic sites. With a static site, everything is pre-designed. When you access a static website the web server doesn’t generate any code or pull information from any database, it simply grabs the page you want and gives it to you. For static sites, all of the HTML, CSS and JavaScript is written before it’s uploaded to the web server.

Hugo

Static websites are often notoriously difficult to maintain and scale because all of the code needs to be written before it’s uploaded to the web server, and managing all of those pages and lines of code can be cumbersome. Hugo takes all the fuss out of building and managing a static website and gives you the flexiblity of dynamic websites while retaining the speed and convenience of a static website.

Hugo lets developers abstract web components, define layouts and templates, and even use logic and conditions across their site. For non developers, Hugo provides a rich library of themes built by the community which take all the work out of building the the site. You could build a fast, scalable and beautiful Hugo website, without writing a single line of code.

Markdown is the preferred method for bloggers to write their web content. It replaces ugly HTML and makes writing for the web extremely easy. Hugo is built with markdown and bloggers in mind, with the help of a theme someone with zero web development experience could build a hugo site.

HTML is the language of the web, and often the preferred language for developers. If you’re a developer and you want to have full control over the DOM and what the browser is seeing, you can build all of your pages with custom HTML. Hugo gives you control over EVERY line of code, so you know exactly what is going on under the hood of your site.

Also, Hugo generates all the code necessary for a site to function and hands it over to you so that you can host it on a hosting provider of your choice, including Google Firebase and GitHub Pages.