Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Apollo Server and Client Example App #8195

Merged
merged 7 commits into from
Sep 5, 2019
Merged

Add Apollo Server and Client Example App #8195

merged 7 commits into from
Sep 5, 2019

Conversation

lifeiscontent
Copy link
Contributor

@lifeiscontent lifeiscontent commented Aug 1, 2019

also shows example to take advantage of page prerendering

@github-actions
Copy link
Contributor

github-actions bot commented Aug 1, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 13.4s 13.3s -85ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 14.6s 14.8s ⚠️ +183ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 252 kB 252 kB
Serverless pages/link gzip Size 67.9 kB 67.9 kB
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.8 kB 65.8 kB
Serverless pages/_error Size 244 kB 244 kB
Serverless pages/_error gzip Size 65.5 kB 65.5 kB
Serverless pages/routerDirect Size 245 kB 245 kB
Serverless pages/routerDirect gzip Size 65.7 kB 65.7 kB ⚠️ +1 B
Serverless pages/withRouter Size 245 kB 245 kB
Serverless pages/withRouter gzip Size 65.9 kB 65.9 kB -1 B
Build Dir Size 1.89 MB 1.89 MB

@github-actions
Copy link
Contributor

github-actions bot commented Aug 1, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 13.8s 13.7s -78ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 15.3s 14.9s -350ms
node_modules Size 45.9 MB 45.9 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.49 kB 1.49 kB
Client webpack gzip Size 770 B 770 B
Serverless pages/link Size 252 kB 252 kB
Serverless pages/link gzip Size 67.9 kB 67.9 kB -3 B
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.8 kB 65.8 kB -3 B
Serverless pages/_error Size 244 kB 244 kB
Serverless pages/_error gzip Size 65.5 kB 65.5 kB -3 B
Serverless pages/routerDirect Size 245 kB 245 kB
Serverless pages/routerDirect gzip Size 65.7 kB 65.7 kB -3 B
Serverless pages/withRouter Size 245 kB 245 kB
Serverless pages/withRouter gzip Size 65.9 kB 65.8 kB -3 B
Build Dir Size 1.89 MB 1.89 MB

Copy link
Member

@lfades lfades left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lifeiscontent Thank you for the PR, can you check my comments with the requested changes 🙏

@lifeiscontent
Copy link
Contributor Author

lifeiscontent commented Aug 2, 2019

@lfades I realize that there were some bugs initially in the example project a few findings maybe you could shed some light on.

  1. on the initial page load from the server the cache is primed, but if you goto the /static-page page (make sure to refresh the page so its loaded from the server) and then click the link to to go back to the page with apollo, it errors. The reason is the cache is empty in this case. Is there a way you know on how to solve this?

  2. if my static page is called static.js it errors when loading from the server, I'm guessing this is due to the /static folder feature in next.js

@lifeiscontent
Copy link
Contributor Author

I think I've solved the problems I mentioned, however there's still a bug with the static.js page, if you want I can open an issue since it's unrelated to this PR.

@lifeiscontent
Copy link
Contributor Author

ping @lfades

@lfades
Copy link
Member

lfades commented Aug 5, 2019

@lifeiscontent That's okay, /static is used by the static folder, is better to rename the page instead, if you have a valid use case for having /static as a page let me know

@lifeiscontent
Copy link
Contributor Author

lifeiscontent commented Aug 5, 2019

@lfades also, side note, in an app I'm doing this exact same thing, the call to getDataFromTree breaks due to using material-ui, I guess because their use of hooks Suspense gets triggered in the Container of next/app and getDataFromTree throws. Any ideas on how to solve this?

@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 12.1s 12s -113ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 12.9s 13.1s ⚠️ +211ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB -1 B
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB -1 B
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB -1 B
Build Dir Size 1.89 MB 1.89 MB

@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 14s 13.6s -391ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 15s 14.9s -122ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB ⚠️ +1 B
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB ⚠️ +1 B
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 300 B 301 B ⚠️ +1 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB ⚠️ +1 B
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB ⚠️ +2 B
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB
Build Dir Size 1.89 MB 1.89 MB

@ijjk
Copy link
Member

ijjk commented Aug 5, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 12.6s 12.3s -288ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Base Rendered Size 1.35 kB 1.35 kB
Build Dir Size 702 kB 702 kB
Click to expand serverless stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 13.3s 13.9s ⚠️ +596ms
node_modules Size 43.6 MB 43.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 206 kB 206 kB
Total Bundle (main, webpack, commons) gzip Size 67.8 kB 67.8 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/link Size 4.08 kB 4.08 kB
Client pages/link gzip Size 1.8 kB 1.8 kB
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 301 B
Client main Size 15.4 kB 15.4 kB
Client main gzip Size 5.35 kB 5.35 kB
Client commons Size 188 kB 188 kB
Client commons gzip Size 61.1 kB 61.1 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Serverless pages/link Size 251 kB 251 kB
Serverless pages/link gzip Size 67.8 kB 67.8 kB
Serverless pages/index Size 244 kB 244 kB
Serverless pages/index gzip Size 65.6 kB 65.6 kB ⚠️ +1 B
Serverless pages/_error Size 243 kB 243 kB
Serverless pages/_error gzip Size 65.4 kB 65.4 kB ⚠️ +1 B
Serverless pages/routerDirect Size 244 kB 244 kB
Serverless pages/routerDirect gzip Size 65.6 kB 65.6 kB
Serverless pages/withRouter Size 244 kB 244 kB
Serverless pages/withRouter gzip Size 65.7 kB 65.7 kB ⚠️ +1 B
Build Dir Size 1.89 MB 1.89 MB

@lfades
Copy link
Member

lfades commented Aug 6, 2019

@lifeiscontent I know that issue, it happens in next-with-apollo, probably the new AppTree can fix it but I'm not sure

@lifeiscontent
Copy link
Contributor Author

@lfades @ijjk anything I can do to help get this further along? or are we waiting on the AppTree changes?

@ijjk
Copy link
Member

ijjk commented Aug 9, 2019

Stats from current PR

Click to expand stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 22.5s 22s -537ms
node_modules Size 41.6 MB 41.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 214 kB 214 kB
Total Bundle (main, webpack, commons) gzip Size 70.6 kB 70.6 kB -1 B
Total Bundle (main, webpack, commons) Modern Size 189 kB 189 kB
Total Bundle (main, webpack, commons) Modern gzip Size 62.4 kB 62.4 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB -1 B
Client _app Modern Size 1.83 kB 1.83 kB
Client _app gzip Modern Size 890 B 890 B
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client _error Modern Size 5.85 kB 5.85 kB
Client _error gzip Modern Size 2.33 kB 2.33 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/index Modern Size 319 B 319 B
Client pages/index gzip Modern Size 254 B 254 B
Client pages/link Size 4.18 kB 4.18 kB
Client pages/link gzip Size 1.82 kB 1.82 kB
Client pages/link Modern Size 3.81 kB 3.81 kB
Client pages/link gzip Modern Size 1.72 kB 1.72 kB -1 B
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/routerDirect Modern Size 411 B 411 B
Client pages/routerDirect gzip Modern Size 314 B 314 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 301 B 300 B -1 B
Client pages/withRouter Modern Size 423 B 423 B
Client pages/withRouter gzip Modern Size 309 B 309 B
Client main Size 16.3 kB 16.3 kB
Client main gzip Size 5.73 kB 5.73 kB
Client main Modern Size 13.1 kB 13.1 kB
Client main Modern gzip Size 4.99 kB 4.99 kB
Client commons Size 195 kB 195 kB
Client commons gzip Size 63.6 kB 63.6 kB
Client commons Modern Size 176 kB 176 kB
Client commons Modern gzip Size 57.4 kB 57.4 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Client webpack Modern Size 1.53 kB 1.53 kB
Client webpack Modern gzip Size 785 B 785 B
Base Rendered Size 2.76 kB 2.76 kB
Build Dir Size 1.44 MB 1.44 MB
Click to expand serverless stats
zeit/next.js canary lifeiscontent/next.js canary Change
Build Duration 24.3s 23.3s -986ms
node_modules Size 41.6 MB 41.6 MB ⚠️ +36 B
Total Bundle (main, webpack, commons) Size 214 kB 214 kB
Total Bundle (main, webpack, commons) gzip Size 70.6 kB 70.6 kB ⚠️ +1 B
Total Bundle (main, webpack, commons) Modern Size 189 kB 189 kB
Total Bundle (main, webpack, commons) Modern gzip Size 62.4 kB 62.4 kB
Client _app Size 2.39 kB 2.39 kB
Client _app gzip Size 1.08 kB 1.08 kB ⚠️ +1 B
Client _app Modern Size 1.83 kB 1.83 kB
Client _app gzip Modern Size 890 B 890 B
Client _error Size 8.22 kB 8.22 kB
Client _error gzip Size 3.16 kB 3.16 kB
Client _error Modern Size 5.85 kB 5.85 kB
Client _error gzip Modern Size 2.33 kB 2.33 kB
Client pages/index Size 343 B 343 B
Client pages/index gzip Size 246 B 246 B
Client pages/index Modern Size 319 B 319 B
Client pages/index gzip Modern Size 254 B 254 B
Client pages/link Size 4.18 kB 4.18 kB
Client pages/link gzip Size 1.82 kB 1.82 kB
Client pages/link Modern Size 3.81 kB 3.81 kB
Client pages/link gzip Modern Size 1.72 kB 1.72 kB ⚠️ +1 B
Client pages/routerDirect Size 423 B 423 B
Client pages/routerDirect gzip Size 306 B 306 B
Client pages/routerDirect Modern Size 411 B 411 B
Client pages/routerDirect gzip Modern Size 314 B 314 B
Client pages/withRouter Size 435 B 435 B
Client pages/withRouter gzip Size 300 B 301 B ⚠️ +1 B
Client pages/withRouter Modern Size 423 B 423 B
Client pages/withRouter gzip Modern Size 309 B 309 B
Client main Size 16.3 kB 16.3 kB
Client main gzip Size 5.73 kB 5.73 kB
Client main Modern Size 13.1 kB 13.1 kB
Client main Modern gzip Size 4.99 kB 4.99 kB
Client commons Size 195 kB 195 kB
Client commons gzip Size 63.6 kB 63.6 kB
Client commons Modern Size 176 kB 176 kB
Client commons Modern gzip Size 57.4 kB 57.4 kB
Client webpack Size 1.53 kB 1.53 kB
Client webpack gzip Size 778 B 778 B
Client webpack Modern Size 1.53 kB 1.53 kB
Client webpack Modern gzip Size 785 B 785 B
Serverless pages/link Size 256 kB 256 kB
Serverless pages/link gzip Size 68.8 kB 68.8 kB ⚠️ +2 B
Serverless pages/index Size 249 kB 249 kB
Serverless pages/index gzip Size 66.6 kB 66.6 kB ⚠️ +1 B
Serverless pages/_error Size 248 kB 248 kB
Serverless pages/_error gzip Size 66.3 kB 66.3 kB ⚠️ +2 B
Serverless pages/routerDirect Size 249 kB 249 kB
Serverless pages/routerDirect gzip Size 66.5 kB 66.5 kB ⚠️ +4 B
Serverless pages/withRouter Size 249 kB 249 kB
Serverless pages/withRouter gzip Size 66.6 kB 66.6 kB ⚠️ +3 B
Build Dir Size 2.65 MB 2.65 MB

@lfades
Copy link
Member

lfades commented Aug 12, 2019

@lifeiscontent You should be able to use AppTree by now

@lifeiscontent
Copy link
Contributor Author

@lfades would I need to wrap _app.js? or how does AppTree work? If I need to wrap _app.js how can I take advantage of page prerendering?

@lfades
Copy link
Member

lfades commented Aug 15, 2019

@lifeiscontent Here: https://github.com/zeit/next.js/pull/8180/files, if you want to use apollo-hooks instead it should also work, the with-apollo example is already doing it.

@lifeiscontent
Copy link
Contributor Author

