The slowly brewing movement to deploying flat/static sites is gaining steam. There are multiple angles, platforms, and high stakes investment in the movement. What is it? Who are the players? Where is going? In this overview I will try to tackle the high level topics and continue in the future with more in-depth analysis and discussion.
A Little History
<p> <u>Robert Jacobi</u><br/><br/> This is a code snippet with the name underlined. </p>
to a bold name,
<p> <b>Robert Jacobi</b><br/><br/> This is a code snippet with the name in bold. </p>
and if you wanted to make a change across all your pages you would need to edit all of them. At five hundred pages that often became of fun game of find and replace in your editor or using command line tools. Madness!
Slowly but surely tools would appear to make this easier. With Perl, Java, and PHP the innovation of including files made life a lot easier. So now one could have a header.php and footer.php. Content would exist on a per page basis but at least you wouldn’t have to edit every page when you wanted to update a site logo or copyright. This is the start of dynamic (not static) sites. You could even be crazy and use functions to automatically update portions of content. The classic use case is getting the current year to automatically update the copyright date.
<?php echo "Copyright " . date("Y") . "Robert Jacobi"; ?>
The last two building blocks of the transition to fully dynamic sites are databases and content management systems. With code you could start attaching a database to deliver the content. You could create a table with columns for Title, Author, Date, Content, etc. and then have code request the content based on parameters from a link. This started with some ugly links like sitename.com/?p=2 but then evolved to being able to utilize the url details. Content management systems grew up around this metaphor by creating user interfaces to the database to make creating, updating, and deleting (CRUD) content much much easier that dealing with code and database queries. On the open source side we had Joomla, WordPress, and Drupal take the lead in different ways of presenting and expanding upon this model. The also built out ecosystems to expand functionality not in their core platforms. We are still living in this golden age of dynamic platforms. Every time you visit a page on of these platforms, code and data are requested, merged together, and finally displayed to the end user. For the end user, they are directly communicating with the respective application.
Sponsor of the Week: Checkout FLATsite the top WordPress Static Site Generator to boost your business! Get faster & more secure WordPress sites and manage them easily on one dashboard. Start Free Today!
The Static Site Movement
Out of the box, all of these dynamic platforms have pros and cons, especially cons with regards to security and performance. Because the end user has direct access to the application there are many more opportunities to attack the core infrastructure, whether it’s a flaw in the application or the programming language or the database, multiple vectors of attack became apparent. A whole industry has grown around mitigating attacks by providers like Wordfence, SiteLock, Securi and more. Similarly performance became an issue because of the processing required to generate a page that a browser could “view.” There are hosting providers that try and wring every little bit of hardware and software optimization and even more so hosts which manage your site in “walled gardens,” examples of both include Convesio, WP Engine, WordPress VIP, Pantheon, and more.
People much smarter than me figured that maybe there was a way to do all of the hard work and “go back to the future.” By having the browser ready page already created before the user arrives, one could off load static-dynamic pages and have all the benefits of a content management system. One can literally do all the hard work of content generation in a secure non-publicly accessible enclave, and then have completed content stored in a simple old school html file elsewhere. No just-in-time page creation means faster sites, no exposed database or programming language means extreme security. Though this is no easy task when talking about working with old platforms and new technologies.
The Drivers of Static Sites
Since this is a brief overview I’m going to choose three up-and-comers in the space. FLATsite is a firm based out of Luxembourg (the parent company Zonat is well known in the domain name and hosting industry). They’ve attacked the static generation problem by scraping generated pages and allowing them to be deployed to any host. It has one caveat which you will see again. Not all plugins work out of the box, they have a list and details on compatibility. It’s a SaaS model with a unique twist given the hosting flexibility.
Strattic is an all in one host and static site generator SaaS. I was able to work with their beta in 2019. It worked as advertised but with the same plugin caveat, only certain plugins could be utilized. Strattic publishes an ever expanding list of supported plugins. Strattic utilizes JAMstack as the overall deployment architecture. You may have heard of JAMstack recently due to Mathias Biilman and Matt Mullenweg having a series of exchanges on the matter.
Which brings us to the heart of JAMstack, Netlify. They aim to be the the platform as a service for all JAMstack deployments. Like WordPress.com, this is a proprietary platform which allows an open source ecosystem to develop. JAMstack is not limited to any specific content management system so long as APIs are part of the mix.
Follow the Money
The future looks interesting. A lot of money is being put behind these platforms. From publicly available information we know that Strattic has raised $6.5 million in funding, and Netlify $97 million. FLATsite is internally and privately funded by Zonat so no publicly available numbers. Improving security, performance, and stability can greatly enhance the internet. I think that’s the ultimate value proposition and I don’t see WordPress not being a part of the evolution (revolution?).