Apart from our open source work, we do client work at Spatie as well. Over the years we've learned that one of the most critical moments of a project is when it is going live. No matter how you confident you are about the correctness of the code base there are so many big and little things that could go wrong when moving to production.
To make sure a new project is launched correctly we've created a list with important items to check off. We've shared our checklist on GitHub. Some items are specific to our workflow, bust most things are applicable to any project. There are also tasks on the list that we take care off well before launching but verify again just to make sure that everything is in order. In this post I want to highlight a few items.
- Use the Chrome DevTools and throttle your CPU and network with 10x CPU slowdown and set the network to "Good 3G". At our office we use modern Apple hardware and a fast internet connection. Mobile users probably have a much slower internet connection and slower CPU.
- Check all pages for n+1 problems. Because we use powerful hardware we're probably not noticing any n+1 problems while developing a project. We use Barry vd. Heuvel's laravel-debugbar. That awesome package can report all queries that were executed when rendering a page.
- Add redirects from old to new pages if necessary. Redesign an existing site will often results in a changed site structure. We don't leave people (and search engines) in the cold and provide redirects from the old urls to the new ones. To manage such redirects in a Laravel app we use our home grown laravel-missing-pages-redirector package.
- Verify that all http status codes are ok. Links to missing pages are really not classy. That's why we unleash our crawler on the new site to make sure that links on all pages return a good response code.
The checklist contains many more items. Take a look at the entire list on GitHub: https://github.com/spatie/checklist-going-live
Do you think we've missed an important check? Submit a PR.