vikerman / ivy-universal

Server side rendering using Angular Ivy
180 stars 13 forks source link

Is this project still actual #9

Open h3d0 opened 4 years ago

h3d0 commented 4 years ago

Hi @vikerman,

this project seems to be very promising. Especially the:

Server-side Rendering(SSR) with Angular Ivy Selective client side rehydration based on user events / data binding changes At this point no Angular specific code or component code has been loaded. (Current bootstrap size without polyfills: ~12 Kb)

Are there any further plans to work on this, or the approach has been change since the release of Angular 9?


After the release of Lighthouse 6 and the change of the factors that drive the score, Angular Universal powered app seems to receive a drawback.

The main problem is the way Largest Contentful Paint is calculated. See the example (the work in progress on a e-commerce site powered by Angular Universal with a focus on max performance and all web standards):

image

The LCP which becomes the major factor in LH 6 is triggered at the very end although the content does not change after the FCP (since it is pre-rendered on the server, 100% complete HTML which servers SEO purposes).

It seems like re-hydration moves the LCP in time.

Current state of things pretty much a blocker for any Angular Universal PWA.

Minimizing the bundles and allowing re-hydration to pop in on-demand could resolve this.

I have created a Lighthouse issue to possibly get some feedback on this topic: https://github.com/GoogleChrome/lighthouse/issues/10845.

h3d0 commented 4 years ago

For example, LH5 score:

image

in LH6 automatically becomes:

image


The project uses pretty much every possible tuning available:

Universal as of today will pretty much receives a - 15-20% performance score straight up from the start, once LH6 rules are in place. Taking into account Universal is the main solution for SEO for Angular-powered PWAs - this becomes a major factor.

vikerman commented 4 years ago

Hi - I am no longer working on this. You can contact the folks at Angular Universal.

initplatform commented 4 years ago

https://github.com/angular/universal/issues/1858