LifeinTECH is my personal blog, which I use to share my thoughts and showcase projects related to technology. I launched LifeinTECH in 2008, but over the past ten-years, have reinvented it multiple times.
- Launched as a custom-built PHP blog and CMS, hosted on A Small Orange.
- Migrated to Wordpress, hosted on A Small Orange.
- Migrated to Squarespace, specifically Squarespace 5.
- Migrated to Jekyll, hosted on Heroku.
- Retained Jekyll, but migrated to GitHub Pages for hosting.
I have always attempted to find the right balance between simplicity and flexibility. For example, my original custom-built PHP blog and CMS was incredibly flexible, but relatively complex to maintain. Therefore, I spent the majority of my time working on the code, instead of the content. Squarespace had the reverse challenge, very simple, but restrictive (I believe this has now been improved with Squarespace 7+).
Originally, I was running Jekyll on Heroku, however changes to their pricing model forced me to look elsewhere. As a result, I migrated to GitHub Pages, which can host any static website directly from a git repo (for free).
GitHub Pages works great and I would certainly recommend the service to anyone that wants to quickly host a static website. However, it does have a few frustrating restrictions, for example, the inability to natively setup SSL with custom domains. In my opinion, SSL is quickly becoming a necessity for all websites, regardless of their target audience or size. This is especially true if you are looking to build Progressive Web Apps, which require SSL to operate.
Introducing Netlify, arguably the best web host I have ever used (assuming you are targeting JAMstack).
Netlify emphasises developer experience, providing the following features:
Performance: Pre-configured global Content Delivery Network (CDN), which automatically manages atomic deploys and cache invalidation, as well as end-to-end redundant infrastructure, providing high availability without any setup.
Scalability: Infinite elastic scale, putting a focus on “utility compute”, meaning you only pay for what you use.
Automation: Git integration (e.g. GitHub, BitBucket, GitLab) and simplified Continuous Integration / Continuous Deployment (CI/CD). Netlify also includes inbound and outbound webhooks, automatic versioning, backup and restore, as well as split testing (e.g. A/B Testing).
Tools: A full CLI and RESTful API, as well as the ability to deploy and manage multiple environments (DEV, STAGING, PRD). Netlify will automatically generate “Deploy Previews” from Git Pull Requests (similar to “Review Apps” in Heroku).
Single Page Apps: Inherent support for modern Single Page App frameworks and libraries, such as React, Angular, Vue, etc. Including advance features such as pre-rendering, client-side routing and API proxying.
Domain Management: Global Domain Name Service (DNS) and simplified domain management from NS1, including domain aliases and subdomains.
This comprehensive feature set would be enough for most people to consider a migration, however, when you also recognise that these features are enabled automatically (including one-click SSL) and are all available for free (Personal Tier), it becomes almost impossible to ignore!
To highlight the simple developer experience, the image below shows the Netlify “overview” page for LifeinTECH. Due to the level of integration and automation, there are limited options, however you can see the recent “Production Deployments” and “Deploy Previews”.
The “Deploy” page (image below) provides a more detailed view of every individual deploy. It is very easy to setup automatic deployments, which can be triggered from specific branches (targeting subdomains), as well as directly from Git Pull Requests. When triggered from a GitHub Pull Request, the deployment results are sent back to GitHub and therefore available from inside the Pull Request itself.
Finally, the “Settings” page (image below), which provides an overview of the key features. The majority of the options can be enabled, updated or disabled via a single click. This includes traditionally complex tasks such as SSL and Domain Management.
LifeinTECH has now been running on Netlify (Personal Tier - Free) for several weeks and I have been incredibly impressed with their service! The migration process itself took less than an hour, which included the automated build process from GitHub, SSL from Let’s Encrypt, Domain Management from NS1 and all content available via the global CDN.
The web performance result from “testmysite.io” provides good validation.
If you are interested in Netlify, it is incredibly easy to get started, simply sign-up for a free account and push your code!