lifeiscontent commented Aug 17, 2019

@lfades ok, makes sense. One more question before I update the example, I'm realizing if someone has a custom domain and isn't running on localhost:3000 the API host won't match .e.g http://localhost:3000/graphql vs https://example.com/api/graphql how can I get this information to provide to apollo as it needs an absolute URL.

@lifeiscontent
Copy link
Contributor Author

ping @lfades

@lfades
Copy link
Member

lfades commented Aug 20, 2019

@lifeiscontent, Add a environment variable for the absolute URL, e.g:

const ROOT_URL =
  process.env.NODE_ENV === 'production'
    ? process.env.ROOT_URL
    : 'http://localhost:3000'

@sakulstra
Copy link
Contributor

@lfades while this works (and is how i currently work around that problem)

I'm wondering if there's a more elegant solution as the pr deployments via github integration will have unique urls so manually setting the env is not possible.

Seems like apollo-boost will be removed in 3: apollographql/apollo-client#5217 might make sense to use direct imports from @apollo/react-ssr et. al. instead

@lfades
Copy link
Member

lfades commented Aug 26, 2019

@lifeiscontent I wanted to check the history but you did a force push so I'll ask, wasn't the example using the page to create the apollo client instead of _app.js before?

@lifeiscontent
Copy link
Contributor Author

lifeiscontent commented Aug 27, 2019

@lfades yeah, I decided to follow the way with-apollo works

@lfades
Copy link
Member

lfades commented Aug 27, 2019

@lifeiscontent Can you change it back? I really liked the way it worked, you were the first one in adding it that way, and the current examples will switch (some already) to do the same.

@lifeiscontent
Copy link
Contributor Author

@lfades yeah, okay, I'll see if I can make a commit later tonight 😄

@lifeiscontent
Copy link
Contributor Author

@sakulstra I fixed the issue you brought up :)

@ijjk
Copy link
Member

ijjk commented Aug 27, 2019

Stats from current PR

Default Server Mode
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 23.2s 23.2s ⚠️ +63ms
nodeModulesSize 41.3 MB 41.3 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.1 kB 18.1 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.37 kB 6.37 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change
Client Pages
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 433 B 433 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change
Client Pages Modern
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 804 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 429 B
withRouter.module.js gzip 293 B 293 B
Overall change
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Rendered Page Sizes
zeit/next.js canary lifeiscontent/next.js canary Change
index.html 3.7 kB 3.7 kB
index.html gzip 960 B 957 B -3 B
link.html 3.75 kB 3.75 kB
link.html gzip 968 B 965 B -3 B
withRouter.html 3.75 kB 3.75 kB
withRouter.html gzip 955 B 953 B -2 B
Overall change

Serverless Mode (Increase detected ⚠️)
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 25.8s 24.8s -1s
nodeModulesSize 41.3 MB 41.3 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.1 kB 18.1 kB -1 B
main-HASH.js gzip 6.64 kB 6.64 kB -1 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change -1 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB -1 B
main-HASH.module.js gzip 6.37 kB 6.37 kB -1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change -1 B
Client Pages Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB ⚠️ +1 B
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB ⚠️ +1 B
routerDirect.js 433 B 434 B ⚠️ +1 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change ⚠️ +1 B
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 805 B ⚠️ +1 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 430 B ⚠️ +1 B
withRouter.module.js gzip 293 B 293 B
Overall change ⚠️ +1 B
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Serverless bundles Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_error.js 247 kB 247 kB ⚠️ +16 B
_error.js gzip 66.3 kB 66.4 kB ⚠️ +150 B
hooks.html 3.81 kB 3.81 kB ⚠️ +6 B
hooks.html gzip 976 B 977 B ⚠️ +1 B
index.js 248 kB 248 kB ⚠️ +16 B
index.js gzip 66.5 kB 66.6 kB ⚠️ +98 B
link.js 255 kB 255 kB ⚠️ +16 B
link.js gzip 68.8 kB 68.8 kB -25 B
routerDirect.js 249 kB 249 kB ⚠️ +16 B
routerDirect.js gzip 66.8 kB 66.8 kB ⚠️ +3 B
withRouter.js 248 kB 248 kB ⚠️ +16 B
withRouter.js gzip 66.8 kB 66.7 kB -187 B
Overall change ⚠️ +86 B

@lifeiscontent
Copy link
Contributor Author

@lfades updated! :)

@ijjk
Copy link
Member

ijjk commented Aug 28, 2019

Stats from current PR

Default Server Mode (Decrease detected ✓)
General Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 21.1s 20.6s -484ms
nodeModulesSize 41.3 MB 41.3 MB -1.45 kB
Client Bundles (main, webpack, commons)
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.1 kB 18.1 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.37 kB 6.37 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change
Client Pages
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 433 B 433 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change
Client Pages Modern
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 804 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 429 B
withRouter.module.js gzip 293 B 293 B
Overall change
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Rendered Page Sizes Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
index.html 3.7 kB 3.7 kB -1 B
index.html gzip 960 B 953 B -7 B
link.html 3.75 kB 3.74 kB -1 B
link.html gzip 968 B 961 B -7 B
withRouter.html 3.75 kB 3.75 kB -1 B
withRouter.html gzip 954 B 948 B -6 B
Overall change -3 B

Diffs

Diff for index.html
@@ -6,9 +6,9 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/index.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/index.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
@@ -16,9 +16,9 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.72ab6ea1ebeafbd8c735.module.js"
+        <link rel="preload" href="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.72ab6ea1ebeafbd8c735.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -26,18 +26,18 @@
         <div id="__next">Hello world 👋</div>
         <script id="__NEXT_DATA__" type="application/json"
         crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"q1-YqnY_3OSHrkoMHniDk"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"UwWGSF5kSjyyfIE7Jv3N3"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/index.js"
