{"id":42730006,"url":"https://github.com/jsulpis/js-frameworks-bundle-benchmark","last_synced_at":"2026-01-29T17:10:52.689Z","repository":{"id":334978058,"uuid":"1114068820","full_name":"jsulpis/js-frameworks-bundle-benchmark","owner":"jsulpis","description":"weight of a blank page in modern frameworks","archived":false,"fork":false,"pushed_at":"2026-01-27T22:45:14.000Z","size":534,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-28T07:37:06.753Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jsulpis.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-10T21:20:22.000Z","updated_at":"2026-01-27T22:45:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jsulpis/js-frameworks-bundle-benchmark","commit_stats":null,"previous_names":["jsulpis/js-frameworks-bundle-benchmark"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jsulpis/js-frameworks-bundle-benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Fjs-frameworks-bundle-benchmark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Fjs-frameworks-bundle-benchmark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Fjs-frameworks-bundle-benchmark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Fjs-frameworks-bundle-benchmark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jsulpis","download_url":"https://codeload.github.com/jsulpis/js-frameworks-bundle-benchmark/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jsulpis%2Fjs-frameworks-bundle-benchmark/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28881367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T16:41:59.663Z","status":"ssl_error","status_checked_at":"2026-01-29T16:39:39.641Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-29T17:10:52.180Z","updated_at":"2026-01-29T17:10:52.684Z","avatar_url":"https://github.com/jsulpis.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JavaScript Frameworks Bundle Size Benchmark\n\n_aka: what framework should I use for a static website ?_\n\n## Disclaimers\n\n- All mentioned frameworks are great. Some are just better suited for complex apps and a bit overkill for simple websites.\n- I'm not sure I will maintain this repo with future versions. Check if the versions used are still relevant when you read this.\n\n## Motivation\n\nI always pay attention to the bundle size of my apps and websites, for performance and environmental sustainability reasons. In a large and dynamic app, a lot of JavaScript code is often needed for the many features. But in static websites, it mostly comes from the frameworks and libraries used (if there is a lot of JavaScript code in a static website it's probably not necessary, otherwise it's probably not a static website).\n\nIn that regard, I wanted to quantify the impact of each modern framework in terms of bundle size.\n\n## Methodology\n\nWith each framework, I created an app that renders a single blank page. I only kept the code that would typically be used in a real world app (routing, SEO tags, error handling etc). I used SSG when available, otherwise a regular SPA. Then, I built each app for production and measured the size of the generated JavaScript bundle.\n\n## Results\n\n**uncompressed size**: allows to better see the amount of code that will be parsed and executed by the browser\n**compressed size**: weight of the bundle on the network (although we don't see here the number and size of the individual chunks, which affect download speed)\n\n![](./scripts/bundle-comparison.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsulpis%2Fjs-frameworks-bundle-benchmark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjsulpis%2Fjs-frameworks-bundle-benchmark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjsulpis%2Fjs-frameworks-bundle-benchmark/lists"}