While there are some benefits to the Jamstack approach, as we saw in our post about what is Jamstack, the truth is that Jamstack sites tend to be overengineered and convoluted, which are two words that most marketers and project managers don’t want to hear. Jamstack websites are also prone to put you in a developer lock as you’re probably going to have to ask her to help you with something, which isn’t cost-effective in the long run if you don’t have a dedicated developer team or a big IT budget.
Besides the aggressive –and successful– marketing of Jamstack as the silver bullet of website development, this approach to software development still leaves much to be desired. While it might benefit some users with specific use cases, the rest of the business world is fine without a Jamstack site. In this article, we talk about the potential drawbacks of building websites with Jamstack.
Differences Between Jamstack and Traditional Workflows
|Traditional Workflow||Jamstack Workflow|
|Development||Developer writes the website code and then ships it to the server.||Developers use static site generators to write the code and then ship it to a CDN to be rendered as HTML.|
|Rendering||Server renders HTML code based on templates and themes based on content from the database.||The browser pre-renders HTML and the CDN serves the rendered website.|
|Display||The visitor waits until the website is rendered and provided.||Visitors see the pre-rendered content first as the rest of the website renders.|
In fact, the close relationship between headless CMSs and Jamstack can hurt the headless architecture as a whole and cause misunderstandings because it's possible to build websites on a headless CMS using other languages such as PHP and CSS. Plus, as the headless CMS sector grows and research predicts that the headless CMS software market will grow 22.6% from 2020 to 2027, it's essential to understand that growth isn't solely tied to the Jamstack approach.
One of the things that happen with Jamstack is that many people have gotten on the hype train and use hyperbolic imagery, and marketing statements like "the modern way to build the web" can be misleading. In fact, this way of marketing a web architecture, while really good for hyping audiences, feeds novice developers with misconceptions of how things should work. With that in mind, Jamstack proponents should start by being honest about what works and what doesn't. They should warn people about the drawbacks of this approach so they don't end up building things that won't work for them just because Jamstack is "the modern web." If you're into Jamstack, that's cool, but just don't force it into places where it doesn't work. Instead, steer people to other solutions or frameworks when necessary to make sure that you're building something that will really work for them.
Reasons to Avoid the Jamstack
Ok, by now, you probably know that Jamstack serves blazing-fast static sites, but does that necessarily mean that Jamstack sites are better? We don't think so. While speed is always a great thing to have on a website, achieving speed by removing often necessary components is like saying that your car is now lighter because you took the engine out. Jamstack is a bit like this as it forces you to adopt unnecessary minimalism by shunning away software building methods that are tried and true just for the sake of performance when the same level of performance can be gained from a well-configured CMS, good use of assets, and a solid user experience.
Complex and immature tooling
One of the main issues with building a Jamstack website is that Jamstack proponents say otherwise that Jamstack tooling is still maturing. Most of the tools Jamstackers use are less than five years old. While that's good for a car, it might not be for software development as it introduces new complexities to the process that novice developers or business users can't prepare for. Plus, the thirst of Jamstack proponents for building static sites even when static might not work and traditional server-side frameworks would do a better job in that particular case.
Needs developers with specific skills
Since Jamstack tooling is so complex, developers often have to find workarounds and all kinds of solutions to create static sites that "behave" as dynamic. While this is a great feat of programming, it might not be what business users are looking for. This causes websites to be fast, yes, but a pain to maintain. That being said, if your project doesn't need dynamic server-side features, Jamstack could work. Still, the moment that you need a dynamic feature, you'll need to add a third party or build something yourself, which defeats the purpose of building a lean site and solves nothing because even though your site might still be fast, you're not actually fixing anything; on the contrary, you're spreading the responsibility of dynamic features and creating unnecessary complexities.
It's not a set-and-forget approach
Although some companies and CMSs that are proponents of the Jamstack approach say that you can build a Jamstack site and it'll run on its own until the sun freezes over, the truth is that as soon as something breaks, you need to call a developer. This makes Jamstack so great for developers because they're always needed to fix bugs and manage issues. Also, suppose you try to add new features on your own. In that case, chances are that it compounds the problem further and that you need a technical person to redo what you did, which means that Jamstack isn't a set-and-forget kind of approach where you hire a developer once, and your site will run forever. Conversely, it will need constant and costly maintenance from developers with specific skills.
All in all, it's possible to build a Jamstack website that's fast and performs well. Still, the value of that is questionable because instead of actually reducing complexity, the Jamstack approach just shifts it around.
WebEngine: The Alternative to Jamstack
WebEngine is Zesty.io's tool that builds, renders, and delivers webpages at 99.99% uptime, in addition to providing all of the benefits of a headless CMS. Our unique hybrid approach handles the complete content delivery process from database to destination.
WebEngine enables users to build websites in three different modes: traditional, hybrid, and headless, which gives you unlimited flexibility to build the website in a way that makes sense for your business.
With Zesty.io's WebEngine, you don't need to worry about staging, publishing workflows, and the review process as you would with a Jamstack site hosted on Netlify because it's all automated using WebEngine. Plus, with WebEngine's powerful server-side rendering capabilities, you also replace static site generators like Gatsby or Hugo because all your content and code is maintained in the staging environment and you don't need to maintain Github repositories because Zesty.io maintains and deploys your code.
Read More about WebEngine and how it stacks up against Jamstack in our article Jamstack vs. WebEngine.