+        <script async="" data-next-page="/" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/index.module.js"
+        <script async="" data-next-page="/" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/index.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -51,15 +51,15 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/ht+8eaDfAvr6bzAWfOInVkOo37I=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/MrxyJ0dZ2TWhKdK+yryfK4F02o=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.c99adde05e467047c83e.js"
+        <script src="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.c99adde05e467047c83e.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.72ab6ea1ebeafbd8c735.module.js"
+        <script src="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.72ab6ea1ebeafbd8c735.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.js"
+        <script src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.module.js"
+        <script src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for link.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/link.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/link.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.72ab6ea1ebeafbd8c735.module.js"
+        <link rel="preload" href="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.72ab6ea1ebeafbd8c735.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -29,18 +29,18 @@
             </div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"q1-YqnY_3OSHrkoMHniDk"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"UwWGSF5kSjyyfIE7Jv3N3"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/link" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/link.js"
+        <script async="" data-next-page="/link" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/link" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/link.module.js"
+        <script async="" data-next-page="/link" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/link.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/ht+8eaDfAvr6bzAWfOInVkOo37I=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/MrxyJ0dZ2TWhKdK+yryfK4F02o=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.c99adde05e467047c83e.js"
+        <script src="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.c99adde05e467047c83e.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.72ab6ea1ebeafbd8c735.module.js"
+        <script src="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.72ab6ea1ebeafbd8c735.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.js"
+        <script src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.module.js"
+        <script src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/withRouter.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/withRouter.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.72ab6ea1ebeafbd8c735.module.js"
+        <link rel="preload" href="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.72ab6ea1ebeafbd8c735.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -27,18 +27,18 @@
             <div>I use withRouter</div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"q1-YqnY_3OSHrkoMHniDk"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"UwWGSF5kSjyyfIE7Jv3N3"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/withRouter.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/withRouter.module.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/withRouter.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/q1-YqnY_3OSHrkoMHniDk/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/ht+8eaDfAvr6bzAWfOInVkOo37I=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/MrxyJ0dZ2TWhKdK+yryfK4F02o=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.c99adde05e467047c83e.js"
+        <script src="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.c99adde05e467047c83e.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/i54VifbRTkqTR0kKud93KJzmIBw=.72ab6ea1ebeafbd8c735.module.js"
+        <script src="/_next/static/chunks/jhGGXjvD4JUtf+dn5omxi1djIE=.72ab6ea1ebeafbd8c735.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.js"
+        <script src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/q1-YqnY_3OSHrkoMHniDk/_buildManifest.module.js"
+        <script src="/_next/static/UwWGSF5kSjyyfIE7Jv3N3/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>

Serverless Mode (Increase detected ⚠️)
General Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 21.6s 22s ⚠️ +427ms
nodeModulesSize 41.3 MB 41.3 MB -1.45 kB
Client Bundles (main, webpack, commons) Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.1 kB 18.1 kB ⚠️ +1 B
main-HASH.js gzip 6.64 kB 6.64 kB ⚠️ +1 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change ⚠️ +1 B
Client Bundles (main, webpack, commons) Modern Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB ⚠️ +1 B
main-HASH.module.js gzip 6.37 kB 6.37 kB ⚠️ +1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change ⚠️ +1 B
Client Pages Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB -1 B
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB -1 B
routerDirect.js 434 B 433 B -1 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change -1 B
Client Pages Modern Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 805 B 804 B -1 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 430 B 429 B -1 B
withRouter.module.js gzip 293 B 293 B
Overall change -1 B
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Serverless bundles Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
_error.js 247 kB 247 kB -8 B
_error.js gzip 66.4 kB 66.2 kB -183 B
hooks.html 3.81 kB 3.81 kB -3 B
hooks.html gzip 978 B 979 B ⚠️ +1 B
index.js 248 kB 248 kB -8 B
index.js gzip 66.8 kB 66.7 kB -118 B
link.js 255 kB 255 kB -8 B
link.js gzip 68.9 kB 68.8 kB -47 B
routerDirect.js 249 kB 249 kB -8 B
routerDirect.js gzip 66.6 kB 66.6 kB -10 B
withRouter.js 248 kB 248 kB -8 B
withRouter.js gzip 66.7 kB 66.7 kB -88 B
Overall change -43 B

@ijjk
Copy link
Member

ijjk commented Aug 29, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 23.8s 23.9s ⚠️ +66ms
nodeModulesSize 41.3 MB 41.3 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.1 kB 18.1 kB -1 B
main-HASH.js gzip 6.64 kB 6.64 kB -1 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change -1 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB -1 B
main-HASH.module.js gzip 6.37 kB 6.37 kB -1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change -1 B
Client Pages Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB ⚠️ +1 B
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB ⚠️ +1 B
routerDirect.js 433 B 434 B ⚠️ +1 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change ⚠️ +1 B
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 805 B ⚠️ +1 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 430 B ⚠️ +1 B
withRouter.module.js gzip 293 B 293 B
Overall change ⚠️ +1 B
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Rendered Page Sizes
zeit/next.js canary lifeiscontent/next.js canary Change
index.html 3.7 kB 3.7 kB
index.html gzip 957 B 956 B -1 B
link.html 3.75 kB 3.75 kB
link.html gzip 965 B 964 B -1 B
withRouter.html 3.75 kB 3.75 kB
withRouter.html gzip 953 B 951 B -2 B
Overall change

Diffs

Diff for index.html
@@ -6,9 +6,9 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/index.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/index.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
@@ -16,9 +16,9 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.72ab6ea1ebeafbd8c735.module.js"
+        <link rel="preload" href="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.72ab6ea1ebeafbd8c735.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -26,18 +26,18 @@
         <div id="__next">Hello world 👋</div>
         <script id="__NEXT_DATA__" type="application/json"
         crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"4tiQ0rgBeBS-fwRL6t3QY"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"7PuvfR5klqVaK7p-kuaT4"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/index.js"
