loading...
Cover image for JAMStack Development ๐Ÿ˜‰

JAMStack Development ๐Ÿ˜‰

realabbas profile image Ali Abbas ใƒป1 min read

One of the trending stack used in web development. What do you think about the productivity and scalability of the stack? ๐Ÿค”

Discussion

markdown guide
 

We switched our medium sized React SSR app to JAMStack. Main reason - slow development workflow and slow deployment.

To add more background, our app is not indexed by search engines and all of itโ€™s content is hidden behind a login screen. In addition to that we also use service worker with cache first strategy. So user would only get server side rendered content when visited site the very first time which is our login page.

We used docker and docker-compose to spin up our frontend and backend cluster which was quite heavy on relatively weak macbook airs. It was eating a lot of reasources and feedback loop for editing a file and waiting for changes in the browser was beginning to become a pain for us. I mean it shouldโ€™t take 30s for hot reloading. And the whole system was lagging because of that

Deployment was also quite slow (>15 min for build + upload docker image + spin up VMs) but the again we were using cheap GCP VMs which took forever to boot.

So eventually we decided to go with JAMStack.

We ditched docker for our webapp, removed SSR code and our app is now only rendered client side. In addition to that we dedicated one VM in GCP for API calls from our local dev server. Currently our development feedback loop is snappy, <5s for hot reloading. Deployment takes roughly 1 min (webpack build + upload) on the same macbook air (we currently donโ€™t have CI/CD), since itโ€™s just static files, we build them and upload to a bucket and use cloud workers to reroute 404s to index.html. Also, no more severs to manage our frontend. So theoretically it could probably scale to infinity, Iโ€™d worry more about GCP bills at that point.

Downsides - user sees blank page for a second for the very first time a webapp is visited. It could be probably be solved as well by prerending login page.

So JAMStack worked well for us.

 

I'm a newbie web developer and I've been a lot curious about this stack. I want to build a personal project with JAMSTACK so I will be following this thread.

 

I think this is an interesting question.
I would really like to see how others are building large scale applications and how it has worked out.