The reason why the page was almost empty was the lack of hooks. Most themes do that straight away. For example displayNav in header.tpl
<nav>{hook h="displayNav"}</nav>
or
{hook h='displayNav'}
In Panda the relevant section looks like this:
{if (isset($HOOK_NAV_LEFT) && $HOOK_NAV_LEFT|trim) || (isset($HOOK_NAV_RIGHT) && $HOOK_NAV_RIGHT|trim)}
<div id="top_bar" class="nav {Configuration::get('STSN_HEADER_TOPBAR_SEP_TYPE')|default:'vertical-s'} {if !$sttheme.sticky_topbar} hide_when_sticky {/if}" >
<div class="wide_container">
<div class="container">
<div id="top_bar_row" class="flex_container">
<nav id="nav_left" class="flex_float_left">{$HOOK_NAV_LEFT}</nav>
<nav id="nav_right" class="flex_float_right">{$HOOK_NAV_RIGHT}</nav>
</div>
</div>
</div>
</div>
{/if}
By default neither $HOOK_NAV_LEFT nor $HOOK_NAV_RIGHT is defined. So there will be no displayNav hook and thus the content linked to that hook is not displayed.
The override FrontController.php contains the following text that inserts the hook:
$this->context->smarty->assign(array(
'HOOK_NAV_LEFT' => Hook::exec('displayNavLeft'),
'HOOK_NAV_RIGHT' => Hook::exec('displayNav'),
));
For some other hooks the same thing applies.
As my FrontController override hadn't been installed my page stayed empty.