SSR is a complicated feature to properly utilize, and seeing as there are definite drawbacks to doing so, it should always be evaluated to determine whether it's really necessary. We started out by looking at a few of the reasons to implement SSR, and hopefully after finishing this chapter, you'll also understand some of the drawbacks. As we've seen towards the end, there are a lot of hoops to jump through depending on what kind of functionality your app has and how many third-party libraries you use. As such, implementing SSR should never be a decision that's taken lightly.
We then started preparing our application for SSR by refactoring some of our existing implementation details to make our lives easier when rendering on the server. We then started adding the additional configuration files we needed, such as client- and server-specific boot files...