Include dynamic og image#4595
Conversation
Size ChangesDetails📦 Next.js Bundle AnalysisThis analysis was generated by the next.js bundle analysis action 🤖
|
| Page | Size (compressed) |
|---|---|
global |
84.67 KB (🟡 +2 B) |
Details
The global bundle is the javascript bundle that loads alongside every page. It is in its own category because its impact is much higher - an increase to its size means that every page on your website loads slower, and a decrease means every page loads faster.
Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis
If you want further insight into what is behind the changes, give @next/bundle-analyzer a try!
One Hundred Ninety Pages Changed Size
The following pages changed size from the code in this PR compared to its base branch:
| Page | Size (compressed) | First Load |
|---|---|---|
/ |
48.06 KB (🟡 +99 B) |
132.73 KB |
/404 |
47.16 KB (🟡 +99 B) |
131.83 KB |
/apis |
47.95 KB (🟡 +99 B) |
132.62 KB |
/apis/createcontext |
49.7 KB (🟡 +99 B) |
134.37 KB |
/apis/reactdom |
47.89 KB (🟡 +99 B) |
132.56 KB |
/apis/render |
49.93 KB (🟡 +99 B) |
134.6 KB |
/apis/usecontext |
55.65 KB (🟡 +99 B) |
140.32 KB |
/apis/usereducer |
55.29 KB (🟡 +99 B) |
139.96 KB |
/apis/useref |
52.98 KB (🟡 +99 B) |
137.65 KB |
/apis/usestate |
58.92 KB (🟡 +99 B) |
143.59 KB |
/blog |
40.54 KB (🟡 +118 B) |
125.21 KB |
/blog/2013/06/02/jsfiddle-integration |
57.97 KB (🟡 +99 B) |
142.64 KB |
/blog/2013/06/05/why-react |
59.7 KB (🟡 +99 B) |
144.37 KB |
/blog/2013/06/12/community-roundup |
59.4 KB (🟡 +99 B) |
144.07 KB |
/blog/2013/06/19/community-roundup-2 |
60.07 KB (🟡 +99 B) |
144.74 KB |
/blog/2013/06/21/react-v0-3-3 |
58.12 KB (🟡 +99 B) |
142.79 KB |
/blog/2013/06/27/community-roundup-3 |
60.44 KB (🟡 +99 B) |
145.11 KB |
/blog/2013/07/02/react-v0-4-autobind-by-default |
58.74 KB (🟡 +99 B) |
143.41 KB |
/blog/2013/07/03/community-roundup-4 |
59.81 KB (🟡 +99 B) |
144.48 KB |
/blog/2013/07/11/react-v0-4-prop-validation-and-default-values |
58.61 KB (🟡 +99 B) |
143.28 KB |
/blog/2013/07/17/react-v0-4-0 |
59.32 KB (🟡 +99 B) |
143.99 KB |
/blog/2013/07/23/community-roundup-5 |
60.2 KB (🟡 +99 B) |
144.87 KB |
/blog/2013/07/26/react-v0-4-1 |
58.08 KB (🟡 +99 B) |
142.75 KB |
/blog/2013/07/30/use-react-and-jsx-in-ruby-on-rails |
58.69 KB (🟡 +99 B) |
143.36 KB |
/blog/2013/08/05/community-roundup-6 |
59.5 KB (🟡 +99 B) |
144.17 KB |
/blog/2013/08/19/use-react-and-jsx-in-python-applications |
58.7 KB (🟡 +99 B) |
143.37 KB |
/blog/2013/08/26/community-roundup-7 |
59.66 KB (🟡 +99 B) |
144.33 KB |
/blog/2013/09/24/community-roundup-8 |
61.09 KB (🟡 +99 B) |
145.76 KB |
/blog/2013/10/03/community-roundup-9 |
60.03 KB (🟡 +99 B) |
144.7 KB |
/blog/2013/10/16/react-v0.5.0 |
59.72 KB (🟡 +99 B) |
144.39 KB |
/blog/2013/10/29/react-v0-5-1 |
58.07 KB (🟡 +99 B) |
142.74 KB |
/blog/2013/11/06/community-roundup-10 |
61.69 KB (🟡 +99 B) |
146.36 KB |
/blog/2013/11/18/community-roundup-11 |
60.77 KB (🟡 +99 B) |
145.44 KB |
/blog/2013/12/18/react-v0.5.2-v0.4.2 |
58.55 KB (🟡 +99 B) |
143.22 KB |
/blog/2013/12/19/react-v0.8.0 |
58.97 KB (🟡 +99 B) |
143.64 KB |
/blog/2013/12/23/community-roundup-12 |
60.43 KB (🟡 +99 B) |
145.1 KB |
/blog/2013/12/30/community-roundup-13 |
60.21 KB (🟡 +99 B) |
144.88 KB |
/blog/2014/01/02/react-chrome-developer-tools |
58.46 KB (🟡 +99 B) |
143.13 KB |
/blog/2014/01/06/community-roundup-14 |
59.8 KB (🟡 +99 B) |
144.47 KB |
/blog/2014/02/05/community-roundup-15 |
61.02 KB (🟡 +99 B) |
145.69 KB |
/blog/2014/02/15/community-roundup-16 |
60.73 KB (🟡 +99 B) |
145.4 KB |
/blog/2014/02/16/react-v0.9-rc1 |
61.14 KB (🟡 +99 B) |
145.81 KB |
/blog/2014/02/20/react-v0.9 |
61.58 KB (🟡 +99 B) |
146.25 KB |
/blog/2014/02/24/community-roundup-17 |
60.45 KB (🟡 +99 B) |
145.12 KB |
/blog/2014/03/14/community-roundup-18 |
61.41 KB (🟡 +99 B) |
146.08 KB |
/blog/2014/03/19/react-v0.10-rc1 |
59.72 KB (🟡 +99 B) |
144.39 KB |
/blog/2014/03/21/react-v0.10 |
59.74 KB (🟡 +99 B) |
144.41 KB |
/blog/2014/03/28/the-road-to-1.0 |
59.86 KB (🟡 +99 B) |
144.53 KB |
/blog/2014/04/04/reactnet |
58.5 KB (🟡 +99 B) |
143.17 KB |
/blog/2014/05/06/flux |
58.62 KB (🟡 +99 B) |
143.29 KB |
/blog/2014/05/29/one-year-of-open-source-react |
58.85 KB (🟡 +99 B) |
143.52 KB |
/blog/2014/06/27/community-roundup-19 |
60.39 KB (🟡 +99 B) |
145.06 KB |
/blog/2014/07/13/react-v0.11-rc1 |
60.77 KB (🟡 +99 B) |
145.44 KB |
/blog/2014/07/17/react-v0.11 |
62.03 KB (🟡 +99 B) |
146.7 KB |
/blog/2014/07/25/react-v0.11.1 |
58.98 KB (🟡 +99 B) |
143.65 KB |
/blog/2014/07/28/community-roundup-20 |
60.53 KB (🟡 +99 B) |
145.2 KB |
/blog/2014/07/30/flux-actions-and-the-dispatcher |
60.17 KB (🟡 +99 B) |
144.84 KB |
/blog/2014/08/03/community-roundup-21 |
60.2 KB (🟡 +99 B) |
144.87 KB |
/blog/2014/09/03/introducing-the-jsx-specification |
58.21 KB (🟡 +99 B) |
142.88 KB |
/blog/2014/09/12/community-round-up-22 |
60.68 KB (🟡 +99 B) |
145.35 KB |
/blog/2014/09/16/react-v0.11.2 |
58.98 KB (🟡 +99 B) |
143.65 KB |
/blog/2014/09/24/testing-flux-applications |
62.16 KB (🟡 +99 B) |
146.83 KB |
/blog/2014/10/14/introducing-react-elements |
61.11 KB (🟡 +99 B) |
145.78 KB |
/blog/2014/10/16/react-v0.12-rc1 |
61.08 KB (🟡 +99 B) |
145.75 KB |
/blog/2014/10/17/community-roundup-23 |
61.65 KB (🟡 +99 B) |
146.32 KB |
/blog/2014/10/27/react-js-conf |
58.25 KB (🟡 +99 B) |
142.92 KB |
/blog/2014/10/28/react-v0.12 |
61.02 KB (🟡 +99 B) |
145.69 KB |
/blog/2014/11/24/react-js-conf-updates |
58.64 KB (🟡 +99 B) |
143.31 KB |
/blog/2014/11/25/community-roundup-24 |
61.88 KB (🟡 +99 B) |
146.55 KB |
/blog/2014/12/18/react-v0.12.2 |
58.67 KB (🟡 +99 B) |
143.34 KB |
/blog/2014/12/19/react-js-conf-diversity-scholarship |
59.06 KB (🟡 +99 B) |
143.73 KB |
/blog/2015/01/27/react-v0.13.0-beta-1 |
60.03 KB (🟡 +99 B) |
144.7 KB |
/blog/2015/02/18/react-conf-roundup-2015 |
62.01 KB (🟡 +99 B) |
146.68 KB |
/blog/2015/02/20/introducing-relay-and-graphql |
61.17 KB (🟡 +99 B) |
145.84 KB |
/blog/2015/02/24/react-v0.13-rc1 |
60.07 KB (🟡 +99 B) |
144.74 KB |
/blog/2015/02/24/streamlining-react-elements |
62.62 KB (🟡 +99 B) |
147.29 KB |
/blog/2015/03/03/react-v0.13-rc2 |
59.4 KB (🟡 +99 B) |
144.07 KB |
/blog/2015/03/04/community-roundup-25 |
60.36 KB (🟡 +99 B) |
145.03 KB |
/blog/2015/03/10/react-v0.13 |
60.68 KB (🟡 +99 B) |
145.35 KB |
/blog/2015/03/16/react-v0.13.1 |
58.5 KB (🟡 +99 B) |
143.17 KB |
/blog/2015/03/19/building-the-facebook-news-feed-with-relay |
61.26 KB (🟡 +99 B) |
145.93 KB |
/blog/2015/03/26/introducing-react-native |
58.4 KB (🟡 +99 B) |
143.07 KB |
/blog/2015/03/30/community-roundup-26 |
60.33 KB (🟡 +99 B) |
145 KB |
/blog/2015/04/17/react-native-v0.4 |
59.24 KB (🟡 +99 B) |
143.91 KB |
/blog/2015/04/18/react-v0.13.2 |
58.58 KB (🟡 +99 B) |
143.25 KB |
/blog/2015/05/01/graphql-introduction |
63.07 KB (🟡 +99 B) |
147.74 KB |
/blog/2015/05/08/react-v0.13.3 |
58.46 KB (🟡 +99 B) |
143.13 KB |
/blog/2015/05/22/react-native-release-process |
58.62 KB (🟡 +99 B) |
143.29 KB |
/blog/2015/06/12/deprecating-jstransform-and-react-tools |
59.07 KB (🟡 +99 B) |
143.74 KB |
/blog/2015/07/03/react-v0.14-beta-1 |
60.58 KB (🟡 +99 B) |
145.25 KB |
/blog/2015/08/03/new-react-devtools-beta |
59.18 KB (🟡 +99 B) |
143.85 KB |
/blog/2015/08/11/relay-technical-preview |
59.25 KB (🟡 +99 B) |
143.92 KB |
/blog/2015/08/13/reacteurope-roundup |
60.83 KB (🟡 +99 B) |
145.5 KB |
/blog/2015/09/02/new-react-developer-tools |
58.6 KB (🟡 +99 B) |
143.27 KB |
/blog/2015/09/10/react-v0.14-rc1 |
64.29 KB (🟡 +99 B) |
148.96 KB |
/blog/2015/09/14/community-roundup-27 |
60.76 KB (🟡 +99 B) |
145.43 KB |
/blog/2015/10/01/react-render-and-top-level-api |
59.73 KB (🟡 +99 B) |
144.4 KB |
/blog/2015/10/07/react-v0.14 |
64.77 KB (🟡 +99 B) |
149.44 KB |
/blog/2015/10/19/reactiflux-is-moving-to-discord |
60.48 KB (🟡 +99 B) |
145.15 KB |
/blog/2015/10/28/react-v0.14.1 |
58.49 KB (🟡 +99 B) |
143.16 KB |
/blog/2015/11/02/react-v0.14.2 |
58.52 KB (🟡 +99 B) |
143.19 KB |
/blog/2015/11/18/react-v0.14.3 |
58.64 KB (🟡 +99 B) |
143.31 KB |
/blog/2015/12/04/react-js-conf-2016-diversity-scholarship |
59.52 KB (🟡 +99 B) |
144.19 KB |
/blog/2015/12/16/ismounted-antipattern |
59.12 KB (🟡 +99 B) |
143.79 KB |
/blog/2015/12/18/react-components-elements-and-instances |
63.04 KB (🟡 +99 B) |
147.71 KB |
/blog/2015/12/29/react-v0.14.4 |
58.31 KB (🟡 +99 B) |
142.98 KB |
/blog/2016/01/08/A-implies-B-does-not-imply-B-implies-A |
59.33 KB (🟡 +99 B) |
144 KB |
/blog/2016/01/12/discontinuing-ie8-support |
58.14 KB (🟡 +99 B) |
142.81 KB |
/blog/2016/02/19/new-versioning-scheme |
59.52 KB (🟡 +99 B) |
144.19 KB |
/blog/2016/03/07/react-v15-rc1 |
62.27 KB (🟡 +99 B) |
146.94 KB |
/blog/2016/03/16/react-v15-rc2 |
59.13 KB (🟡 +99 B) |
143.8 KB |
/blog/2016/03/29/react-v0.14.8 |
58.27 KB (🟡 +99 B) |
142.94 KB |
/blog/2016/04/07/react-v15 |
66.46 KB (🟡 +99 B) |
151.13 KB |
/blog/2016/04/08/react-v15.0.1 |
59.03 KB (🟡 +99 B) |
143.7 KB |
/blog/2016/07/11/introducing-reacts-error-code-system |
58.74 KB (🟡 +99 B) |
143.41 KB |
/blog/2016/07/13/mixins-considered-harmful |
66.89 KB (🟡 +99 B) |
151.56 KB |
/blog/2016/07/22/create-apps-with-no-configuration |
62.22 KB (🟡 +99 B) |
146.89 KB |
/blog/2016/08/05/relay-state-of-the-state |
62.26 KB (🟡 +99 B) |
146.93 KB |
/blog/2016/09/28/our-first-50000-stars |
63.71 KB (🟡 +99 B) |
148.38 KB |
/blog/2016/11/16/react-v15.4.0 |
61.66 KB (🟡 +99 B) |
146.33 KB |
/blog/2017/04/07/react-v15.5.0 |
62.22 KB (🟡 +99 B) |
146.89 KB |
/blog/2017/05/18/whats-new-in-create-react-app |
61.62 KB (🟡 +99 B) |
146.29 KB |
/blog/2017/06/13/react-v15.6.0 |
60.24 KB (🟡 +99 B) |
144.91 KB |
/blog/2017/07/26/error-handling-in-react-16 |
60.59 KB (🟡 +99 B) |
145.26 KB |
/blog/2017/09/08/dom-attributes-in-react-16 |
61.02 KB (🟡 +99 B) |
145.69 KB |
/blog/2017/09/25/react-v15.6.2 |
59.35 KB (🟡 +99 B) |
144.02 KB |
/blog/2017/09/26/react-v16.0 |
64.48 KB (🟡 +99 B) |
149.15 KB |
/blog/2017/11/28/react-v16.2.0-fragment-support |
62.42 KB (🟡 +99 B) |
147.09 KB |
/blog/2017/12/07/introducing-the-react-rfc-process |
58.94 KB (🟡 +99 B) |
143.61 KB |
/blog/2017/12/15/improving-the-repository-infrastructure |
74.72 KB (🟡 +99 B) |
159.39 KB |
/blog/2018/03/01/sneak-peek-beyond-react-16 |
58.89 KB (🟡 +99 B) |
143.56 KB |
/blog/2018/03/27/update-on-async-rendering |
64.14 KB (🟡 +99 B) |
148.81 KB |
/blog/2018/03/29/react-v-16-3 |
60.96 KB (🟡 +99 B) |
145.63 KB |
/blog/2018/05/23/react-v-16-4 |
61.09 KB (🟡 +99 B) |
145.76 KB |
/blog/2018/06/07/you-probably-dont-need-derived-state |
64.76 KB (🟡 +99 B) |
149.43 KB |
/blog/2018/08/01/react-v-16-4-2 |
59.75 KB (🟡 +99 B) |
144.42 KB |
/blog/2018/09/10/introducing-the-react-profiler |
61.36 KB (🟡 +99 B) |
146.03 KB |
/blog/2018/10/01/create-react-app-v2 |
61.83 KB (🟡 +99 B) |
146.5 KB |
/blog/2018/10/23/react-v-16-6 |
61.03 KB (🟡 +99 B) |
145.7 KB |
/blog/2018/11/13/react-conf-recap |
58.75 KB (🟡 +99 B) |
143.42 KB |
/blog/2018/11/27/react-16-roadmap |
64.94 KB (🟡 +99 B) |
149.61 KB |
/blog/2018/12/19/react-v-16-7 |
59.87 KB (🟡 +99 B) |
144.54 KB |
/blog/2019/02/06/react-v16.8.0 |
62.14 KB (🟡 +99 B) |
146.81 KB |
/blog/2019/02/23/is-react-translated-yet |
61.7 KB (🟡 +99 B) |
146.37 KB |
/blog/2019/08/08/react-v16.9.0 |
64.63 KB (🟡 +99 B) |
149.3 KB |
/blog/2019/08/15/new-react-devtools |
59.24 KB (🟡 +99 B) |
143.91 KB |
/blog/2019/10/22/react-release-channels |
61.06 KB (🟡 +99 B) |
145.73 KB |
/blog/2019/11/06/building-great-user-experiences-with-concurrent-mode-and-suspense |
65.75 KB (🟡 +99 B) |
150.42 KB |
/blog/2020/02/26/react-v16.13.0 |
61.97 KB (🟡 +99 B) |
146.64 KB |
/blog/2020/08/10/react-v17-rc |
68.26 KB (🟡 +99 B) |
152.93 KB |
/community |
47.76 KB (🟡 +99 B) |
132.43 KB |
/community/acknowledgements |
48.94 KB (🟡 +99 B) |
133.61 KB |
/community/meet-the-team |
49.64 KB (🟡 +99 B) |
134.31 KB |
/learn |
52.71 KB (🟡 +99 B) |
137.38 KB |
/learn/add-react-to-a-website |
52.83 KB (🟡 +99 B) |
137.5 KB |
/learn/adding-interactivity |
54.4 KB (🟡 +99 B) |
139.07 KB |
/learn/choosing-the-state-structure |
60.12 KB (🟡 +99 B) |
144.79 KB |
/learn/conditional-rendering |
52.35 KB (🟡 +99 B) |
137.02 KB |
/learn/describing-the-ui |
51.57 KB (🟡 +99 B) |
136.24 KB |
/learn/editor-setup |
49.03 KB (🟡 +99 B) |
133.7 KB |
/learn/escape-hatches |
47.08 KB (🟡 +99 B) |
131.75 KB |
/learn/extracting-state-logic-into-a-reducer |
57.76 KB (🟡 +99 B) |
142.43 KB |
/learn/importing-and-exporting-components |
50.75 KB (🟡 +99 B) |
135.42 KB |
/learn/installation |
48.36 KB (🟡 +99 B) |
133.03 KB |
/learn/javascript-in-jsx-with-curly-braces |
50.83 KB (🟡 +99 B) |
135.5 KB |
/learn/keeping-components-pure |
54.96 KB (🟡 +99 B) |
139.63 KB |
/learn/managing-state |
53.68 KB (🟡 +99 B) |
138.35 KB |
/learn/manipulating-the-dom-with-refs |
55.93 KB (🟡 +99 B) |
140.6 KB |
/learn/passing-data-deeply-with-context |
55.47 KB (🟡 +99 B) |
140.14 KB |
/learn/passing-props-to-a-component |
54.53 KB (🟡 +99 B) |
139.2 KB |
/learn/preserving-and-resetting-state |
58.5 KB (🟡 +99 B) |
143.17 KB |
/learn/queueing-a-series-of-state-updates |
52.32 KB (🟡 +99 B) |
136.99 KB |
/learn/react-developer-tools |
48.32 KB (🟡 +99 B) |
132.99 KB |
/learn/reacting-to-input-with-state |
56.93 KB (🟡 +99 B) |
141.6 KB |
/learn/referencing-values-with-refs |
53.84 KB (🟡 +99 B) |
138.51 KB |
/learn/render-and-commit |
50.82 KB (🟡 +99 B) |
135.49 KB |
/learn/rendering-lists |
54.91 KB (🟡 +99 B) |
139.58 KB |
/learn/responding-to-events |
53.85 KB (🟡 +99 B) |
138.52 KB |
/learn/scaling-up-with-reducer-and-context |
51.89 KB (🟡 +99 B) |
136.56 KB |
/learn/sharing-state-between-components |
52.97 KB (🟡 +99 B) |
137.64 KB |
/learn/start-a-new-react-project |
49.39 KB (🟡 +99 B) |
134.06 KB |
/learn/state-a-components-memory |
58.05 KB (🟡 +99 B) |
142.72 KB |
/learn/state-as-a-snapshot |
51.63 KB (🟡 +99 B) |
136.29 KB |
/learn/synchronizing-with-effects |
64.7 KB (🟡 +99 B) |
149.37 KB |
/learn/thinking-in-react |
53.69 KB (🟡 +99 B) |
138.36 KB |
/learn/updating-arrays-in-state |
55.92 KB (🟡 +99 B) |
140.59 KB |
/learn/updating-objects-in-state |
55.65 KB (🟡 +99 B) |
140.32 KB |
/learn/writing-markup-with-jsx |
51.07 KB (🟡 +99 B) |
135.74 KB |
/learn/you-might-not-need-an-effect |
63.01 KB (🟡 +99 B) |
147.68 KB |
/learn/your-first-component |
51.66 KB (🟡 +99 B) |
136.33 KB |
Details
Only the gzipped size is provided here based on an expert tip.
First Load is the size of the global bundle plus the bundle for the individual page. If a user were to show up to your website and land on a given page, the first load size represents the amount of javascript that user would need to download. If next/link is used, subsequent page loads would only need to download that page's bundle (the number in the "Size" column), since the global bundle has already been downloaded.
Any third party scripts you have added directly to your app using the <script> tag are not accounted for in this analysis
Next to the size is how much the size has increased or decreased compared with the base branch of this PR. If this percentage has increased by 10% or more, there will be a red status indicator applied, indicating that special attention should be given to this.
|
This kind of partially works We have to add complete URL with |
|
@lebo Do we want to have some design for og image shares? Like it could contain page title. |
|
I think that could be cool. I do like GitHub's dynamic OG images. |
|
can we get this working? |
|
Im quite unsure why this is happening in production and not in development? I've been looking for solutions to setup this in production. |
|
Hmm. I don't think we should let the people render arbitrary strings using our service. Also we don't want to get spammed or constantly use compute power. How is this usually solved? Can this just be done with a script that runs during the build and forces you to re-run it (for missing images) if some pages don't have them already checked-in? |
|
I've seen services that provide these API's to all users. Github's try tweaking the org name and repo name alone and you should see the other repo's og:image but since these are limited to github's repos and throws out github's icon when repo is not found I think our case is a bit unique We can generate images for every page but that would have too many assets to maintain. Instead we could serve the og:image once and cache it forever? (Also we don't want to get spammed or constantly use compute power - we might want to find some other solution? 🤔 ) |
|
Why is it a problem to have many assets in the repo? If they’re in a separate folder and don’t participate in the build process (they just lie around), I don’t see a downside. |
|
Fine then. Will write a script that runs during build to generate images. |
|
closing in favour of #5016 |
We generate something like this and is dynamic for all beta pages.
Checking if it works in PR preview