AQUARING global strategy

scroll

2019.12.13Column

Welcome to the JAMstack

You may be familiar with the term LAMP stack (or the more recent MEAN) stack. The newest stack to be coined is the JAMstack. While the LAMP stack consisted of Linux, Apache, Mysql, and PHP, the JAMstack is a simpler one made up of JavaScript, APIs, and Markup. It's important to recognize that even if you drop any one of these pieces, the spirit of the JAMstack remains. The key part of the JAMstack is you do not maintain a server. By presenting your users with prebuilt markup (HTML, CSS, and JavaScript), you can publish static content to CDNs across the world that are faster and more secure than traditional hosted websites. You can then use JavaScript to bring your markup to life in the browser, making your static site dynamic. Lastly, you take advantage of public and premium APIs to store and send your data wherever it needs to be.

Static ≠ Not Dynamic

The word "static" carries a lot of baggage. People think of slow, stale content. Thanks to JavaScript, statically hosted websites can be animated, dynamic, and connect to APIs when users load the site, allowing sites to come to life, all without the site's author having to maintain a running web server.

CDN Deployment

While JAMstack sites can be (and sometimes are) hosted on standard virtual hosts, the optimal way to deploy your prebuilt markup is to employ a CDN and host your content at the edge. JAMstack-centric services like Netlify and Zeit allow content authors to atomically deploy prebuilt markup to their CDNs, resulting in cheaper hosting costs for creators and fast download speeds for customers. Every time you publish the latest version of your site, the CDN invalidates the cache the users have, ensuring that they always get the latest content, right away. Your markup and assets are hosting on static file servers close to your customers, making their experience and impression of your business even better.

Continuous Deployment

One thing to remember about a JAMstack site is that the markup is prebuilt, so updating content requires a fresh build. You can build these systems yourself, but most JAMstack-oriented services allow teams to automate the build process. The typical workflow is to push the latest version to your version control system and a tool like Netlify or Zeit will pick up on the push, build your site on their servers, and then deploy the site to their CDN. Every time your team makes a new commit, an atomic deploy happens, giving you a snapshot of your code at that time, allowing you to have a specific URL for previous and staging versions of your site, which allow you to share a secret new version with clients or instantly rollback to an older version of the site if something catastrophic should occur in a newly released update.

Overseas Trends

Headless CMS and the JAMstack are relatively unknown terms in Japan. In America and Europe, this way of building websites and managing the data that goes with them, is quickly gaining traction. What is making this possible is the rise of serverless and the API economy. A host of services have sprung up to make it possible for you to not have to be responsible for managing a server. And it isn't just small startups building these services. Amazon, Microsoft, and Google all operate massive serverless system, which the smaller startups use themselves to build more specialized services on top of. While serverless is often employed in more traditional server-rendered site development, these generalized serverless systems help fill in the gaps that the JAMstack cannot cover with prebuilt markup alone.

Serverless (and the API Economy)

Forms

What is more common on a website than a form? Seems like almost every business site requires a contact or order form. You need some kind of server-side processing to handle form requests though. To handle these situations, a number of Forms as a Service (FaaS) companies have popped up. Companies like Basin and Formspree, or the more developer-focused StaticKit let users inject any number of forms onto a site without the need for a server. If a contact form is the only reason you're running your own server, these services can lessen your burden.

Databases

It's possible that you want to store the data you collect from forms. With a traditional server-backed website, you would set up a Mysql database and save your form data in a table somewhere. The JAMstack way of handling this is to leverage a Database as a Service. A number of providers exist, including Amazon, Microsoft, Google—alongside a host of smaller companies like 8base that specialize in lightweight solutions that are far easier to set up than the more generalized solutions of the bigger players in the industry. There is most likely a provider to suit your needs.

Functions

If you need to do something out of the ordinary or you want to process the data you've received in someway, the serverless way of handling those situations is to take advantage of serverless functions. Instead of spinning up and continuously running a server to process requests that might only come in a couple times a day, serverless functions allow you to write the same logic you'd run on your own server, but instead deploy it to a serverless provider's network. You then can direct users (or their data) to these functions that only run when called on. You are billed only for computing time, which can be a minuscule amount for functions that don't get called often. These functions scale infinitely as well, so if your business becomes more popular, you don't have to worry about setting up more servers on your own to handle the load.

Wrap-Up

In a previous blog post title Going Headless, we learned about what a headless CMS is. In this post, we covered all the surrounding pieces that bring a headless CMS to life. In the next part of this series, we will take a look at a more detailed example of a complete JAMstack site built with the TakeShape headless CMS. Once we start putting all of these pieces together, we will see how much we can optimize for our own unique situations.

CONTACT

Please do not hestitate to contact us about promotion for foreign markets, client acquisition and support, and other such subjects.

Enquiries