Share Your Stack – How to Architect the Perfect Travel Blog, WhereTheHellAreTomerAndMichelle.com

When Michelle and I started hatching together our plan for our trip, I knew I wanted to grow, both as a person, and as a developer. The very first step that I could do to start growing was to pick a new technology stack to host our travel blog. I had already worked with WordPress, published on Dev.to, and I knew I wanted to host something (i.e. not Medium).

Requirements

Besides the basic blog necessities, my requirements were:

  • Static – This would be a simple site and I wanted to keep it light weight – no need for server side lifting here.
  • Easily updatable – I wanted to be able to easily update it and remove any roadblocks from publishing new posts or updating the site. Once you go CI/CD, you never go back!
  • Posts in Markdown – Markdown is simple, and it’s now everywhere. This is also a good way to separate your content from your site if you ever want/need to migrate your posts to a diffrent stack.

For a long time I had been hearing about Jekyll and Github Pages hosting and the simplicity and integration between the 2 technologies. This seemed as good a time as any to pick it up and run with it!

I use the Lagrange Jekyll theme for our site as it seemed pretty simple and we liked the way it looked (how does anyone pick anything??). I went ahead and forked the project and then started putting our own touches on it.

Basic Setup

Jekyll makes it very easy to customize certain parts of the site in the settings.yml file. We made sure to update our social links, About page, contact, etc.

We also definitely wanted our own domain name and not a github.io subdomain. Who would’ve thought that WhereTheHellAreTomerAndMichelle.com was available?? With my favorite domain name registrar, NameCheap, and $13, we were the proud new owners! Github Pages makes it easy to host your site on a custom domain name as long as the repository is public. Using the Pages Settings for your repo, it will configure your custom domain name by creating a CNAME file in your repository. Github Pages will also automatically take care of an SSL certificate, how thoughtful! We were off to the races!

Travel-ize It

Since it is our travel blog after all, we knew we needed to put our itinerary and picture slideshow on it. For the interactive map/itinerary we chose TravellersPoint.com‘s embedded map. I have used them before for my Eat, Pray, Code travel and loved what they provided. To customize the embedded map even further, I upgraded to a ‘Budding Member’ and placed the embed code directly in the Jekyll page. Since this is an iframe, I also added some Javascript and proper styles to ensure that the map works well on mobile as well as desktop views.

Pictures were slightly trickier. The first part was figuring out where to store my photos. I wanted to be able to upload only select photos, not have to worry about storage limitations (at least for the forseeable future), and be able to share a public album. Eventually Google Photos won out because of their ability to share an album publicly. (I am still open to suggestions of other photo storing/sharing solutions out there!)

The next issue with Google Photos is that I wanted to create an automatically updating embedded slideshow on our homepage. The tricky part comes with Google Photos’ lack of an API. Luckily, I came across this page where, given a publicly accessible Google Photos Album, it will create an embedded slideshow widget. At the moment this does not automatically update, I simply have to update the slider code every so often when I publish new photos to the shared album.

Publishing Posts

One thing that I was really looking forward to with this new stack (and Jekyll in general) was publishing posts in Markdown. As a developer, I love the simplicity and ubiquitousness of it, while still giving the author control over any elements they may need. When I begin to create a new post, I simply pop open my Markdown editor of choice, MacDown, and start typing away! When I finish a post and run it by Michelle for final touches and editing, I can publish it using a simple git push command!

Comments

I’m sure we’ve all come across Disqus at one point or another in our WWW adventures, and that is what I originally set up for our site. But seeing as I am a self hosting connoisseur, when I heard of Commento.io, I immediately knew I wanted to try it out. Luckily, not long after that, the Cloudron team pushed out the Commento.io self hosted application on their platform. I set it up on my Cloudron instance, imported all the data from the Disqus instance, and replaced the comments code with the proper Commento embed script. Viola! You now have self hosted, secure, and privacy focused comments on our site.

Analytics

Google Analytics is probably the go-to for many sites and blogs, but I have long been using Matamo (formerly Piwik), also self hosted. Using the Matamo Analytics dashboard to set up a new site is a breeze. Then, simply replace the Google Analytics code provided by default by the Jekyll theme with Matamo’s code, and push it up!

“But what if you get hit by a bus?”

Michelle, out of her love and thoughtfullness, one day asked me, ‘how do I publish new posts if you die?’ She had a point. Not only is she not a developer and has never used Github before, but the site’s repository is also only under my username.