+        <script async="" data-next-page="/" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/index.module.js"
+        <script async="" data-next-page="/" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/index.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -51,15 +51,15 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/Xb44Xz0GS0jXeXwlsO2tilR8UQc=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/wj5mlU0ft7IG9eUajiEoPGMJVLU=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.c99adde05e467047c83e.js"
+        <script src="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.c99adde05e467047c83e.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.72ab6ea1ebeafbd8c735.module.js"
+        <script src="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.72ab6ea1ebeafbd8c735.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.js"
+        <script src="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.module.js"
+        <script src="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for link.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/link.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/link.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.72ab6ea1ebeafbd8c735.module.js"
+        <link rel="preload" href="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.72ab6ea1ebeafbd8c735.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -29,18 +29,18 @@
             </div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"4tiQ0rgBeBS-fwRL6t3QY"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"7PuvfR5klqVaK7p-kuaT4"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/link" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/link.js"
+        <script async="" data-next-page="/link" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/link" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/link.module.js"
+        <script async="" data-next-page="/link" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/link.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/Xb44Xz0GS0jXeXwlsO2tilR8UQc=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/wj5mlU0ft7IG9eUajiEoPGMJVLU=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.c99adde05e467047c83e.js"
+        <script src="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.c99adde05e467047c83e.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.72ab6ea1ebeafbd8c735.module.js"
+        <script src="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.72ab6ea1ebeafbd8c735.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.js"
+        <script src="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.module.js"
+        <script src="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/withRouter.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/withRouter.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.72ab6ea1ebeafbd8c735.module.js"
+        <link rel="preload" href="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.72ab6ea1ebeafbd8c735.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -27,18 +27,18 @@
             <div>I use withRouter</div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"4tiQ0rgBeBS-fwRL6t3QY"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"7PuvfR5klqVaK7p-kuaT4"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/withRouter.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/withRouter.module.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/withRouter.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/7PuvfR5klqVaK7p-kuaT4/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/Xb44Xz0GS0jXeXwlsO2tilR8UQc=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/wj5mlU0ft7IG9eUajiEoPGMJVLU=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.c99adde05e467047c83e.js"
+        <script src="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.c99adde05e467047c83e.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/yygjfzSMtGkv25wBcBA26ZO1OU=.72ab6ea1ebeafbd8c735.module.js"
+        <script src="/_next/static/chunks/2Wx1GbY2JZnJvXfvmwoe+Xjrox0=.72ab6ea1ebeafbd8c735.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-97617d800ec2b207a20a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-9c0b8b62a2fb27af35b2.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.js"
+        <script src="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/4tiQ0rgBeBS-fwRL6t3QY/_buildManifest.module.js"
+        <script src="/_next/static/7PuvfR5klqVaK7p-kuaT4/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>

Serverless Mode
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 25s 24.9s -106ms
nodeModulesSize 41.3 MB 41.3 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.1 kB 18.1 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.37 kB 6.37 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change
Client Pages
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 433 B 433 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change
Client Pages Modern
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 804 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 429 B
withRouter.module.js gzip 293 B 293 B
Overall change
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Serverless bundles
zeit/next.js canary lifeiscontent/next.js canary Change
_error.js 247 kB 247 kB
_error.js gzip 66.2 kB 66.3 kB ⚠️ +46 B
hooks.html 3.81 kB 3.81 kB
hooks.html gzip 982 B 978 B -4 B
index.js 248 kB 248 kB
index.js gzip 66.8 kB 66.6 kB -163 B
link.js 255 kB 255 kB
link.js gzip 68.9 kB 68.9 kB -20 B
routerDirect.js 249 kB 249 kB
routerDirect.js gzip 66.8 kB 66.7 kB -90 B
withRouter.js 248 kB 248 kB
withRouter.js gzip 66.7 kB 66.6 kB -88 B
Overall change

@ijjk
Copy link
Member

ijjk commented Aug 30, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 23s 23.4s ⚠️ +403ms
nodeModulesSize 41.8 MB 41.8 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.2 kB 18.2 kB -1 B
main-HASH.js gzip 6.64 kB 6.64 kB -1 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change -1 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB -1 B
main-HASH.module.js gzip 6.38 kB 6.37 kB -1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change -1 B
Client Pages Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB ⚠️ +1 B
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB ⚠️ +1 B
routerDirect.js 433 B 434 B ⚠️ +1 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change ⚠️ +1 B
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 805 B ⚠️ +1 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 430 B ⚠️ +1 B
withRouter.module.js gzip 293 B 293 B
Overall change ⚠️ +1 B
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
index.html 3.69 kB 3.7 kB ⚠️ +2 B
index.html gzip 953 B 956 B ⚠️ +3 B
link.html 3.74 kB 3.75 kB ⚠️ +2 B
link.html gzip 962 B 964 B ⚠️ +2 B
withRouter.html 3.75 kB 3.75 kB ⚠️ +2 B
withRouter.html gzip 949 B 951 B ⚠️ +2 B
Overall change ⚠️ +6 B

Diffs

Diff for index.html
@@ -6,9 +6,9 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/index.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/index.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
@@ -16,9 +16,9 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.c659a74b6088e6ac1abe.module.js"
+        <link rel="preload" href="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.c659a74b6088e6ac1abe.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -26,18 +26,18 @@
         <div id="__next">Hello world 👋</div>
         <script id="__NEXT_DATA__" type="application/json"
         crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"QhirKCoFz_G1hp1JKxZ2H"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"EjqRKUC34Gkl3IaHJAo8a"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/index.js"
+        <script async="" data-next-page="/" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/index.module.js"
+        <script async="" data-next-page="/" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/index.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -51,15 +51,15 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/tk0GBEtIMuXHFHkm2CEoFnuHk=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/2X83M4JLP2z7feC8LHGCi+qJFIc=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.f6f7599a2edf91d8366a.js"
+        <script src="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.f6f7599a2edf91d8366a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.c659a74b6088e6ac1abe.module.js"
+        <script src="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.c659a74b6088e6ac1abe.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.js"
+        <script src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.module.js"
+        <script src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for link.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/link.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/link.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.c659a74b6088e6ac1abe.module.js"
+        <link rel="preload" href="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.c659a74b6088e6ac1abe.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -29,18 +29,18 @@
             </div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"QhirKCoFz_G1hp1JKxZ2H"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"EjqRKUC34Gkl3IaHJAo8a"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/link" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/link.js"
