Static Sites Generation
With Angular and Scully.io
Natalia Venditto
Application Size
Performance Optimization with Ivy
~40%
~2%
~30%
SERVER takes care of the logic, the routing, data fetching and logical operations
Server Rendering
Runtime
FAST
SLOW
First Paint
First Contentful Paint
Time to Interactive
Time to First Byte
FAST
FAST
CSR
Runtime
FAST
SLOW
First Paint
First Contentful Paint
Time to First Byte
Time to Interactive
CLIENT takes care of the logic, the routing, data fetching and logical operations
FAST
FAST
SSR
SERVER-Side + CSR
FAST
SLOW
First Paint
First Contentful Paint
Time to First Byte
Time to Interactive
SERVER takes care of the logic, the routing, data fetching and logical operations
FAST
FAST
Special infra/State Duplication
-
TranferState API
$ ng add @scullyio/init
MINIMUM REQUIREMENTS
Angular 8
Node v.10+
Buildtime
./dist/static
$ ng build && npm run scully
‘router`
‘render`
`file handler`
‘route discovery done`
`all done`
PLUGINS
$ npm run scully serve
./dist/static
SSG
Buildtime
FAST
RÁPIDO
SLOW
First Paint
First Contentful Paint
Time to First Byte
HTML Generation
Time to First Byte
Time to Interactive
COMPILER takes care of the logic, the routing, data fetching and logical operations
FAST
FAST
FAST
Demo (sort of :P)
$ ng generate module docs --route=docs --module=app-routing
<h3>ScullyIo content</h3>
<hr>
<!-- This is where Scully will inject the static HTML -->
<scully-content></scully-content>
<hr>
<h4>End of content</h4>
import { ScullyConfig } from '@scullyio/scully';
export const config: ScullyConfig = {
projectRoot: './src',
projectName: 'doc-site',
outDir: './dist/static',
routes: {
'/docs/:slug': {
type: 'contentFolder',
slug: {
folder: './docs'
},
},
}
};