Summary
As of August 2023, the JAMstack craze is dead. So where does that leave us? What’s next? Do we have to rebuild our public site again, this time on the next new hotness?
Where there’s too much friction to touch something, there�s a dying app. We want updating our public site to be a joyful process! Not a grueling one. We don’t actually care about the JAMstack craze ending.
JAMstack tools were always promised as being simple, easy-to-understand, and quick to get working correctly. That’s… not been our experience.
Serverless functions and images aren’t the only components named under the new “Composable Web” umbrella. Basic web forms are in there too. “When you need them, you just plug them in to your site!” Just like Legos. But they stub your feet just like Lego too.
The promise of static-site-simplicity just isn’t here. Even outside of NextJS for this site, we found similar pains and issues with Gridsome and Eleventy previously. Packaging back-end features as drop-in plug-ins for ‘static’ sites has proven to be a no-go over the years.
How does one create a “rails static site”? What does that even mean?? “Static” traditionally meant “no back-end runtime application” “Rails” and “ Static Site” are two phrases that don’t ordinarily go together.
This is TestDouble’s static-rails project. It was built closer to when JAMstack was hot, so likely an accommodation layer to allow folks to run proper JAM stack systems and Rails in tandem.
This is mostly just a convenience of orchestration. It’s not a project solution. If you mix in the quickness of not hitting a database in your request, sprinkle on some Turbo cocktail sauce, and top it off with Cloudflare, you’ve got a very fast website.
Static content in Ruby is actually quite a small endeavor. Just fire up rails new and begin writing views! Hard-coded ERB and HTML is static content.
Rails is not as complicated as many of these JAMstack semi-dynamic systems. It’s simpler than some of the popular JAM stack systems now in common use. The server isn’t a bad thing! …Servers cost money. You can happily run a static-content Rails app on Heroku for $5 per month.
Static sites can be distributed out to CDN nodes and have no traditional origin server. A static-content-only Ruby app on one Heroku Basic dyno could easily handle thousands of requests per second.
There’s a balance between YAGNI and developer happiness, peace, and joy. Using Rails for our public site is the right tool for our team.