+        <script async="" data-next-page="/link" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/link" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/link.module.js"
+        <script async="" data-next-page="/link" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/link.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/tk0GBEtIMuXHFHkm2CEoFnuHk=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/2X83M4JLP2z7feC8LHGCi+qJFIc=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.f6f7599a2edf91d8366a.js"
+        <script src="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.f6f7599a2edf91d8366a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.c659a74b6088e6ac1abe.module.js"
+        <script src="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.c659a74b6088e6ac1abe.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.js"
+        <script src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.module.js"
+        <script src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/withRouter.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/withRouter.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.c659a74b6088e6ac1abe.module.js"
+        <link rel="preload" href="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.c659a74b6088e6ac1abe.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -27,18 +27,18 @@
             <div>I use withRouter</div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"QhirKCoFz_G1hp1JKxZ2H"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"EjqRKUC34Gkl3IaHJAo8a"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/withRouter.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/withRouter.module.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/withRouter.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/tk0GBEtIMuXHFHkm2CEoFnuHk=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/2X83M4JLP2z7feC8LHGCi+qJFIc=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.f6f7599a2edf91d8366a.js"
+        <script src="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.f6f7599a2edf91d8366a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/f70H6Fs96KsCxo6pO1NdTP28iLI=.c659a74b6088e6ac1abe.module.js"
+        <script src="/_next/static/chunks/1Jf8FktiUOvgoVH7yKQIJEBOP8=.c659a74b6088e6ac1abe.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.js"
+        <script src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/QhirKCoFz_G1hp1JKxZ2H/_buildManifest.module.js"
+        <script src="/_next/static/EjqRKUC34Gkl3IaHJAo8a/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>

Serverless Mode (Increase detected ⚠️)
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 24.9s 25.2s ⚠️ +338ms
nodeModulesSize 41.8 MB 41.8 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.2 kB 18.2 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.38 kB 6.38 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change
Client Pages
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 433 B 433 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change
Client Pages Modern
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 804 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 429 B
withRouter.module.js gzip 293 B 293 B
Overall change
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Serverless bundles Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_error.js 247 kB 247 kB ⚠️ +8 B
_error.js gzip 66.5 kB 66.3 kB -171 B
hooks.html 3.81 kB 3.81 kB ⚠️ +3 B
hooks.html gzip 979 B 982 B ⚠️ +3 B
index.js 248 kB 248 kB ⚠️ +8 B
index.js gzip 66.7 kB 66.7 kB
link.js 256 kB 256 kB ⚠️ +8 B
link.js gzip 68.8 kB 68.9 kB ⚠️ +111 B
routerDirect.js 249 kB 249 kB ⚠️ +8 B
routerDirect.js gzip 66.9 kB 66.7 kB -183 B
withRouter.js 249 kB 249 kB ⚠️ +8 B
withRouter.js gzip 66.6 kB 66.9 kB ⚠️ +255 B
Overall change ⚠️ +43 B

@lifeiscontent
Copy link
Contributor Author

@lfades ping

@ijjk
Copy link
Member

ijjk commented Aug 30, 2019

Stats from current PR

Default Server Mode (Increase detected ⚠️)
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 25.9s 24.2s -1.7s
nodeModulesSize 42 MB 42 MB
Client Bundles (main, webpack, commons) Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.2 kB 18.2 kB -1 B
main-HASH.js gzip 6.64 kB 6.64 kB -1 B
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change -1 B
Client Bundles (main, webpack, commons) Modern Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB -1 B
main-HASH.module.js gzip 6.38 kB 6.37 kB -1 B
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change -1 B
Client Pages Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB ⚠️ +1 B
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB ⚠️ +1 B
routerDirect.js 433 B 434 B ⚠️ +1 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change ⚠️ +1 B
Client Pages Modern Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 805 B ⚠️ +1 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 430 B ⚠️ +1 B
withRouter.module.js gzip 293 B 293 B
Overall change ⚠️ +1 B
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Rendered Page Sizes Overall increase ⚠️
zeit/next.js canary lifeiscontent/next.js canary Change
index.html 3.69 kB 3.7 kB ⚠️ +4 B
index.html gzip 955 B 957 B ⚠️ +2 B
link.html 3.74 kB 3.74 kB ⚠️ +4 B
link.html gzip 964 B 964 B
withRouter.html 3.75 kB 3.75 kB ⚠️ +4 B
withRouter.html gzip 951 B 951 B
Overall change ⚠️ +12 B

Diffs

Diff for index.html
@@ -6,9 +6,9 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/index.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/pages/index.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
@@ -16,9 +16,9 @@
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.c659a74b6088e6ac1abe.module.js"
+        <link rel="preload" href="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.c659a74b6088e6ac1abe.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -26,18 +26,18 @@
         <div id="__next">Hello world 👋</div>
         <script id="__NEXT_DATA__" type="application/json"
         crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"3XFolVBctQ1pzpCKpfThe"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/","query":{},"buildId":"8JnoaBONjVytNwUme4fyv"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/index.js"
+        <script async="" data-next-page="/" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/index.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/index.module.js"
+        <script async="" data-next-page="/" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/index.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -51,15 +51,15 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/ut78akvXOmC63FqIVOpSTP2zXJc=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/NLN47n98ar2Jg+U3JK6IkjS1y7c=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.f6f7599a2edf91d8366a.js"
+        <script src="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.f6f7599a2edf91d8366a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.c659a74b6088e6ac1abe.module.js"
+        <script src="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.c659a74b6088e6ac1abe.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.js"
+        <script src="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.module.js"
+        <script src="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for link.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/link.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/pages/link.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.c659a74b6088e6ac1abe.module.js"
+        <link rel="preload" href="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.c659a74b6088e6ac1abe.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -29,18 +29,18 @@
             </div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"3XFolVBctQ1pzpCKpfThe"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/link","query":{},"buildId":"8JnoaBONjVytNwUme4fyv"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/link" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/link.js"
