Hugo, a Golang Framework to Build Websites

Hugo is a powerful template system for building static and compliant websites.

What I was trying to accomplish

When Donna and I travel, we would often start a travel blog. This varied from writing an email to each other on our thoughts, feelings, likes and dislikes. Writing the email on a daily basis quickly became cumbersome and we would forget to update it. After a few months of traveling we found that our representations of where we were became more of a question rather than a recollection. We needed something to help us track, represent, and chronicle our travels.

Commercial products like wordpress, wix, drupal, etc.. exist to help people accomplish publishing all sorts of content. I however wanted something that was fast, advertising free and something I was in full control of. I also wanted to control my own data, viewership, membership and not have any vendor lock-in. Looking at many of the top RV sites, it seems that wordpress is the market leader. Wordpress is a commercial product with prices ranging from $4 - $65+ per month. My intention is to take and post as many pictures as possible. The plans from wordpress with 225GB of storage would not grow with me in a cost effective manner. Additionally the features to justify the high cost are simply not things I would use. IE: I am not a merchant, I am not trying to sell anything, I don’t need shopping carts, store design kits, or inventory management.

With commercial products out of the picture due to cost, scalability, speed, and features. I decided to build my own. I know a few languages, however front end presentation work is not my area of expertise. I needed something I could dissect quickly and grok out of the box. After a few days of searching I found hugo. A golang static site generator (https://gohugo.io/). Hugo was written in a language I have produced production code in. Hugo has an active user base with excellent documentation, and support forums that were clear and concise.

Content creation workflow

Use our phones to take pictures. All picture automatically get added to photos.google.com
The photos service from google allows a few critical features. Automatic backup and geo tagging. The adage a picture is worth a thousand words applies here as I can recollect feelings and thoughts from reviewing pictures.
This is often where I start writing content. I review pictures from the day prior and put my thoughts into markdown. Hugo takes markdown and converts it into content that exist in the archetypes you create.
Another critical feature of the photos UI is the geo tagging. This allows me to associate a picture to a place in a highly reliable way. Allowing me to us the shortcodes from google maps in the page to represent where we were and what we were doing.

TODO list

Image processing with Hugo

  1. Do stuff with exif data
    1. EXIF Data Processor EXIF Data Collection
    2. LAT LONG Storage/query
    3. Trip GPS data display
    4. Hugo image processing with internal and external links
  1. Build local search Local Search with Lunar.js

Template modifications

  1. Create an archive of all published pages archive
  2. Have separate archetypes for categories archetypes

Enable subscription services

  1. Create a subscription service
    1. RSS RSS/XML Readers
    2. Email subscription Sending emails

Improving Performance

  1. Make site fast and reliable
    1. Fix formatting for good page speed scoring

      1. mobile performance
      2. desktop performance
    2. Integrate into CDN

      1. CDN Evaluation
      2. Cloudflare

Enable Google services

  1. Enable Google Search console Setup Google Search Console
  2. Enable Google Adsense Did it, removed it due to me not liking ads

If you would like email or rss feed updates. Visit the Subscribe page