Static Sites Are Not So Static
Static websites refer to websites where the html of the page was rendered before your request was ever sent to the server. This is without exceptions the best performance possible: delivering flat html files which can be distributed over a content delivery network. This requires robust build time capabilities for turning various streams of code and content into the end result web page that the user sees. However it is not as limiting as someone who comes from a strong server side generation background might think.
To start, a static site can be a single page application as long as the body content of each page is available from the server along with the full html page. If this is the case then client side JS can be used to load in only the body content of new pages after the initial page load.
Static sites can also be progressive web apps and can be available offline. Nothing about PWA's prevents a static site from utilizing these features. In fact limiting tight server side coupling makes these features even easier.
Pre-rendering HTML content with build hooks provides the best possible performance, neither slowing down page load time or slowing down the page after it has been loaded with costly templating libraries and frameworks. All of this is possible without losing the possibility of dynamic, feature rich applications that we have all grown to expect out of the web.