Angular doesn't have a mechanism like React for reusing an existing DOM, so what happens is that the client rebuilds the DOM and often there's a brief blink/flash when this transition happens. Hence, Preboot.
In addition to the core requirement of pushstate URLs, here are additional notes/guidelines for Angular users (will update as time goes on):
These versions should "just work" with Preboot. Without preboot, you'll see a brief blink/flash.
ng-view or ui-view templatesng-app must be on a <div /> within the <body /> tag<body>
<div prerendercloud-preboot-app-root ng-app>
<div ng-view></div>
<!-- ui-view also works -->
</div>
</body>
<html ng-app>
<body>
<div prerendercloud-preboot-app-root ng-view>
</div>
</body>
</html>
prerendercloud-preboot-app-root must be on the ng-app (app root)ng-app must be on a <div /> within <body /> since Preboot clones the ng-app DOM node, and you can't clone a <html /> or <body /> DOM node.