After some quick research, I came across Forestry.io – a Jekyll CMS. This seems to be a fork off of Jekyll Admin, but either way, Forestry is a fantastic tool to make everything easier for managing a Jekyll site in the way of hosting media, direct integration to Github and Github Pages, and of course, creating and editing posts. And yes, they do offer a generous free plan for a personal site! Getting this set up was a breeze, the only slightly tricky thing was getting the media folder set up properly, but even that was done without a hitch. And since they support multiple users per site, both Michelle and myself have access to update our Jekyll site – including writing and publishing posts – through their CMS platform.

Stack Birds Eye View

As most good things in life, this took time and is not done evolving. You can check out the Github repository to see for yourself how each of the items above grew and were implemented over time. Sure, I had a general idea of what I wanted on the blog to begin with, but a lot of these ideas took time to develop and implement. Be sure to check out the final product (for now)!

When Google Shuts Down a Service, a New Browser Window is Opened

How a Google Project Shutdown Opened the World of Self Hosting to my Eyes

I want to take you all the way back to 2013, before major privacy scandals peered their heads every other week, when everyone finally could answer the question ‘What does the Fox Say?’, and when Google shutting down a(nother) service of theirs still didn’t surprise us. 

I was an avid user of Google Reader, the search giant’s RSS aggregator that allowed one to follow multiple news sources in a clean, streamlined, and unobtrusive manner. I forget how I first came across this service, or even RSS as a whole, all that I knew is that this was my main, and pretty much only way to consume news online. It made sense; there weren’t ads or paywalls on any of the news sources I followed, I could save stories for later viewing, and I could always go to the original source if I wanted. 

Then came that fateful day in March 2013 when Google announced they were going to shut down Google Reader. Of course, by this time, it wasn’t much of a surprise that Google was sunsetting yet another one of their ‘Lab’ projects. And with RSS being a pretty niche medium within the ‘nerd-o-sphere’, this announcement went off without much of a mainstream fuss. All the while, I’m scrambling for a solution to migrate to after this unjustified killing. 

Little did I know, not only my RSS aggregator, but my entire online lifestyle and primary hobby that keeps me up at night, was going to change. 

There were a few different alternatives to Google Reader that started popping up after this news. A lot of them even would help you transfer over your Reader data, so you can pick up right where you left off. Call me a cynic, but it was hard for me to hand over my data, and more importantly trust, after the unfair shutting down of a service that I relied so heavily on. And then I came across the ultimate solution: Tiny Tiny RSS

Tiny Tiny RSS (or TTRSS) is an open-source (meaning anyone can view what makes it run, add suggestions or improvements, or update the application for their own needs), self hosted (meaning it can run on your own computer, instead of only on a company’s computers) RSS aggregator. This meant a few things for me: 

  • I can move off of Google Reader safely and migrate my data to this new service (a feature of TTRSS). 
  • If there’s an issue or a new feature I want, I can make the updates on my own. 
  • I won’t need to trust any other 3rd party to house my data or to stay online, it will all live on my computer! 

Getting it set up and working properly was a relatively easy task to a software hacker like myself. And I was amazed by the results! TTRSS instantly became my most used tab, like Google Reader before it, except now I knew that no one could tell me that this was ever going to be shutdown – it all ran right on my computer! 

After years of using this application, it really engrained in me the value of self hosting and owning one’s data. It’s truly a beautiful thing knowing that you are not at the mercy of any company’s will or bottom line. 

And then I discovered the entire sub-culture of self hosting. 

A Whole New World

This opened my eyes to a whole slew of applications that I can self host and stop relying on others for. My most crucial find during this self hosting renaissance was Cloudron. Cloudron is a self hosted platform that allows one to install applications through an App Store, a la Apple’s App Store. 

I currently am self hosting a Cloudron instance running a few applications including WallabagMonica HQ, and, of course, the trusty TTRSS (still my most used tab to this day!). 

Privacy

A major aspect of self hosting one’s own services is the fact that your data is always in your hands (or computer). In today’s privacy-less world where companies are hungry for your data, self hosting provides a haven where you own your data. 

"Anything thou publishes unto the World Wide Web is forever out of thy hands." 
- Honest Abe

I wouldn’t have known it at the time, but I am very thankful that Google shut down their Reader service. If it weren’t for that, I might never have come across this intriguing and captivating subculture of the internet. 

If you are tech savvy and want to try to rid yourself of the handcuffs that data aggregators have on you – and also have some fun while at it – I highly encourage you to check out the world of self hosting. Some great resources to start are the Awesome Self Hosted Github page and Reddit’s r/selfhosted

🍻 to a reliant-free and self hosted future!