A comprehensive Next.js application for analyzing complex Chrome DevTools performance profiles, with specialized support for WebAssembly (WASM), 3D models (GLB), HTTP/2-3 protocols, and multi-domain architectures.
We take security seriously. This project uses Snyk for comprehensive security scanning:
- π Dependency Scanning: Continuous monitoring of npm packages
- π Code Analysis: Static analysis for security vulnerabilities
- π³ Container Security: Docker image vulnerability scanning
- ποΈ Infrastructure: Security configuration validation
View Security Policy β | Security Scanning Details β
- Complex Profile Analysis: Parse and analyze Chrome DevTools performance profiles
- WebAssembly Support: Detailed WASM compilation and execution metrics
- 3D Model Analysis: GLB/GLTF file complexity and loading performance
- Protocol Comparison: HTTP/1.1, HTTP/2, and HTTP/3 performance analysis
- Multi-Domain Architecture: Cross-domain resource and DNS analysis
- Interactive Charts: Advanced visualizations with Recharts
- Mobile-Responsive: Optimized for desktop and mobile devices
- Dark Theme: Professional dark UI optimized for performance analysis
- Node.js 18.0 or higher
- npm, yarn, or pnpm package manager
- Modern web browser with JavaScript enabled
-
Clone the repository
git clone <repository-url> cd chrome-performance-analyzer
-
Install dependencies
yarn install
-
Run the development server
yarn dev
-
Open your browser Navigate to http://localhost:3000
This project includes comprehensive security scanning with Snyk:
# Run security audit locally
yarn audit
# Check for vulnerabilities with Snyk (requires Snyk CLI)
yarn snyk test
# Monitor project for new vulnerabilities
yarn snyk monitor- β Every Push: Dependency and code vulnerability scanning
- β Every PR: Delta security analysis for new changes
- β Daily: Comprehensive security audit
- β Container: Docker image security scanning
- β IaC: Infrastructure configuration security
From Chrome DevTools:
- Open Chrome DevTools (F12)
- Go to the Performance tab
- Click the record button (circle icon)
- Perform the actions you want to analyze
- Stop recording
- Click Export (download icon) to save as JSON
Supported Profile Types:
- Standard web application profiles
- WebAssembly-heavy applications
- 3D/WebGL applications with GLB models
- Multi-domain architectures
- HTTP/2 and HTTP/3 enabled sites
- File Upload: Drag and drop or select JSON files up to 50MB
- Sample Data: Use the "Load Complex Sample" for demonstration
The analyzer provides six main analysis views:
- Overview: Performance timeline and key metrics
- Resources: WASM modules and 3D model analysis
- Protocols: HTTP protocol performance comparison
- Charts: Advanced visualizations and correlations
- Issues: Identified performance problems
- Optimize: Actionable recommendations with code examples
A composite score based on:
- WASM Compilation Time: Penalties for >100ms compile times
- 3D Model Size: Penalties for >20MB GLB files
- Request Count: Penalties for >200 network requests
- Protocol Efficiency: Bonus for HTTP/3 usage
Score Ranges:
- π’ 90-100: Excellent performance
- π‘ 70-89: Good performance, minor optimizations needed
- π 50-69: Fair performance, significant improvements possible
- π΄ 0-49: Poor performance, critical issues present
The analyzer maps Chrome profile data to Core Web Vitals:
- FCP (First Contentful Paint): Time to first visual content
- LCP (Largest Contentful Paint): Time to largest content element
- FID (First Input Delay): Input responsiveness
- CLS (Cumulative Layout Shift): Visual stability
- TTFB (Time to First Byte): Server response time
Create a .env.local file for custom configuration:
# Optional: Custom API endpoints
NEXT_PUBLIC_API_BASE_URL=http://localhost:3000
# Optional: Analytics configuration
NEXT_PUBLIC_ANALYTICS_ID=your-analytics-id
# Optional: Feature flags
NEXT_PUBLIC_ENABLE_EXPERIMENTAL_FEATURES=false
# Security: Snyk configuration
SNYK_TOKEN=your-snyk-api-token
SNYK_ORG_ID=your-organization-id- Framework: Next.js 15 with App Router
- UI Components: shadcn/ui with Radix UI primitives
- Styling: Tailwind CSS with custom dark theme
- Charts: Recharts for data visualization
- Icons: Lucide React
- TypeScript: Full type safety
- Security: Snyk for vulnerability scanning
chrome-performance-analyzer/
βββ app/
β βββ globals.css # Global styles and theme
β βββ layout.tsx # Root layout
β βββ page.tsx # Main application page
βββ components/
β βββ ui/ # shadcn/ui components
β βββ advanced-performance-charts.tsx
β βββ complex-issues-analysis.tsx
β βββ advanced-recommendations.tsx
β βββ resource-analysis.tsx
β βββ protocol-analysis.tsx
βββ docs/
β βββ performance-rules.md # Performance evaluation rules
β βββ SECURITY_SCANNING.md # Security documentation
βββ .github/
β βββ workflows/ # GitHub Actions
β βββ FUNDING.yml # Sponsorship configuration
β βββ dependabot.yml # Dependency updates
βββ public/ # Static assets
βββ Dockerfile # Container configuration
βββ .snyk # Snyk configuration
βββ README.md # This file
βββ package.json # Dependencies and scripts
yarn test# Run security audit
yarn audit
# Run Snyk security scan (requires Snyk CLI)
yarn snyk test
# Check for license issues
yarn snyk test --print-depsyarn build
yarn startyarn lint
yarn format- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow TypeScript best practices
- Use semantic commit messages
- Add tests for new features
- Update documentation for API changes
- Ensure mobile responsiveness
- Run security scans before submitting PRs
Contributing Guide β | Code of Conduct β
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Check the Performance Rules
- Security: Review Security Policy
- Issues: Report bugs via GitHub Issues
- Discussions: Join GitHub Discussions for questions
- Email: Contact the maintainers for enterprise support
- DNS Server: Route 53
- Deploy: Vercel
- Database: None
Built with β€οΈ for the web performance community