+        <script async="" data-next-page="/link" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/link.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/link" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/link.module.js"
+        <script async="" data-next-page="/link" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/link.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -50,19 +50,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/ut78akvXOmC63FqIVOpSTP2zXJc=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/NLN47n98ar2Jg+U3JK6IkjS1y7c=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.f6f7599a2edf91d8366a.js"
+        <script src="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.f6f7599a2edf91d8366a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.c659a74b6088e6ac1abe.module.js"
+        <script src="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.c659a74b6088e6ac1abe.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.js"
+        <script src="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.module.js"
+        <script src="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>
Diff for withRouter.html
@@ -6,19 +6,19 @@
         <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"
         />
         <meta name="next-head-count" content="2" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/withRouter.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/pages/withRouter.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/webpack-7928590be3ef2e55b835.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.c659a74b6088e6ac1abe.module.js"
+        <link rel="preload" href="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.c659a74b6088e6ac1abe.module.js"
         as="script" crossorigin="anonymous" />
         <link rel="preload" href="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         as="script" crossorigin="anonymous" />
-        <link rel="preload" href="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.module.js"
+        <link rel="preload" href="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.module.js"
         as="script" crossorigin="anonymous" />
     </head>
     
@@ -27,18 +27,18 @@
             <div>I use withRouter</div>
         </div>
         <script id="__NEXT_DATA__" type="application/json" crossorigin="anonymous">
-            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"3XFolVBctQ1pzpCKpfThe"}
+            {"dataManager":"[]","props":{"pageProps":{}},"page":"/withRouter","query":{},"buildId":"8JnoaBONjVytNwUme4fyv"}
         </script>
         <script crossorigin="anonymous" nomodule="">
             !function(){var e=document,t=e.createElement("script");if(!("noModule"in t)&&"onbeforeload"in t){var n=!1;e.addEventListener("beforeload",function(e){if(e.target===t)n=!0;else if(!e.target.hasAttribute("nomodule")||!n)return;e.preventDefault()},!0),t.type="module",t.src=".",e.head.appendChild(t),t.remove()}}();
         </script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/withRouter.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/withRouter.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/withRouter" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/withRouter.module.js"
+        <script async="" data-next-page="/withRouter" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/withRouter.module.js"
         crossorigin="anonymous" type="module"></script>
-        <script async="" data-next-page="/_app" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.js"
+        <script async="" data-next-page="/_app" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.js"
         crossorigin="anonymous" nomodule=""></script>
-        <script async="" data-next-page="/_app" src="/_next/static/3XFolVBctQ1pzpCKpfThe/pages/_app.module.js"
+        <script async="" data-next-page="/_app" src="/_next/static/8JnoaBONjVytNwUme4fyv/pages/_app.module.js"
         crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/webpack-a470c2a25bcb4d5a8ec0.js"
         async="" crossorigin="anonymous" nomodule=""></script>
@@ -48,19 +48,19 @@
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/chunks/framework.cdb73e402d876d4ac87f.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/chunks/ut78akvXOmC63FqIVOpSTP2zXJc=.155621535702fe040780.js"
+        <script src="/_next/static/chunks/NLN47n98ar2Jg+U3JK6IkjS1y7c=.155621535702fe040780.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.f6f7599a2edf91d8366a.js"
+        <script src="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.f6f7599a2edf91d8366a.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/chunks/APKZw2xbGiJrtXjv8QVU3iATeP0=.c659a74b6088e6ac1abe.module.js"
+        <script src="/_next/static/chunks/DQGYDZqGcCT8ARF7s7OfOpmz9Q=.c659a74b6088e6ac1abe.module.js"
         async="" crossorigin="anonymous" type="module"></script>
         <script src="/_next/static/runtime/main-2cd30e118423b74fdb03.js"
         async="" crossorigin="anonymous" nomodule=""></script>
         <script src="/_next/static/runtime/main-b34dfc4fd33bc7bccca0.module.js"
         async="" crossorigin="anonymous" type="module"></script>
-        <script src="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.js"
+        <script src="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.js"
         async="" crossorigin="anonymous" nomodule=""></script>
-        <script src="/_next/static/3XFolVBctQ1pzpCKpfThe/_buildManifest.module.js"
+        <script src="/_next/static/8JnoaBONjVytNwUme4fyv/_buildManifest.module.js"
         async="" crossorigin="anonymous" type="module"></script>
     </body>

Serverless Mode (Decrease detected ✓)
General
zeit/next.js canary lifeiscontent/next.js canary Change
buildDuration 26.4s 25.7s -717ms
nodeModulesSize 42 MB 42 MB
Client Bundles (main, webpack, commons)
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.js 18.2 kB 18.2 kB
main-HASH.js gzip 6.64 kB 6.64 kB
webpack-HASH.js 1.53 kB 1.53 kB
webpack-HASH.js gzip 746 B 746 B
Overall change
Client Bundles (main, webpack, commons) Modern
zeit/next.js canary lifeiscontent/next.js canary Change
main-HASH.module.js 16.5 kB 16.5 kB
main-HASH.module.js gzip 6.38 kB 6.38 kB
webpack-HASH.module.js 1.53 kB 1.53 kB
webpack-HASH.module.js gzip 746 B 746 B
Overall change
Client Pages
zeit/next.js canary lifeiscontent/next.js canary Change
_app.js 1.83 kB 1.83 kB
_app.js gzip 884 B 884 B
_error.js 12.1 kB 12.1 kB
_error.js gzip 4.76 kB 4.76 kB
hooks.js 12.7 kB 12.7 kB
hooks.js gzip 4.81 kB 4.81 kB
index.js 343 B 343 B
index.js gzip 237 B 237 B
link.js 8.14 kB 8.14 kB
link.js gzip 3.49 kB 3.49 kB
routerDirect.js 433 B 433 B
routerDirect.js gzip 296 B 296 B
withRouter.js 444 B 444 B
withRouter.js gzip 294 B 294 B
Overall change
Client Pages Modern
zeit/next.js canary lifeiscontent/next.js canary Change
_app.module.js 1.73 kB 1.73 kB
_app.module.js gzip 840 B 840 B
_error.module.js 23.3 kB 23.3 kB
_error.module.js gzip 8.62 kB 8.62 kB
hooks.module.js 1.55 kB 1.55 kB
hooks.module.js gzip 804 B 804 B
index.module.js 319 B 319 B
index.module.js gzip 238 B 238 B
link.module.js 8.52 kB 8.52 kB
link.module.js gzip 3.68 kB 3.68 kB
routerDirect.module.js 419 B 419 B
routerDirect.module.js gzip 294 B 294 B
withRouter.module.js 429 B 429 B
withRouter.module.js gzip 293 B 293 B
Overall change
Client Build Manifests
zeit/next.js canary lifeiscontent/next.js canary Change
_buildManifest.js 81 B 81 B
_buildManifest.js gzip 61 B 61 B
_buildManifest.module.js 81 B 81 B
_buildManifest.module.js gzip 61 B 61 B
Overall change
Serverless bundles Overall decrease ✓
zeit/next.js canary lifeiscontent/next.js canary Change
_error.js 247 kB 247 kB -8 B
_error.js gzip 66.4 kB 66.3 kB -131 B
hooks.html 3.81 kB 3.81 kB -3 B
hooks.html gzip 983 B 977 B -6 B
index.js 248 kB 248 kB -8 B
index.js gzip 66.6 kB 66.5 kB -44 B
link.js 256 kB 256 kB -8 B
link.js gzip 68.9 kB 68.9 kB -60 B
routerDirect.js 249 kB 249 kB -8 B
routerDirect.js gzip 66.6 kB 66.9 kB ⚠️ +297 B
withRouter.js 249 kB 249 kB -8 B
withRouter.js gzip 66.7 kB 66.7 kB ⚠️ +23 B
Overall change -43 B

