GitHub v1.0 MVP

AI Website Performance Analyzer

Paste your code, get instant AI-powered performance insights with Core Web Vitals optimization — powered by DeepSeek

LCP
≤ 2.5s
Largest Contentful Paint — Loading
INP
≤ 200ms
Interaction to Next Paint — Responsiveness
CLS
≤ 0.1
Cumulative Layout Shift — Visual Stability

📝 Code Input

📊 Analysis Results

🔬

Ready to Analyze

Paste your code on the left and click "Analyze Performance" to get AI-powered insights

`; document.getElementById('cssInput').value = `/* styles.css - 2400 lines total, showing key parts */ @import url('https://fonts.googleapis.com/css2?family=Open+Sans&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Roboto', sans-serif; } .hero { position: relative; width: 100%; } .hero img { width: 100%; } /* Unused styles from old redesign */ .old-header { display: flex; background: #333; } .old-nav { list-style: none; } .old-footer-v1 { padding: 40px; } .old-sidebar-widget { width: 300px; } .deprecated-modal { position: fixed; z-index: 9999; } .unused-carousel { overflow: hidden; } .legacy-grid { display: table; width: 100%; } .products { display: flex; flex-wrap: wrap; gap: 20px; padding: 20px; } .product { width: calc(25% - 15px); } .product img { width: 100%; height: auto; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes slideUp { from { transform: translateY(20px); } to { transform: translateY(0); } } @keyframes pulse { 0%,100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes rotate { from { transform: rotate(0); } to { transform: rotate(360deg); } } .sidebar { width: 300px; float: right; }`; document.getElementById('jsInput').value = `// app.js import _ from 'lodash'; import moment from 'moment'; import $ from 'jquery'; // Sync XHR (blocking) function loadConfig() { var xhr = new XMLHttpRequest(); xhr.open('GET', '/api/config', false); xhr.send(); return JSON.parse(xhr.responseText); } // No debounce on scroll window.addEventListener('scroll', function() { var elements = document.querySelectorAll('.animate'); elements.forEach(function(el) { var rect = el.getBoundingClientRect(); if (rect.top < window.innerHeight) { el.classList.add('visible'); } }); }); // No debounce on resize window.addEventListener('resize', function() { recalculateLayout(); updateSidebar(); refreshProducts(); }); // Large inline data var countryData = {}; // imagine 500KB of country data here // document.write usage document.write('