While static websites was the beginning of the Internet, aka www, modern static website generation is just getting started.
Why static site generator?
Static site generators are a great choice for blogs and other content that do not require dynamic content pulled from a database. Hey, this is how the web used to be. Simple & fast.
Unlike other systems (WordPress, Drupal, etc.) which dynamically build a page every time a visitor requests one, modern static site generator does the building beforehand. Since websites are viewed far more often than they are edited, static site generators such as Jekyll & HUgo are ideal for blogs that mostly serve static content.
Jekyll is the most widely known static site generator. Recently, Jekyll added admin function. Tom Preston-Werner (founder of GitHub) initially created Jekyll for his own blog. Tom Preston-Werner knows RoR. He built GithHub on RoR. Naturally, Jekyll was built on Ruby, which means it’s slow.
However, Jekyll is still much faster than blogging solutions that server contents dynamically.
Hugo is an up and coming static site generator built on Go or golang. Since it’s built on Go, it’s much faster than Jekyll. Hugo is growing fast. What’s the drawback? It has no admin function. Since Go is a statically compiled binary and Hugo is distributed as a single compiled file, it’s almost impossible to add plugins or extension engine to Hugo.
When is static site generator not ideal?
I think eCommerce is a good example of where static site or static site generator is not an ideal solution. Because items need to be added to the shopping cart dynamically, static site or static site generator would not be able to handle such request.
The general thumb rule is, static site can’t go beyond what plain html document can handle.
For instance, any form, such as contact form cannot function without some sort of server level technology such as php or python.
Solutions to overcome this limitation
You can utilize third-party API such as Wufoo to handle form requests.
Categorized in: Web Development
This post was written by hackya