This checklist is a living document used by us at Skyward. Feel free to use it for your own projects too.
You want to choose the best combination of tools that gives you the smallest output possible with just as much flexibility as you need with a little room for expansion in the future.
[ ] Client Side Generation (CSR)
React, Vue, Svelte
[ ] Static Site Generation (SSG)
NextJS/Gatsby/Nuxt/Gridsome/Sveltekit/Astro/11ty
[ ] Server Side Rendering (SSR)
NextJS/Nuxt/Astro
[ ] Incremental Static Generation (ISR)
NextJS
You want to fetch as little data as you can, prioritising what you need to actually load the current page and deferring anything else.
Javascript bundles can get huge. You want to make sure you’re only serving what you need for the current page, in as small a bundle as possible.
CSS can lead to a surprising amount of additional bloat. You want to serve as little CSS as you can by cleverly reusing styles and bundling as small as possible.