The CMS version would be a private site (not accessible by the general public) which is compiled into a static HTML site which is publicly accessible.
There should be a way to deal with formerly dynamic elements, such as contact/comment forms, site search, etc. (possibly using third party APIs)
There also should be a way to deal with updates to the CMS version of the site, so that these changes are detected, compiled and processed into the static version of the site.