Skip to content

perf: cut build memory so the site builds on an 8 GB machine - #8052

Open
saurabhraghuvanshii wants to merge 1 commit into
layer5io:masterfrom
saurabhraghuvanshii:perf/reduce-build-memory
Open

saurabhraghuvanshii wants to merge 1 commit into
layer5io:masterfrom
saurabhraghuvanshii:perf/reduce-build-memory

Conversation

@saurabhraghuvanshii

Copy link
Copy Markdown
Member

npm run build needed ~13.4 GB peak (9.8 GB in a single process) and gatsby develop --full OOM-crashed outright. Profiling the webpack module graph, the sharp job queue and the per-stage memory timeline turned up four repository-specific causes.

  1. The @mui/icons-material barrel dominated the module graph. Two pre-bundled dependencies (@sistent/sistent, @sistent/mui-datatables) import the whole barrel for 17 icons, and webpack resolved and parsed all ~10,800 icon modules in both the browser and the SSR compilation: 10,819 of 18,949 modules. gatsby-node.js now aliases the exact specifier to a generated shim that deep-imports only the icons those bundles use, taking the graph to 8,211 modules (-57%). Deep imports are untouched. npm run generate:mui-icon-shim regenerates the list by scanning node_modules, so it is derived rather than guessed.

  2. Source images were far larger than anything the site renders. 673 images exceeded 1600px (one PNG was 18534x5417) against a maximum rendered width of 1920px, and sharp's cost scales with source megapixels. Capping the long edge at 2000px (1200px for member photos, rendered at 500px) across 362 files cuts total source megapixels 4,603 -> 2,400 (-48%) and 60 MB of repository size, with no change to any rendered size.

  3. gatsby-plugin-purgecss did nothing. Its own log reported "Removed ~0.00 KB" every build, because purgeOnly: ["src/"] matches no CSS the site actually imports. Removed; CSS output is byte-identical.

  4. @mui/material was in the shared bundle of all 1,348 pages, because CookieConsent (rendered from layout.js) imported it for a Snackbar. Rebuilt on styled-components, the site's own styling system.

Also: gatsby-plugin-preload-fonts was declared but never registered as a plugin, pulling puppeteer and a Chromium download into every make setup (-400 MB of node_modules); scripts/run-gatsby.js now derives Gatsby's worker count, sharp concurrency and V8 heap ceiling from the RAM the machine actually has (honouring cgroup limits, so it is correct under WSL2 and in containers) instead of hardcoding 8 GB; and 16 unreferenced assets that were byte-identical duplicates of files still in use were deleted.

Measured on the same machine, full production build:

peak memory 13,445 MB -> 9,959 MB (-26%)
peak process 9,845 MB -> 8,319 MB (-15%)
build time 535s -> 416s (-22%)
webpack modules 18,949 -> 8,211 (-57%)
app.js 7,784 KB -> 2,259 KB (-71%)
total JS 38.8 MB -> 32.3 MB (-17%)
.cache 2.1 GB -> 1.7 GB
pages built 1,348 -> 1,348 (unchanged)

Under a hard 8 GB cgroup limit npm run build now completes (peak 8,914 MB) where it previously died with "Ineffective mark-compacts near heap limit". make site peaks at 5,405 MB and is serving in 169s under a 6 GB limit, and make site-full now reaches a usable dev server instead of OOM-crashing.

Description

This PR fixes #

Notes for Reviewers

Signed commits

  • Yes, I signed my commits.

@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 262 files, which is 112 over the limit of 150.

To get a review, reduce the PR to 150 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 86383e6b-ce8f-433e-93c0-448782323c7c

📥 Commits

Reviewing files that changed from the base of the PR and between bd554ad and 4606840.

⛔ Files ignored due to path filters (118)
  • package-lock.json is excluded by !**/package-lock.json
  • src/assets/images/Community-pictures/D IMG_6521.jpeg is excluded by !**/*.jpeg
  • src/assets/images/Community-pictures/F IMG_6936.jpeg is excluded by !**/*.jpeg
  • src/assets/images/Community-pictures/H Lee Calcote and Zack Butcher.jpeg is excluded by !**/*.jpeg
  • src/assets/images/app/projects/sistent/bg-colors-table-dark.png is excluded by !**/*.png
  • src/assets/images/app/projects/sistent/bg-colors-table.png is excluded by !**/*.png
  • src/assets/images/app/projects/sistent/type-details-1-light.png is excluded by !**/*.png
  • src/assets/images/careers/Lee-giving-away-free-t-shirts-at-UT-Austin.jpeg is excluded by !**/*.jpeg
  • src/assets/images/docker-extension/docker-extension-meshery.png is excluded by !**/*.png
  • src/assets/images/kanvas/horizontal/kanvas-horizontal-color.png is excluded by !**/*.png
  • src/assets/images/kanvas/horizontal/kanvas-horizontal-partial-color.png is excluded by !**/*.png
  • src/assets/images/kanvas/horizontal/kanvas-horizontal-white.png is excluded by !**/*.png
  • src/assets/images/kanvas/text-only/kanvas-text-color.png is excluded by !**/*.png
  • src/assets/images/kanvas/text-only/kanvas-text-white.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/architecture.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/dapr-helm.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/dapr-visualizer.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/drag-component.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/filter-node-python.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/grouped.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/redis-dapr.png is excluded by !**/*.png
  • src/assets/images/learning-path/dapr/stream.png is excluded by !**/*.png
  • src/assets/images/learning-path/edge-stack/es1.png is excluded by !**/*.png
  • src/assets/images/learning-path/edge-stack/es10.png is excluded by !**/*.png
  • src/assets/images/learning-path/edge-stack/es2.png is excluded by !**/*.png
  • src/assets/images/learning-path/edge-stack/es5.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-configure/associate-with-workspace.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-configure/create-environment.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-configure/create-workspace.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-configure/env-connect.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-configure/lifecycle.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-deploy/create-env.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-deploy/env-conn.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-deploy/kube-conn.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-deploy/notification-center.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-deploy/notification.png is excluded by !**/*.png
  • src/assets/images/learning-path/meshery-deploy/performing-validation.png is excluded by !**/*.png
  • src/assets/images/learning-path/reviewing-designs/locking-comments.png is excluded by !**/*.png
  • src/assets/images/learning-path/reviewing-designs/shape-annotation.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp1.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp10.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp19.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp2.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp20.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp21.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp22.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp23.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp3.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp4.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp5.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp6.png is excluded by !**/*.png
  • src/assets/images/learning-path/sql/wp7.png is excluded by !**/*.png
  • src/assets/images/service-mesh-icons/open-service-mesh/horizontal/black/openservicemesh-horizontal-black.png is excluded by !**/*.png
  • src/assets/images/service-mesh-icons/open-service-mesh/horizontal/white/openservicemesh-horizontal-white.png is excluded by !**/*.png
  • src/assets/images/sistent/horizontal/sistent-horizontal-color.png is excluded by !**/*.png
  • src/assets/images/sistent/horizontal/sistent-horizontal-partial-color.png is excluded by !**/*.png
  • src/assets/images/sistent/horizontal/sistent-horizontal-white.png is excluded by !**/*.png
  • src/assets/images/sistent/text-only/sistent-text-color.png is excluded by !**/*.png
  • src/assets/images/sistent/text-only/sistent-text-white.png is excluded by !**/*.png
  • src/collections/blog/2020/2020-08-11-my-journey-from-a-contributor-to-a-maintainer/pic2.jpeg is excluded by !**/*.jpeg
  • src/collections/blog/2023/05-22-changing-release-channels-in-meshery/change-meshery-release-channels.png is excluded by !**/*.png
  • src/collections/blog/2023/05-24-meet-the-meshmate-yash-sharma/yash-sharma-layer5-meshmate.png is excluded by !**/*.png
  • src/collections/blog/2023/08-21-layer5-badge-program/badges-modal.png is excluded by !**/*.png
  • src/collections/blog/2023/08-21-layer5-badge-program/recognition-program.png is excluded by !**/*.png
  • src/collections/blog/2023/09-28-hacktoberfest-2023/hacktoberfest-contributor.png is excluded by !**/*.png
  • src/collections/blog/2024/03-10-demystifying-open-source/banner.png is excluded by !**/*.png
  • src/collections/blog/2024/03-20-kubeconeu2024/meshmark-formula.png is excluded by !**/*.png
  • src/collections/blog/2024/06-21-meshery-5000-star-milestone/meshery-stats.png is excluded by !**/*.png
  • src/collections/blog/2024/09-07-ways-to-contribute/number-one-most-popular-project.png is excluded by !**/*.png
  • src/collections/blog/2024/09-08-meet-the-maintainer-hussaina-begum/hussaina-begum-layer5-maintainer.png is excluded by !**/*.png
  • src/collections/events/2023/hacktoberfest-2023-docker-ext/hacktoberfest-contributor.png is excluded by !**/*.png
  • src/collections/events/2023/hacktoberfest-prep/hacktoberfest-contributor.png is excluded by !**/*.png
  • src/collections/events/2024/hacktoberfest-2024/hacktoberfest-contributor.png is excluded by !**/*.png
  • src/collections/events/2025/kubecon-eu-2025/kubeconeu-2025.png is excluded by !**/*.png
  • src/collections/events/2025/kubecon-na-2025/kubeconna-2025.png is excluded by !**/*.png
  • src/collections/integrations/_images/argo-cd/meshmap-designer-dark.png is excluded by !**/*.png
  • src/collections/integrations/_images/argo-cd/meshmap-designer-light.png is excluded by !**/*.png
  • src/collections/integrations/_images/argo-cd/meshmap-visualizer-dark.png is excluded by !**/*.png
  • src/collections/integrations/_images/argo-cd/meshmap-visualizer-light.png is excluded by !**/*.png
  • src/collections/integrations/_images/cloudevents/meshmap-design-black.png is excluded by !**/*.png
  • src/collections/integrations/_images/cloudevents/meshmap-design-white.png is excluded by !**/*.png
  • src/collections/integrations/_images/cloudevents/meshmap-visualize-black.png is excluded by !**/*.png
  • src/collections/integrations/_images/cloudevents/meshmap-visualize-white.png is excluded by !**/*.png
  • src/collections/integrations/_images/dex/designDark.png is excluded by !**/*.png
  • src/collections/integrations/_images/dex/designLight.png is excluded by !**/*.png
  • src/collections/integrations/_images/dex/visualizeDark.png is excluded by !**/*.png
  • src/collections/integrations/_images/dex/visualizeLight.png is excluded by !**/*.png
  • src/collections/integrations/_images/external-secrets-operator/designDark.png is excluded by !**/*.png
  • src/collections/integrations/_images/external-secrets-operator/designLight.png is excluded by !**/*.png
  • src/collections/integrations/_images/external-secrets-operator/visualizeDark.png is excluded by !**/*.png
  • src/collections/integrations/_images/external-secrets-operator/visualizeLight.png is excluded by !**/*.png
  • src/collections/integrations/_images/kanvas-designer.png is excluded by !**/*.png
  • src/collections/integrations/_images/kanvas-visualizer.png is excluded by !**/*.png
  • src/collections/members/APIPAWE-KATOTO-Daniel/Apipawe-katoto.jpeg is excluded by !**/*.jpeg
  • src/collections/members/Ibrahim Mbaziira/ibra.JPG is excluded by !**/*.jpg
  • src/collections/members/alexis-abakasanga/alexis-abakasanga.jpeg is excluded by !**/*.jpeg
  • src/collections/members/bhumika-garg/bhumika-garg.jpeg is excluded by !**/*.jpeg
  • src/collections/members/chris-carrier/chris-carrier.jpeg is excluded by !**/*.jpeg
  • src/collections/members/jeres-lensun/JerensProfilePic.jpg is excluded by !**/*.jpg
  • src/collections/members/lawrence-li/lawrence-li.jpg is excluded by !**/*.jpg
  • src/collections/members/maanvi-chetwani/maanvi-chetwani.jpg is excluded by !**/*.jpg
  • src/collections/members/nishant-miittal/nishant.jpeg is excluded by !**/*.jpeg
  • src/collections/members/oluwatunmise-olat/Oluwatunmise-olat.jpg is excluded by !**/*.jpg
  • src/collections/members/rishi-raj/rishi-raj.jpeg is excluded by !**/*.jpeg
  • src/collections/members/xin-huang/xin-huang.jpeg is excluded by !**/*.jpeg
  • src/collections/news/2019/2019-11-23-cncf-sig-network-intro-and-deep-dive/KubeCon_NA_2019_bg-01.png is excluded by !**/*.png
  • src/collections/news/2021/2021-10-13-cncf-adopts-meshery/MeshMap.png is excluded by !**/*.png
  • src/collections/news/2021/2021-10-13-cncf-adopts-meshery/meshery-the-extensible-mesh-manager.png is excluded by !**/*.png
  • src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.png is excluded by !**/*.png
  • src/collections/news/2025/2025-11-05-sixth-highest-velocity/meshery-extensions-github-light.png is excluded by !**/*.png
  • src/collections/programs/hacktoberfest-2023/hacktoberfest-contributor.png is excluded by !**/*.png
  • src/collections/programs/hacktoberfest-2024/hacktoberfest-contributor.png is excluded by !**/*.png
  • src/sections/Community/Community-pictures/IMG_6521.jpeg is excluded by !**/*.jpeg
  • src/sections/Community/Community-pictures/IMG_6936.jpeg is excluded by !**/*.jpeg
  • src/sections/Community/Community-pictures/Lee Calcote and Zack Butcher.jpeg is excluded by !**/*.jpeg
  • src/sections/Meshery/images/service mesh performance example.gif is excluded by !**/*.gif
  • src/sections/Meshery/images/service-mesh-performance-example.gif is excluded by !**/*.gif
  • src/sections/Platform-Engineering/images/meshery-integrations.jpg is excluded by !**/*.jpg
📒 Files selected for processing (262)
  • CONTRIBUTING.md
  • Makefile
  • gatsby-config.js
  • gatsby-node.js
  • package.json
  • scripts/generate-mui-icon-shim.js
  • scripts/run-gatsby.js
  • src/assets/images/Community-pictures/1 ed-warnicke-network-service-mesh.webp
  • src/assets/images/Community-pictures/3 Yogi Porla showing Layer5 partnership at HPE Discover.webp
  • src/assets/images/Community-pictures/7 First meeting with Ishita Kumar -2020-06-11 at 3.37.52 PM.webp
  • src/assets/images/Community-pictures/9 gsoc-shirt.webp
  • src/assets/images/Community-pictures/B istio-up-and-running-framed.webp
  • src/assets/images/Community-pictures/K Girish Ranganathan presenting at NSMCon.webp
  • src/assets/images/Community-pictures/Lee Calcote and Oliver Gould - CTO of Buoyant.webp
  • src/assets/images/app/get-app/get-app-bg.webp
  • src/assets/images/app/hero/hero-two.webp
  • src/assets/images/app/projects/layer5-projects.webp
  • src/assets/images/callout/callout.webp
  • src/assets/images/docker-extension/docker-extension-meshery.webp
  • src/assets/images/homePage-images/kanvas.webp
  • src/assets/images/kanvas/KanvasDesigner.webp
  • src/assets/images/kanvas/KanvasVisualizer.webp
  • src/assets/images/layer5/cb.webp
  • src/assets/images/layer5/layer5-only/png/layer5-gray.webp
  • src/assets/images/layer5/layer5-only/png/layer5-light-bg.webp
  • src/assets/images/layer5/layer5-only/png/layer5-white-bg.webp
  • src/assets/images/layer5/layer5-only/png/layer5-white.webp
  • src/assets/images/learn-layer5/istio/Grafana_-_Istio_Dashboard.webp
  • src/assets/images/learn-layer5/istio/Grafana_Istio_Dashboard.webp
  • src/assets/images/learn-layer5/istio/Loggly.webp
  • src/assets/images/learn-layer5/istio/Prometheus.webp
  • src/assets/images/learn-layer5/istio/bookinfo-off-mesh.webp
  • src/assets/images/learn-layer5/istio/bookinfo-on-mesh.webp
  • src/assets/images/learn-layer5/istio/deploy-envoyfilter.webp
  • src/assets/images/learn-layer5/istio/install-imagehub.webp
  • src/assets/images/learn-layer5/istio/install-istio.webp
  • src/assets/images/learn-layer5/istio/istio-addons.webp
  • src/assets/images/learn-layer5/istio/jaeger copy.webp
  • src/assets/images/learn-layer5/istio/jaeger.webp
  • src/assets/images/learn-layer5/istio/jaeger_1.webp
  • src/assets/images/learn-layer5/istio/jaeger_2.webp
  • src/assets/images/learn-layer5/istio/meshery_cb_load_test.webp
  • src/assets/images/learn-layer5/istio/servicegraph.webp
  • src/assets/images/learn-layer5/istio/zipkin.webp
  • src/assets/images/learn-layer5/istio/zipkin_1.webp
  • src/assets/images/learn-layer5/istio/zipkin_2.webp
  • src/assets/images/learn-layer5/linkerd/install-linkerd.webp
  • src/assets/images/learning-path/istio/Grafana_-_Istio_Dashboard.webp
  • src/assets/images/learning-path/istio/Grafana_Istio_Dashboard.webp
  • src/assets/images/learning-path/istio/Loggly.webp
  • src/assets/images/learning-path/istio/Prometheus.webp
  • src/assets/images/learning-path/istio/bookinfo-off-mesh.webp
  • src/assets/images/learning-path/istio/bookinfo-on-mesh.webp
  • src/assets/images/learning-path/istio/deploy-envoyfilter.webp
  • src/assets/images/learning-path/istio/install-imagehub.webp
  • src/assets/images/learning-path/istio/install-istio.webp
  • src/assets/images/learning-path/istio/istio-addons.webp
  • src/assets/images/learning-path/istio/jaeger.webp
  • src/assets/images/learning-path/istio/jaeger_1.webp
  • src/assets/images/learning-path/istio/jaeger_2.webp
  • src/assets/images/learning-path/istio/jaeger_copy.webp
  • src/assets/images/learning-path/istio/meshery_cb_load_test.webp
  • src/assets/images/learning-path/istio/servicegraph.webp
  • src/assets/images/learning-path/istio/zipkin.webp
  • src/assets/images/learning-path/istio/zipkin_1.webp
  • src/assets/images/learning-path/istio/zipkin_2.webp
  • src/assets/images/learning-path/linkerd/install-linkerd.webp
  • src/assets/images/meshery-operator/meshery-operator.webp
  • src/assets/images/newcomers-page-images/community-collage.webp
  • src/assets/images/recognition-program/recognition-program.webp
  • src/assets/images/service-mesh-icons/kuma/horizontal/black/kuma-horizontal-black.webp
  • src/assets/images/service-mesh-icons/kuma/horizontal/color/kuma-horizontal-color.webp
  • src/assets/images/service-mesh-icons/kuma/horizontal/white/kuma-horizontal-white.webp
  • src/assets/images/service-mesh-icons/kuma/icon/white/kuma-icon-white.webp
  • src/assets/images/service-mesh-icons/kuma/stacked/white/kuma-stacked-white.webp
  • src/assets/images/service-mesh-icons/linkerd/horizontal/black/linkerd-horizontal-black.webp
  • src/assets/images/service-mesh-icons/linkerd/horizontal/color/linkerd-horizontal-color.webp
  • src/assets/images/service-mesh-icons/linkerd/horizontal/white/linkerd-horizontal-white.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/horizontal/black/networkservicemesh-horizontal-black.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/horizontal/color/networkservicemesh-horizontal-color-reversed.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/horizontal/color/networkservicemesh-horizontal-color.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/horizontal/white/networkservicemesh-horizontal-white.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/icon/color/networkservicemesh-icon-color.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/stacked/black/networkservicemesh-stacked-black.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/stacked/color/networkservicemesh-stacked-color-reversed.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/stacked/color/networkservicemesh-stacked-color.webp
  • src/assets/images/service-mesh-icons/network-service-mesh/stacked/white/networkservicemesh-stacked-white.webp
  • src/assets/images/service-mesh-icons/open-service-mesh/horizontal/color/openservicemesh-horizontal-color.webp
  • src/assets/images/service-mesh-icons/open-service-mesh/icon/black/openservicemesh-icon-black.webp
  • src/assets/images/service-mesh-icons/open-service-mesh/icon/white/openservicemesh-icon-white.webp
  • src/assets/images/service-mesh-icons/open-service-mesh/stacked/black/openservicemesh-stacked-black.webp
  • src/assets/images/service-mesh-icons/open-service-mesh/stacked/color/openservicemesh-stacked-color.webp
  • src/assets/images/service-mesh-icons/open-service-mesh/stacked/white/openservicemesh-stacked-white.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/horizontal-stackedtext/black/servicemeshinterface-horizontal-stackedtext-black.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/horizontal-stackedtext/color/servicemeshinterface-horizontal-stackedtext-color.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/horizontal-stackedtext/white/servicemeshinterface-horizontal-stackedtext-white.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/horizontal/black/servicemeshinterface-horizontal-black.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/horizontal/color/servicemeshinterface-horizontal-color.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/horizontal/white/servicemeshinterface-horizontal-white.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/stacked/black/servicemeshinterface-stacked-black.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/stacked/color/servicemeshinterface-stacked-color.webp
  • src/assets/images/service-mesh-icons/service-mesh-interface/stacked/white/servicemeshinterface-stacked-white.webp
  • src/assets/images/status/active.webp
  • src/assets/images/status/inactive.webp
  • src/collections/blog/2020/2020-08-11-20-learn-how-to-write-wasm-filters-for-envoy-in-rust-and-deploy-with-consul/layer5-white-bg.webp
  • src/collections/blog/2020/2020-08-20-announcing-the-meshery-adapter-for-open-service-mesh/conformance-results.webp
  • src/collections/blog/2020/2020-09-25-announcing-meshmates/meshmate-kelechi-precious.webp
  • src/collections/blog/2020/2020-09-25-announcing-meshmates/meshmate-ruth-ikegah.webp
  • src/collections/blog/2020/2020-09-25-announcing-meshmates/meshmate-tanuj-agarwal.webp
  • src/collections/blog/2020/2020-11-17-layer5-at-kubecon-2020/kubecon1.webp
  • src/collections/blog/2020/2020-11-17-layer5-at-kubecon-2020/kubecon3.webp
  • src/collections/blog/2020/2020-12-16-functional-testing-with-cypress-in-Meshery-ui/cypress-logo.webp
  • src/collections/blog/2021/2021-02-07-meshkit-and-meshery-adapter-library/meshery-adapter-library-overview.webp
  • src/collections/blog/2021/2021-04-19-announcing-meshery-v0.5/meshery-operator-v0.5.0.webp
  • src/collections/blog/2021/2021-10-01-pipelining-service-mesh-specifications/service-mesh-performance-profile-test-results.webp
  • src/collections/blog/2022/2022-01-22-the-story-of-meshery-1000-stars/Meshery-Stars-cover.webp
  • src/collections/blog/2022/2022-05-10-dockercon-22-hashicorp-talk/docker-extension-meshery.webp
  • src/collections/blog/2022/2022-05-10-dockercon-22-hpe-talk/meshmap-docker-extension-for-meshery.webp
  • src/collections/blog/2022/2022-06-01-perfbytes-podcast/consul-docker-extension-demo.webp
  • src/collections/blog/2022/2022-06-01-perfbytes-podcast/perfbytes-layer5.webp
  • src/collections/blog/2022/2022-07-06-aaditya-gsoc-blogpost/aaditya-presenting.webp
  • src/collections/blog/2022/2022-07-07-deploy-meshery-on-aks/mesheryui.webp
  • src/collections/blog/2022/2022-07-28-managing-multiple-clusters-with-meshery/meshery-core-architecture.webp
  • src/collections/blog/2022/2022-07-28-managing-multiple-clusters-with-meshery/multi-cluster-kubernetes-management-with-meshery.webp
  • src/collections/blog/2023/08-21-layer5-badge-program/recognition-banner.webp
  • src/collections/events/2020/oio/infra-ops.webp
  • src/collections/events/2020/oscon2020/oscon.webp
  • src/collections/events/2021/kubecon-china-2021/kubeconchina2021.webp
  • src/collections/events/2022/docker-community-meetup-2022-hacktoberfest/dockerBengaluru.webp
  • src/collections/events/2022/docker-developer-community-meetup-2022/dockerBengaluru.webp
  • src/collections/events/2022/dockercon-2022/HPE.webp
  • src/collections/events/2022/dockercon-2022/Hashicorp.webp
  • src/collections/events/2022/hacktoberfest-2022/hacktoberfest22.webp
  • src/collections/events/2023/hacktoberfest-2023-docker-ext/hacktoberfest22.webp
  • src/collections/events/2023/hacktoberfest-prep/hacktoberfest22.webp
  • src/collections/events/2024/hacktoberfest-2024/hacktoberfest-layer5-2024-first-pr.webp
  • src/collections/events/2024/hacktoberfest-2024/hacktoberfest-layer5-open-arms.webp
  • src/collections/events/2025/hacktoberfest-2025/hacktoberfest-layer5-first-pr.webp
  • src/collections/events/2025/hacktoberfest-2025/hacktoberfest-layer5-open-arms.webp
  • src/collections/integrations/_images/kanvas-designer.webp
  • src/collections/integrations/_images/kanvas-visualizer.webp
  • src/collections/members/Faheem-Mushtaq/Faheem_Mushtaq.webp
  • src/collections/members/Jagannath-sahu/Jagannath_sahu.webp
  • src/collections/members/abdullah-rafi/abdullah-rafi.webp
  • src/collections/members/abishek-kumar/abishek-kumar.webp
  • src/collections/members/aditya-Mohan/aditya-mohan.webp
  • src/collections/members/ahmed-hendawy/ahmed-hendawy.webp
  • src/collections/members/alonso-lopez/alonso-lopez.webp
  • src/collections/members/ashparsh-pandey/ashparsh-pandey.webp
  • src/collections/members/ayush-sharma/ayush-sharma.webp
  • src/collections/members/chinu-anand/chinu-anand.webp
  • src/collections/members/dahyeon-kang/dahyeon-kang.webp
  • src/collections/members/darren-dsouza/darren_dsouza.webp
  • src/collections/members/dev-kalra/dev-kalra.webp
  • src/collections/members/ekene-leonard/ekene-leonard.webp
  • src/collections/members/eti-Ijeoma/eti-Ijeoma.webp
  • src/collections/members/hersh-dhillion/hersh-dhillion.webp
  • src/collections/members/karen-hippitaku/karen-hippitaku.webp
  • src/collections/members/kavitha-karunakaran/kavitha-karunakaran.webp
  • src/collections/members/kelechi-nwachukwu/kelechi-nwachukwu.webp
  • src/collections/members/kishore-kumar/kishore-kumar.webp
  • src/collections/members/manish-dangi/manish-dangi.webp
  • src/collections/members/mohith-gadireddy-lw/Mohith-Gadireddy.webp
  • src/collections/members/naureen-imran/naureen-imran.webp
  • src/collections/members/naveen-jain/naveen-jain.webp
  • src/collections/members/neil-alvares/neil-alvares.webp
  • src/collections/members/nikhil-ladha/nikhil-ladha.webp
  • src/collections/members/nithish-karthik/nithish-karthik.webp
  • src/collections/members/oyin-dawodu/oyin-dawodu.webp
  • src/collections/members/piyush-singariya/picture.webp
  • src/collections/members/pratyay-banerjee/pratyay-banerjee.webp
  • src/collections/members/rhoda-michael/Rhoda-Michael.webp
  • src/collections/members/riya-garg/riya-garg.webp
  • src/collections/members/shivam-sood/shivam-sood.webp
  • src/collections/members/shravani-kaware/shravani-kaware.webp
  • src/collections/members/suhani-agarwal/suhani-agarwal.webp
  • src/collections/members/sunku-ranganath/sunku-ranganath.webp
  • src/collections/members/suraj-jadhav/suraj-jadhav.webp
  • src/collections/members/suruchi-kumari-lw/Suruchi-Kumari.webp
  • src/collections/members/tanuj-agarwal/tanuj-agarwal.webp
  • src/collections/members/tharun-t/tharun-t.webp
  • src/collections/members/utkarsh-mishra/Utkarsh_Mishra.webp
  • src/collections/members/varad-gupta/varad-gupta.webp
  • src/collections/members/victoria-nduka/victoria.webp
  • src/collections/members/yash-pandey/yash-pandey.webp
  • src/collections/members/yash-vardhan/yash-vardhan.webp
  • src/collections/news/2020/2020-05-28-layer5-and-hasicorp-launch-service-mesh-partnership/Layer5-HashiCorp-Service-Mesh-Partnership.webp
  • src/collections/news/2020/2020-05-28-layer5-and-hasicorp-launch-service-mesh-partnership/layer5-image-hub-on-hashicorp-consul.webp
  • src/collections/news/2021/2021-10-13-cncf-adopts-service-mesh-performance-standard/layer5-solutions.webp
  • src/collections/news/2021/2021-10-13-cncf-adopts-service-mesh-performance-standard/smp-meshery.webp
  • src/collections/news/2022/2022-05-10-layer5-joins-docker-extension-program-bringing-kubernetes-and-service-mesh-management-to-docker-with-meshery/docker-extension-meshery.webp
  • src/collections/news/2022/2022-05-10-layer5-joins-docker-extension-program-bringing-kubernetes-and-service-mesh-management-to-docker-with-meshery/meshery-service-mesh-docker-extension.webp
  • src/collections/news/2022/2022-05-10-layer5-joins-docker-extension-program-bringing-kubernetes-and-service-mesh-management-to-docker-with-meshery/meshmap-docker-extension-for-meshery.webp
  • src/collections/news/2022/2022-05-18-meshmark-the-cloud-native-value-measurement/MeshMark-Formula.webp
  • src/collections/news/2024/2024-11-12-layer5-launches-kanvas-a-collaborative-platform-for-cloud-native-infrastructure/layer5-kanvas-designer.webp
  • src/collections/news/2025/2025-11-05-sixth-highest-velocity/meshery-extensions-github-dark.webp
  • src/collections/news/2025/2025-11-05-sixth-highest-velocity/sixth-highest-velocity-project-out-of-237-CNCF-projects.webp
  • src/collections/news/2025/2025-11-11-kanvas-ga-release/Kanvas-Catalog.webp
  • src/collections/news/2025/2025-11-11-kanvas-ga-release/Kanvas-Sample-Design-AWS-orchestration.webp
  • src/collections/news/2025/2025-11-11-kanvas-ga-release/Layer5-Kanvas-Designer.webp
  • src/collections/news/2026/2026-03-23-meshery-v1-launch-kubecon-eu/meshery-cover.webp
  • src/collections/programs/communitybridge/communitybridge-blue.webp
  • src/collections/programs/gsoc-2022/meshery-playground-alt-3.webp
  • src/collections/resources/articles/analyzing-service-mesh-performance/Comparison of different modes of delivery of service mesh network functions.webp
  • src/collections/resources/articles/analyzing-service-mesh-performance/Meshery Architecture - Client.webp
  • src/collections/resources/articles/analyzing-service-mesh-performance/Meshery Architecture - Clients.webp
  • src/collections/resources/articles/analyzing-service-mesh-performance/ieee_bridge_issue3_2021.webp
  • src/collections/resources/articles/devops-adoption/devops-adoption.webp
  • src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/KanvasDesigner.webp
  • src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/KanvasVisualizer.webp
  • src/collections/resources/articles/kubernetes/getting-started-with-kubernetes/multi-cluster-kubernetes-management-with-meshery.webp
  • src/collections/resources/articles/kubernetes/management-of-kubernetes/meshery-core-architecture.webp
  • src/collections/resources/articles/kubernetes/management-of-kubernetes/multi-cluster-kubernetes-management-with-meshery.webp
  • src/collections/resources/articles/service-mesh-architectures-and-components/figure4.webp
  • src/collections/resources/articles/value-of-a-service-mesh/figure2.webp
  • src/collections/resources/articles/value-of-a-service-mesh/figure3.webp
  • src/collections/resources/interview/techstrong.webp
  • src/collections/service-mesh-books/service-mesh-patterns/service-mesh-patterns_no-shadow.webp
  • src/collections/service-mesh-workshops/2019_08_01-introduction_to_istio/introduction-to-istio-square.webp
  • src/collections/service-mesh-workshops/2020_06_20_infra-ops/infra-ops.webp
  • src/collections/service-mesh-workshops/2020_07_14-oscon/oscon.webp
  • src/collections/workshops/2025_04_24_meshery_build_and_release/meshery_build_release.webp
  • src/collections/workshops/2025_04_30_meshery_cli/meshery_cli.webp
  • src/collections/workshops/2025_05_15_meshery_ui/meshery_ui.webp
  • src/collections/workshops/2025_05_29_meshery_server/meshery_server.webp
  • src/collections/workshops/2025_07_19_meshery_models/meshery_models.webp
  • src/components/CookieConsent/index.js
  • src/components/HoverTooltip/index.js
  • src/components/Pricing/PricingAddons/index.js
  • src/components/blog-view-tooltip.js
  • src/sections/Careers/img/layer5-culture.webp
  • src/sections/Careers/img/open-source.webp
  • src/sections/Community/Community-pictures/Derek Weeks and Lee at book signing at All Things Open.webp
  • src/sections/Community/Community-pictures/First meeting with Ishita Kumar -2020-06-11 at 3.37.52 PM.webp
  • src/sections/Community/Community-pictures/Lee Calcote and Oliver Gould - CTO of Buoyant.webp
  • src/sections/Community/Community-pictures/Nikhil Ladha - MeshMate of the Year.webp
  • src/sections/Community/Community-pictures/Yogi Porla showing Layer5 partnership at HPE Discover.webp
  • src/sections/Community/Community-pictures/community.webp
  • src/sections/Community/Community-pictures/ed-warnicke-network-service-mesh.webp
  • src/sections/Community/Community-pictures/five.webp
  • src/sections/Community/Community-pictures/gsoc-shirt.webp
  • src/sections/Community/Community-pictures/istio-up-and-running-framed.webp
  • src/sections/Company/About/images/layer5-projects.webp
  • src/sections/Company/Layer5-statement/layer5-projects.webp
  • src/sections/Developer-Infrastructure/images/whiteboard-1e9f33293030bc98a01945af9740863f.webp
  • src/sections/Devrel-platform/images/layer5-kanvas-designer.webp
  • src/sections/General/Footer/images/footer-bg.webp
  • src/sections/General/Footer/images/footer-particle-two.webp
  • src/sections/Home/Banner-4/meshery-infrastructure-as-diagram.webp
  • src/sections/Meshery/How-meshery-works/images/meshery-configuration-management.webp
  • src/sections/Meshery/Meshery-features/feature-images/KanvasDesigner.webp
  • src/sections/Meshery/Meshery-features/feature-images/meshery-and-grafana.webp
  • src/sections/Meshery/Meshery-features/feature-images/meshery-configuration-management.webp
  • src/sections/Meshery/Meshery-features/feature-images/meshery_benchmark_screen.webp
  • src/sections/Meshery/images/meshery-configuration-management.webp
  • src/sections/Meshery/images/meshery_benchmark_screen.webp
  • src/sections/Meshery/images/meshery_multi_mesh.webp
  • src/sections/Pricing/reviews/anusha.webp
  • src/sections/Projects/Image-Hub/image-hub-on-consul-with-wasm-and-meshery.webp
  • src/sections/Projects/Image-Hub/service-mesh-architecture-consul.webp
  • src/sections/Projects/Nighthawk/images/optimizing-your-average-response-time.webp
  • src/shims/mui-icons-material.js

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added project/meshery area/news A noteworthy article, event, happening area/blog New posts or new blog functionality area/community area/learn Related to /learn section area/events area/careers area/resources area/site-config labels Sep 13, 2026
@github-actions

github-actions Bot commented Sep 13, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for PR #8052 removed.

This PR preview was automatically pruned because we keep only the 3 most recently updated previews on GitHub Pages to stay within deployment size limits.

If needed, push a new commit to this PR to generate a fresh preview.

`npm run build` needed ~13.4 GB peak (9.8 GB in a single process) and
`gatsby develop --full` OOM-crashed outright. Profiling the webpack module
graph, the sharp job queue and the per-stage memory timeline turned up four
repository-specific causes.

1. The `@mui/icons-material` barrel dominated the module graph. Two
   pre-bundled dependencies (`@sistent/sistent`,
   `@sistent/mui-datatables`) import the whole barrel for 17 icons, and
   webpack resolved and parsed all ~10,800 icon modules in both the browser
   and the SSR compilation: 10,819 of 18,949 modules. `gatsby-node.js` now
   aliases the exact specifier to a generated shim that deep-imports only
   the icons those bundles use, taking the graph to 8,211 modules (-57%).
   Deep imports are untouched. `npm run generate:mui-icon-shim` regenerates
   the list by scanning node_modules, so it is derived rather than guessed.

2. Source images were far larger than anything the site renders. 673 images
   exceeded 1600px (one PNG was 18534x5417) against a maximum rendered width
   of 1920px, and sharp's cost scales with source megapixels. Capping the
   long edge at 2000px (1200px for member photos, rendered at 500px) across
   362 files cuts total source megapixels 4,603 -> 2,400 (-48%) and 60 MB of
   repository size, with no change to any rendered size.

3. `gatsby-plugin-purgecss` did nothing. Its own log reported
   "Removed ~0.00 KB" every build, because `purgeOnly: ["src/"]` matches no
   CSS the site actually imports. Removed; CSS output is byte-identical.

4. `@mui/material` was in the shared bundle of all 1,348 pages, because
   `CookieConsent` (rendered from `layout.js`) imported it for a Snackbar.
   Rebuilt on styled-components, the site's own styling system.

Also: `gatsby-plugin-preload-fonts` was declared but never registered as a
plugin, pulling puppeteer and a Chromium download into every `make setup`
(-400 MB of node_modules); `scripts/run-gatsby.js` now derives Gatsby's
worker count, sharp concurrency and V8 heap ceiling from the RAM the machine
actually has (honouring cgroup limits, so it is correct under WSL2 and in
containers) instead of hardcoding 8 GB; and 16 unreferenced assets that were
byte-identical duplicates of files still in use were deleted.

Measured on the same machine, full production build:

  peak memory   13,445 MB -> 9,959 MB   (-26%)
  peak process   9,845 MB -> 8,319 MB   (-15%)
  build time         535s -> 416s       (-22%)
  webpack modules  18,949 -> 8,211      (-57%)
  app.js          7,784 KB -> 2,259 KB  (-71%)
  total JS         38.8 MB -> 32.3 MB   (-17%)
  .cache            2.1 GB -> 1.7 GB
  pages built        1,348 -> 1,348     (unchanged)

Under a hard 8 GB cgroup limit `npm run build` now completes (peak 8,914 MB)
where it previously died with "Ineffective mark-compacts near heap limit".
`make site` peaks at 5,405 MB and is serving in 169s under a 6 GB limit, and
`make site-full` now reaches a usable dev server instead of OOM-crashing.

@dhruveshmishra dhruveshmishra left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

src/assets/images/careers/Lee-giving-away-free-t-shirts-at-UT-Austin.jpeg
The image added in this files seems to be reversed

Salmaan-M

This comment was marked as duplicate.

@dhruveshmishra dhruveshmishra left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

src/assets/images/Community-pictures/D IMG_6521.jpeg
src/assets/images/Community-pictures/F IMG_6936.jpeg
These images are also seem to be tilted

@Maanvi212006 Maanvi212006 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

same as @dhruveshmishra mentioned these images are inverted. Rest all look correct!

  • src/assets/images/Community-pictures/D IMG_6521.jpeg
Image
  • src/assets/images/Community-pictures/F IMG_6936.jpeg
Image
  • src/assets/images/careers/Lee-giving-away-free-t-shirts-at-UT-Austin.jpeg
Image

@dhruveshmishra dhruveshmishra left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Many svgs are seems to be posted duplicately ,is it intentional or what
Like:-
src/assets/images/learning-path/istio/Prometheus.webp
src/assets/images/learning-path/istio/jaeger_1.webp

@vedant21-ctr vedant21-ctr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

A few things to address:

Image orientation: Lee-giving-away-free-t-shirts-at-UT-Austin.jpeg, IMG_6521.jpeg, and IMG_6936.jpeg are visibly rotated/mirrored compared with the originals. Please investigate why the resize step is altering orientation. EXIF handling is one possible cause worth checking.
Since 362 images were resized, please validate the full set against the originals, rather than only fixing these 3, to ensure there are no other image regressions.
With 262 changed files and CodeRabbit skipping the review due to the file-count limit, consider splitting the image changes from the build/webpack changes. Not a blocker, but it would make both parts easier to review.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/blog New posts or new blog functionality area/careers area/community area/events area/learn Related to /learn section area/news A noteworthy article, event, happening area/resources area/site-config project/meshery

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants