OK it is true, I mean who wouldn’t love to go to San Francisco, but that is not the only reason, and not the main reason, I am so excited about the JAMstack conference. After being selected as speaker for my talk on Static sites and performance with Nuxt.js, I have to admit I was taken aback. Probably because there are such amazing speakers there and the fact that I don’t work for one of the big companies like Microsoft or Google. So I was shocked, yet super excited when I got the news.
So isn’t it just like going to any of the other conferences. Yes and No. I mean all conferences are special to me and each one reaches different people in different ways but what I love about JAMstack is that I get to talk not only about Nuxt.js, Vue.js and Performance, which are by far my favourite things in tech right now but also about JAMstack itself. And to be given the chance to share my knowledge to others who want to hear more about the JAMstack is just really exciting.
I have been working almost 100% in JAMstack all this year and to be honest I came across it by chance while building our site. Having worked on the webpack documentation, you could say I have a slight obsession with performance and not just that but I am a bit of a perfectionist, so when I do the lighthouse audits I aim for 100 each time. I have also had to work on some sites where performance is so bad and it is so frustrating that you cannot do anything about it or if you do it takes hours of work to just go up a bit or remove a second off your page load speed which is super important of course but it’s hard work. But it shouldn’t be like this. It shouldn’t be painful. Performance should come first from the start. It should be pre built into our mindsets when developing. Doing things right from the start can help us greatly to make sure our application is performant.
So when I heard about Nuxt.js’s feature to statically generate your site I was all ears and decided to try it out straight away. I have been speaking at conferences all this year and you can see from one talk to the other how the performance of the site we were working on has improved. What I learnt along the way has helped me improve my skills immensely in making sure we deliver performance first. But it has been a battle trying to convince my boss and colleagues that static sites were the way forward. That there is a market for static sites. That they are not just performant but also dynamic. This was really hard. When things are too good to be true people just don’t believe.
When we first started working on the site we had no api ready so we started implementing all text in local JSON’s and the site went live for my first conference talk as a full static site but with no api call. We gradually kept working on it and started adding the api calls. This is when I was told that now it wasn’t possible to be static, it had to be a single page application as we needed dynamic content. I was told that, only the about page and the cookies page for example could be static and the blog for example had to be dynamic as the content changes and new blog posts get created. I had to persuade my team that I knew what I was doing, that they could all be static and that it made sense and that it was possible.
You see Nuxt.js gives you a generate command where you can generate your pages that are in the pages folder including those pages that are dynamic and require their data from an api. It is true that there is a little bit more work involved here as Nuxt.js doesn’t know what the pages will be so you have to tell it by writing a function in the generate command that calls the api and gets the routes, and maps over them. Once you have that done you have generated all your dynamic pages with your dynamic data. Fantastic and yes I have won the team over. Or maybe not!
So here comes the, “but that can’t be good”, doubt. So the question got asked if we change some content in a blog post or create a new one we have to generate the whole site again. Faces looking at me like this was the craziest thing they had heard in their life. The answer is “Yes”. We rebuild the whole site and generate a new build each time. Now I was losing their confidence and you could see they wanted to go back to the old way of doing things. But I said “What is more important to you? That you can see everything straight away if you modify content or you have to wait a few minutes for a build but that means your users don’t have to wait so long for your site to download!!!” Shouldn’t we always be putting our users first? Who is the main user of your site, the person who writes the blog post or the end user?
But what about images? We have to rebuild the whole site and all the content including images? For images we use Cloudinary. All our images are in the cloud. Cloudinary is a cloud-based image and video management solution which enables us to upload, store, manage, manipulate and deliver performant images and video for our apps. We don’t need to generate any images as we have no images locally in our project. Of course I also got asked but what if we aren’t using Cloudinary. And my answer was, we should always be using Cloudinary or similar.
Like I said convincing people is hard. Introducing new concepts is hard. People want to see facts and figures and they don’t want to be the first. Who is using JAMstack? What big companies do we know of? Smashing Magazine, Smashing Magazine, Nike, Nordstrom. But why should we even care? If we are getting the most performant site ever then why should we care what other people are using or that we are in the minority because others are afraid to take the JAMstack step.
So why am I excited to speak at this conference? Because the world needs to know about JAMstack. I want to showcase how we did what we did in order to create a really performant site using JAMstack in Nuxt.js meaning our developers got to develop as if they were developing a single page application. We have 3 languages, blog posts, events, case studies and a booking engine. What? How? Is that even possible? As Sebastian Chopin, creator of Nuxt would say, “Welcome to Nuxt” and what I say is “This is JAMstack”.
If you haven’t already got tickets you can use this code to get 15% off — debbie15
Look forward to seeing everyone there. :)