Launching ToolsForProductivity, Part 2 / 3
In Part 1 to ensure that the challenges are selected appropriately, we
- moved away from Firebase for hosting.
- avoided the temptation of selecting other Static Site Generators (SSG)1 such as Hugo, Gatsby
- decided to continue building with Jekyll (for now).
After a lot of deliberation, we ended up continuing with Jekyll.
To streamline the process in future, we need to reflect on what made us look for other technologies in the first place to enable better productivity. In the image below, we have highlighted (with black background) the initial and final states in this post. We will first describe the initial phase.
Let’s begin by reviewing the initial situation describing the tools involved.
A Quick Recap
Since I have been using Github for quite some time, I discovered Jekyll while building Github Pages for other projects and for documentation. Jekyll facilitates building clean, elegant and minimalist websites on Github Pages. Some example websites (with varying themes) are,
I had seen the above themes applied to actual websites. The above themes as well as the sites were really impressive especially from a minimalist point of view, focusing on the content without any Javascript. This really impressed me and was the primary inspiration for choosing Jekyll.
The issue is that there are plenty of challenges for actually configuring and setting up the site. Remember, we need to select the challenges that actually improve skills. After getting the website running locally, I wanted to only explore as much as possible with the Github Free plan
GitHub Pages is available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see “GitHub’s plans.”
There is this claim on Github Free website,
With GitHub Free for personal accounts, you can work with unlimited collaborators on unlimited public repositories with a full feature set, and on unlimited private repositories with a limited feature set.
The issue with the above was that it is difficult to navigate and identify the boundaries between what is free and what needs to be paid for. While writing this article, I created a public repository on Github here and the website can be viewed at https://toolsforproductivity.github.io. Observe that the repository is a public repository and for this site or blog I wanted to maintain my repositories as private repositories which is challenging to do with the Github Free plan.
I did spend a lot of time and energy attempting to host a private repository for the actual site (the one hosting this blog right now) on Github Pages and was unable to overcome the challenges. I hope to write about the various hurdles in future and these challenges prompted me to look for alternatives for Github Pages. While buying the domain name from Google Domains, it provided with free firebase hosting and that’s how I ended up trying Firebase for hosting in the first place.
True Freedom with Netlify Hosting
Netlify provides free hosting, continuous integration and a host of other features. I have used it to connect my private repository hosted on Github to Netlify which then builds the Jekyll site online and publishes the built site. I have also set up a staging environment alongwith the actual website.
With the current workflow or setup, I need to
- Write content locally and test changes.
- Commit and deploy to Github
staging
branch- automatically deployed to staging environment by Netlify
- Generate a PR in Github from
staging
branch toproduction
and approve PR- automatically deployed to production environment by Netlify
The technical challenges are the only aspects that need to be explored further for Netlify. Of course, Netlify also has paid plans but for exploring the platform and tools I have not faced any hurdles thus far. I also have managed to configure my website and get it running with a private Github repository.
Summary
So far, we have discovered various nuances of the word Free for (cloud-based) hosting services such as
- Github Free (problems with hosting private repositories)
- Firebase hosting (very opaque, highly complex)
- Netlify (free to host, technical complexity is manageable)
The technical challenges with respect to Netlify seem to be minimal for cloud-based hosting services.
In summary, selecting the right tools is important for productivity and hope to explore this further.
-
StackBit Article - Choosing Your SSG ↩