@lifeiscontent
Copy link
Contributor Author

@lfades
@sakulstra
@timneutkens
@ijjk

Ping

Copy link
Contributor

@sakulstra sakulstra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd personally prefer that https://github.com/zeit/next.js/pull/8195/files#r318316702 was implemented even if it's not needed for the example as users will for sure hit that wall and eventually create unnecessary github issues.
On the other hand you could argue that it should be as simple as possible.

Anyhow, from my perspective this looks really good! 👍

Copy link
Member

@lfades lfades left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lifeiscontent Thank you for the hard work, I like the implementation in the server, is short and simple, @HaNdTriX wdyt about the apollo client added for the client? it looks quite different from the other examples.

I'm merging it now but I would really like to have a common implementation of the apollo client inside /lib.

@lfades lfades merged commit 6c01bbd into vercel:canary Sep 5, 2019
@lfades
Copy link
Member

lfades commented Sep 5, 2019

@HaNdTriX @lifeiscontent 5 examples for Apollo so far, we could probably unify the server added in this one with another example

@lifeiscontent
Copy link
Contributor Author

@lfades thank you! I'm down to make a followup commit if needed. One thing I realized about using apollo with next.js is the defaults you'll probably want are the following:

{
  mutate: {
    errorPolicy: 'all',
    fetchPolicy: 'network-only',
  },
  query: {
    errorPolicy: 'all',
    fetchPolicy: 'network-only',
  },
  watchQuery: {
    fetchPolicy: 'cache-and-network',
    errorPolicy: 'all',
  },
}

due to how SSR works, in order to keep data fresh, this is what I found was working the best for my use case. reason being:

  1. Apollo Queries data in SSR
  2. Apollo might have new data on the server so the cache will return stale data, but if the client gets new data the cache will be updated from another request.

Vs:

  1. Apollo Queries data in SSR
  2. Apollo serves cached data.

@lifeiscontent
Copy link
Contributor Author

lifeiscontent commented Sep 5, 2019

@lfades also, do you think it would be worth making an apollo federation example? I'd love to start working on an example that would work with a now deployment using api routes as lambda functions and doing schema stitching in apollo federation.

not 100% sure how to do it yet, but I imagine it's possible, and it would be a solid example to hit the ground running with a well abstracted architecture.

@lfades
Copy link
Member

lfades commented Sep 6, 2019

@lifeiscontent Apollo federation +1. I don't understand the other comment, what do you mean by

  1. Apollo serves cached data.

The server can't serve cached data

@lifeiscontent
Copy link
Contributor Author

@lfades sorry, what I meant by "Apollo serves cached data" was that on the client, things like the component will serve the data fetched by the server vs getting data from the client cache-and-network seems to be the best option for SSR because you'll get the cached data, but once the client takes over, if data changes, you'll get that fresh data back as well.

@lfades
Copy link
Member

lfades commented Sep 6, 2019

@lifeiscontent Right, that's the expected behavior, you only do the request once and never again unless you do a refresh or use a different fetchPolicy, but that entirely depends on your use case

@huv1k huv1k added this to the 9.0.6 milestone Sep 6, 2019
Copy link
Contributor

@HaNdTriX HaNdTriX left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


export default App => {
return class Apollo extends React.Component {
static displayName = 'withApollo(App)'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets use the real display name otherwise it will be misleading.

e.g.: https://github.com/zeit/next.js/blob/canary/examples/with-apollo/lib/apollo.js#L35

import { getDataFromTree } from '@apollo/react-ssr'
import { ApolloProvider } from '@apollo/react-hooks'

export default App => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let call this PageComponent instead since we can't use _app.js anymore


function create (initialState) {
// Check out https://github.com/zeit/next.js/pull/4611 if you want to use the AWSAppSyncClient
const isBrowser = typeof window !== 'undefined'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure if code elimination works if we assign typeof window !== 'undefined' to a variable. 🤔

uri: '/api/graphql',
credentials: 'same-origin'
})
: new SchemaLink({ schema })
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome addition! Maybe we can remove apollo-link-schema from the client bundle by using an inline require or import.

import React from 'react'
import initApollo from './init-apollo'
import Head from 'next/head'
import { getDataFromTree } from '@apollo/react-ssr'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets remove @apollo/react-ssr from the client bundle by using an inline import:

https://github.com/zeit/next.js/blob/canary/examples/with-apollo/lib/apollo.js#L70-L78

@vercel vercel locked as resolved and limited conversation to collaborators Jan 31, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants