{"id":47595483,"url":"https://github.com/pferreirafabricio/psi-multiple-pages","last_synced_at":"2026-04-01T18:01:17.533Z","repository":{"id":336235159,"uuid":"1107609022","full_name":"pferreirafabricio/psi-multiple-pages","owner":"pferreirafabricio","description":"🧪 A TypeScript-based tool that runs Google PageSpeed Insights analysis on multiple pages in parallel and generates comparative performance reports","archived":false,"fork":false,"pushed_at":"2026-02-12T14:16:31.000Z","size":322,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T22:58:51.130Z","etag":null,"topics":["insights","javascript","nodejs","page-insights","performance-analysis","performance-metrics","psi"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pferreirafabricio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-01T11:24:48.000Z","updated_at":"2026-02-12T14:19:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pferreirafabricio/psi-multiple-pages","commit_stats":null,"previous_names":["pferreirafabricio/psi-multiple-pages"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pferreirafabricio/psi-multiple-pages","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pferreirafabricio%2Fpsi-multiple-pages","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pferreirafabricio%2Fpsi-multiple-pages/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pferreirafabricio%2Fpsi-multiple-pages/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pferreirafabricio%2Fpsi-multiple-pages/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pferreirafabricio","download_url":"https://codeload.github.com/pferreirafabricio/psi-multiple-pages/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pferreirafabricio%2Fpsi-multiple-pages/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290740,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: 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":["insights","javascript","nodejs","page-insights","performance-analysis","performance-metrics","psi"],"created_at":"2026-04-01T18:00:58.664Z","updated_at":"2026-04-01T18:01:17.507Z","avatar_url":"https://github.com/pferreirafabricio.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PageSpeed Insights - Multiple Pages\n\nA TypeScript-based tool that runs Google PageSpeed Insights analysis on multiple pages in parallel and generates comparative performance reports.\n\n## Overview\n\nThis project enables bulk performance analysis by running PageSpeed Insights tests on multiple URLs simultaneously. It aggregates and compares performance metrics, accessibility scores, and optimization data across all analyzed pages, making it easy to identify performance trends and issues across your entire site.\n\n![PageSpeed Insights Comparison Report](docs/screenshots/home.png)\n\n## Features\n\n- 🚀 Parallel processing of multiple URLs for faster analysis\n- 📊 Fetches performance data from Google PageSpeed Insights API\n- 📱 Supports both mobile and desktop analysis\n- 📈 Generates comparative reports in HTML or XLSX format\n- 🔄 Compare performance across multiple pages side-by-side\n- 📊 Excel export for easy data analysis and sharing\n- 🎨 Clean, formatted output using Handlebars templates\n- 🔧 TypeScript for type safety and better developer experience\n\n## Prerequisites\n\n- Node.js (v14 or higher recommended)\n- Google PageSpeed Insights API key ([get one here](https://developers.google.com/speed/docs/insights/v5/get-started))\n\n## Installation\n\n1. Clone the repository\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Copy the example environment file:\n\n```bash\ncp .env.example .env\n```\n\n4. Add your PageSpeed Insights API key to the `.env` file:\n\n```\nPSI_API_KEY=your_api_key_here\n```\n\n## Usage\n\nEdit the `src/config/index.ts` file to add the pages you want to analyze.\n\n```typescript\nconst pageSlugs = [\n  'about'\n];\n```\n\nRun the tool with HTML output (default):\n\n```bash\nnpm start\n# or\nnpm run start:html\n```\n\nRun the tool with XLSX (Excel) output:\n\n```bash\nnpm run start:xlsx\n```\n\nOr use the format flag directly:\n\n```bash\nnpm start -- --format=html\nnpm start -- --format=xlsx\n```\n\nThe generated report will be saved in the [`output`](output) directory as either `report.html` or `report.xlsx`.\n\n## Project Structure\n\n```\n├── src/\n│   ├── index.ts              # Main entry point\n│   ├── reportTemplate.hbs    # Handlebars template for HTML reports\n│   ├── helpers/              # Helper functions\n│   └── types/                # TypeScript type definitions\n├── output/                   # Generated reports directory\n├── .env.example              # Environment variables template\n└── tsconfig.json             # TypeScript configuration\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## API Reference\n\nThis project uses the [Google PageSpeed Insights API](https://developers.google.com/speed/docs/insights/v5/get-started).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpferreirafabricio%2Fpsi-multiple-pages","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpferreirafabricio%2Fpsi-multiple-pages","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpferreirafabricio%2Fpsi-multiple-pages/lists"}