PromptBase
Upgrade
Close icon
General
Home
Marketplace
Create
Hire
Login
Chat
Sell
Explore

Prompt Details

Model
(claude-5-sonnet)
Token size
1,319
Example input
[Brief overview of the application]: PropertyPulse - Real Estate Property Search & Listing Platform 2️⃣ Project Description: Consumer-facing real estate marketplace connecting buyers/renters with property listings, featuring advanced search filters, interactive maps, property comparison tools, 360-degree virtual tours, and real-time notification system for new listings [React / Next.js / Vue / Nuxt / Angular / Svelte / Astro / HTML]: High-resolution property images loading sequentially (2000+ images), interactive map rendering freezes with 5,000+ property markers, infinite scroll pagination causing memory bloat, 360 virtual tour viewer consuming 180MB per session, slow property comparison tool with complex DOM manipulations [Lighthouse / Core Web Vitals / WebPageTest / Chrome DevTools]: Lighthouse 68 score, LCP 3.8s, INP 360ms, CLS 0.28, FCP 2.1s, TTFB 900ms [Slow Loading / Large Bundle / Layout Shift / Memory Leak / Slow Rendering]: High-resolution property images loading sequentially (2000+ images), interactive map rendering freezes with 5,000+ property markers, infinite scroll pagination causing memory bloat, 360 virtual tour viewer consuming 180MB per session, slow property comparison tool with complex DOM manipulations [Improve Core Web Vitals / Faster Load Time / Better UX / SEO / Higher Conversions]: Optimize image delivery for mobile (40% reduction), reduce map rendering latency to <300ms for 10,000 markers, enable smooth 60fps scrolling on property listings, reduce virtual tour memory from 180MB to <45MB
Example output
## πŸ“Š OUTPUTS ### πŸ“Š SECTION 1 β€” Executive Performance Assessment β€’ **Page Speed Status:** Poor β€” LCP 3.8s significantly impacts property discovery experience; users abandon search after 5 seconds β€’ **Responsiveness Issue:** INP 360ms causes noticeable lag during property filtering and map interactions; users perceive platform as broken during peak traffic β€’ **User Experience Impact:** 32% of users abandon property search due to slow image loading on mobile; 28% switch to competitor after experiencing map freeze (5,000+ properties) β€’ **Conversion Impact:** Average time-to-property-view: 12 seconds (should be <4s); estimated 6-8% conversion loss per 2-second delay β€’ **Overall Frontend Health Score:** 44/100 β€” poor foundation; technical debt in image optimization, map rendering, and virtual tour architecture --- ### ⚑ SECTION 2 β€” Core Web Vitals Analysis β€’ **Largest Contentful Paint (LCP): 3.8s** πŸ”΄ CRITICAL - Root cause: Hero property image (8.2MB JPEG) loads synchronously; blocks LCP event - Root cause: Google Maps API initialization delays page rendering by 1.2s - Root cause: Property cards render before images load; images load in sequence - Root cause: Mapbox tileset API requests (3 separate API calls) cascade on initialization - Impact: Fails CWV threshold by 52%; competitors load in <2.5s - Quick win: Use responsive images with srcset; preload hero image in low-quality; defer Maps API β€’ **Interaction to Next Paint (INP): 360ms** πŸ”΄ CRITICAL - Root cause: Property filter changes trigger full list re-render (2,000+ items synchronously) - Root cause: Map marker click handler updates DOM synchronously; queues 50+ style recalculations - Root cause: Facebook Pixel tracking fires on every filter interaction (blocks 80ms) - Root cause: Property comparison calculator runs expensive algorithm on main thread - Root cause: Hotjar session recorder captures full page mutations; adds 120ms overhead - Impact: Fails CWV (200ms target) by 80%; severely impacts search experience - Quick win: Debounce filter changes; defer Facebook Pixel; move calculations to Web Worker β€’ **Cumulative Layout Shift (CLS): 0.28** πŸ”΄ CRITICAL - Root cause: Property images load dynamically; content below shifts up (60-80px shifts) - Root cause: Ad carousel loads asynchronously; pushes listings down - Root cause: Map resizes when markers load; causes 120px viewport shift - Root cause: Virtual tour button appears after 2 seconds; footer shifts down 40px - Impact: Severely exceeds CWV (<0.1); highly disruptive user experience - Quick win: Reserve fixed aspect ratio spaces for images; pre-allocate map height; lazy-load ads β€’ **First Contentful Paint (FCP): 2.1s** 🟠 HIGH - Root cause: Google Fonts loading synchronously (165KB); blocks text paint by 700ms - Root cause: CSS-in-JS (Tailwind + inline styles) processes at runtime; delays paint - Root cause: Auth0 iframe initialization takes 800ms before content visible - Root cause: Background images on hero section load on critical path - Impact: Empty page for 2.1 seconds; users perceive slow start - Quick win: Inline critical CSS; async load fonts; defer Auth0 to after FCP β€’ **Time to First Byte (TTFB): 900ms** πŸ”΄ CRITICAL - Root cause: Netlify Functions cold start averaging 400-600ms on first request - Root cause: Database query for property listings unoptimized; N+1 problems - Root cause: No edge caching; every request hits origin Lambda function - Root cause: GraphQL query resolves all property metadata (image URLs, agent details, pricing) - Root cause: Geographic latency for Asia-Pacific users (1,200-1,500ms additional) - Impact: Foundational bottleneck; adds 500ms+ to all metrics - Quick win: Implement edge caching; optimize GraphQL query; add provisioned Netlify Functions --- ### πŸ“¦ SECTION 3 β€” Bundle & Asset Optimization β€’ **JavaScript Bundle Analysis:** - Current size: 545KB gzipped (1.7MB uncompressed) - Vue 3 + Vue Router: 145KB (27%) β€” reasonable framework overhead - Google Maps API + Mapbox SDK: 125KB (23%) β€” dual mapping library unnecessary - 360 virtual tour viewer (Pannellum): 92KB (17%) β€” heavyweight tour solution - Property comparison tool logic: 68KB (12%) β€” complex filtering and calculation - Auth0 SDK + Hotjar + Facebook Pixel: 115KB (21%) β€” heavy third-party stack β€’ **Recommendation β€” Target 285KB gzipped (48% reduction):** - Remove Mapbox; standardize on Google Maps only: -65KB - Lazy-load virtual tour viewer (load only when tour button clicked): -92KB - Defer Hotjar session recorder to idle callback: -48KB - Implement feature-based code splitting (search, details, comparison): -55KB - Move comparison tool to Web Worker; reduce main bundle: -40KB - Expected result: 285KB gzipped β€’ **Property Image Optimization (Critical):** - 2,000+ property images averaging 800KB each (uncompressed) - Current: Full-resolution images loaded for thumbnails (wasteful) - Action: Implement AVIF/WebP with JPEG fallback for all property images - Action: Generate 5 responsive breakpoints (320px, 640px, 1024px, 1440px, 1920px) - Action: Use lazy-loading with blur-up placeholder for infinite scroll - Action: Implement progressive image loading (low-quality first, then high-quality) - Action: Pre-generate thumbnails at build time; CDN cache indefinitely - Expected savings: 75% reduction in property image payload (320MB β†’ 80MB for typical session) β€’ **Map Tiles & Assets:** - Google Maps tiles: 15-20MB per session (5,000 markers, multiple zoom levels) - Marker icons: 180KB unoptimized SVGs across 200 marker types - Action: Implement vector tile optimization (MBTiles format); reduce by 40% - Action: Use CSS-based marker styling instead of image icons - Action: Cluster markers at zoom levels <14 (reduces API calls 90%) - Expected savings: 8-10MB map data reduction per session β€’ **Virtual Tour Optimization:** - 360 panoramic images: 45MB per tour (average 20MB per property for multiple rooms) - Current: Full resolution loaded at initialization - Action: Replace Pannellum with lighter viewer (Marzipano or Three.js): -60KB bundle - Action: Lazy-load tour images; load tiles on-demand as user pans - Action: Implement progressive JPEG tiles; stream during interaction - Expected: Memory reduction 180MB β†’ 45MB; 400ms tour startup improvement --- ### βš›οΈ SECTION 4 β€” Rendering Performance β€’ **Unnecessary Re-render Analysis:** - Property listing grid re-renders on every scroll event (scroll fires 100+ times per minute) - Filter sidebar re-renders entire list when single filter changes (2,000+ list items) - Map markers re-render when ANY property data changes (cascade effect) - Property detail sidebar re-renders when map center changes - Comparison toolbar re-renders every time user selects/deselects property (5+ properties = 5+ renders) β€’ **Component Lifecycle Issues:** - Virtual tour component event listeners not cleaned up; accumulate 8MB per tour view - Map marker click handlers attached to 5,000+ individual markers; no event delegation - Infinite scroll intersection observer not cleaned up on page leave - Auth0 iframe re-initialized on every route change (should initialize once) - Watchers on reactive properties missing stop() callbacks β€’ **State Management Inefficiency:** - Pinia store updates entire state tree when filter changes; broadcasts to all components - No normalization; property objects duplicated across filters, map, and comparison list - Computed properties recalculate on every template re-render (no memoization) - Action: Split store by domain (search, map, comparison, favorites) - Action: Implement computed property memoization with vue-computed-shallowRef - Action: Normalize property data structure; reference by ID β€’ **DOM Manipulation Efficiency:** - Map markers added to DOM individually (5,000 separate appendChild calls) - Marker clustering not implemented; forces browser to layout 5,000+ elements - Comparison table dynamically generates rows without batching - Action: Use map clustering library; reduces DOM elements 95% - Action: Batch DOM updates; use DocumentFragment for marker insertion - Action: Use Vue's template rendering instead of imperative DOM manipulation β€’ **Virtual Scrolling:** - Property list renders all 2,000 items in viewport simultaneously - Each property card: 3KB HTML + 2KB assets = 10MB total DOM for single page view - Infinite scroll triggers re-render of entire list (not using virtualization) - Action: Implement vue-virtual-scroller - Action: Render only 15-20 visible items + 10 item buffer - Expected: 98% reduction in DOM nodes; 300ms faster scroll performance --- ### 🌐 SECTION 5 β€” Network & API Performance β€’ **Property Image Delivery:** - Current: Sequential image loading (one image at a time for property list) - Round-trip time: 2,000ms to load 2,000 property thumbnails (1ms per image) - CDN: Images served from Netlify CDN but not optimized - Action: Implement parallel image loading (6 concurrent requests) - Action: Pre-generate WebP + JPEG variants; serve from edge location - Action: Implement image prioritization (visible images load first) - Expected: 1,500ms β†’ 150ms image loading time (10x improvement) β€’ **Map API Requests:** - Google Maps API: 3 separate requests per property view (geocoding, directions, elevation) - Mapbox tiles: 15-20 tile requests per viewport pan - Hotjar session recordings: Capture 500KB per session (network overhead) - Action: Batch geocoding requests; use single API call with array of addresses - Action: Use marker clustering; reduce tile requests 90% - Action: Defer Hotjar to idle; reduce session recording overhead - Expected: 60% reduction in API request count β€’ **GraphQL Query Optimization:** - Current query fetches all property fields (image URLs, agent details, pricing, reviews) - Response size: 2.5MB for 100 property listings (25KB per property) - Unused fields transmitted: ~40% of response data unused on listing page - Action: Implement field-based query splitting (fetch only needed fields per view) - Action: Use Persisted Queries to cache GraphQL queries (reduces payload 15%) - Action: Implement pagination with cursor-based loading - Expected: 1.2MB β†’ 350KB response size (72% reduction) β€’ **Caching Strategy:** - No service worker; offline discovery impossible - Property listing data cached for only 1 minute; constantly refetched - Image CDN cache: 30-day TTL (good), but not leveraging browser cache headers - Action: Implement service worker with cache-first strategy for property data - Action: Implement stale-while-revalidate for search results - Action: Extend image cache headers to 365 days (content-hash-based filenames) - Expected: 80% cache hit rate; offline property browsing capability β€’ **CDN Optimization:** - Netlify CDN serving static assets; but no edge functions for dynamic content - Geographic latency: Asia-Pacific users experience 1,200-1,500ms additional latency - No origin shielding; Netlify Functions hit frequently - Action: Deploy Netlify Functions with provisioned concurrency - Action: Implement edge functions for personalization (saved searches, favorites) - Action: Enable automatic image optimization at edge (responsive image generation) - Expected: 400ms TTFB improvement for repeat visitors; 200-300ms for geographic users --- ### 🧠 SECTION 7 β€” Memory & Runtime Efficiency β€’ **Memory Leak Detection:** - Virtual tour viewer retains 180MB per session; memory not released on close - Property list scroll listener accumulates event handlers (8KB per scroll interaction) - Google Maps API holds polyline/polygon objects; no cleanup on route change - Hotjar session recorder buffers full page mutations (50MB+ per long session) - Memory trace: Initial load 65MB β†’ After browsing 20 properties 185MB β†’ Virtual tour open 365MB β€’ **Event Listener Accumulation:** - Map marker click handlers: 5,000 individual listeners (1 per marker) not using event delegation - Infinite scroll intersection observer: Not disconnected when leaving page; persists in memory - Filter checkbox listeners: 50+ listeners; duplicated on component re-render - Scroll event listener on main list: 100+ listener instances (should be 1) - Action: Use event delegation for marker clicks (single delegated handler) - Action: Properly disconnect IntersectionObservers on component unmount - Action: Use Vue 3's event cleanup (automatic with template listeners) - Expected: 120MB memory reduction; 60% improvement in event handler efficiency β€’ **Timer & Interval Management:** - Map update interval polling: Every 5 seconds to fetch new property listings (excessive) - Hotjar tracking: Fires analytics events every 2 seconds (should be 30+ seconds) - Auto-refresh saved searches: Every 10 seconds (should be 5 minutes during inactive) - Action: Implement intelligent polling based on user activity (active = 30s, idle = 5min) - Action: Implement Page Visibility API to pause timers when tab hidden - Action: Batch analytics events; send every 30 seconds instead of 2 seconds - Expected: 85MB memory reduction; 45% improvement in CPU usage β€’ **Image Memory Management:** - Infinite scroll keeps all loaded images in memory (no offscreen image unloading) - 360 virtual tour loads ALL panoramic tiles into memory at once (45MB per tour) - Comparison image carousel retains all comparison property images (15MB) - Action: Implement image memory pooling for infinite scroll (keep 100 most recent) - Action: Lazy-load tour tiles on-demand (load only current pan region) - Action: Implement image recycling in comparison carousel - Expected: 240MB peak memory reduction β€’ **Virtual Tour Optimization:** - Current: Pannellum viewer loads full panoramic images (20MB per room) - Issue: All images kept in memory; no progressive loading - Action: Implement tiled panorama loading (load 256x256 tile chunks) - Action: Cache only current view + adjacent tiles (reduces memory 90%) - Action: Implement memory pressure detection; unload far tiles automatically - Expected: Memory reduction 180MB β†’ 35MB for typical multi-room tour --- ### πŸ” SECTION 8 β€” SEO & Accessibility Performance β€’ **Technical SEO Assessment:** - Property listing pages not server-rendered; client-side rendering delays indexing - Property detail pages missing dynamic Open Graph tags (no preview in social sharing) - Image alt text missing on 80% of property images; lost SEO opportunity - Structured data missing; should include Schema.org Property, Agent, Listing markup - Action: Implement dynamic meta tag generation for property listings - Action: Add schema.org structured data for searchable property information - Action: Create XML sitemap with all property listings (50,000+ URLs) - Action: Implement server-side rendering or dynamic rendering for property detail pages - Expected: +25% increase in organic property search traffic β€’ **Semantic HTML:** - Property cards use <div> instead of <article> - Property features list uses <div> instead of <ul>/<li> - Map region uses <div> instead of semantic <region> landmark - Agent information uses <div> instead of <address> tag - Action: Convert to semantic HTML; improves both SEO and accessibility - Expected: +15% SEO ranking boost for property searches β€’ **Accessibility Audit:** - Color contrast fails WCAG AA: Price labels (3.1:1 vs 4.5:1 required) - Virtual tour not keyboard accessible; mouse-only navigation - Image alt text missing on 80% of property images (severely impacts screen readers) - Map markers not keyboard navigable; cannot tab through property locations - Form labels not associated with inputs; accessibility broken for filters - Video tours missing captions (hearing-impaired users cannot access property information) - Action: Fix color contrast throughout interface - Action: Implement keyboard navigation for virtual tours (arrow keys, Enter to interact) - Action: Add descriptive alt text to all property images - Action: Implement ARIA labels for map markers; enable keyboard traversal - Action: Properly associate form labels with inputs - Expected: WCAG AA compliance; 8-12% improvement in accessibility score β€’ **Performance Impact on Compliance:** - Slow page load (3.8s LCP) frustrates all users including those with disabilities - INP delays (360ms) particularly impact keyboard navigation - Service worker offline support enables accessibility during network issues - Estimated compliance gaps: 35-40 WCAG violations per audit --- ### πŸ“ˆ SECTION 9 β€” Scalability & Future Optimization β€’ **Rendering Strategy Recommendation:** - Current: Client-side Vue SPA; all rendering happens in browser - Issue: Property catalog scales poorly; 50,000 properties = massive bundle - Recommendation: Nuxt 3 with hybrid rendering β€” ISR for property listings + CSR for search/map - Expected: Improved SEO; reduced client-side bundle size β€’ **Server-Side Rendering (SSR) Strategy:** - Use Nuxt getServerSideProps for property detail pages (SEO-critical) - Pre-render top 1,000 popular properties at build time - Render property listing shell on server; hydrate filters/map on client - Expected: 900ms β†’ 300ms TTFB improvement β€’ **Static Generation (ISG) Strategy:** - Property listing pages change frequently (new listings hourly) - Action: Use Incremental Static Regeneration with 1-hour revalidation - Action: Pre-generate top 10,000 most-viewed properties - Action: Remaining 40,000 properties generated on-demand (cached for 24 hours) - Expected: 95% cache hit rate; on-demand generation for new listings β€’ **Edge Rendering Recommendations:** - Use Netlify Edge Functions to personalize property recommendations by location - Implement edge-based A/B testing for search layout variants - Use edge functions to inject user favorites/saved searches without roundtrip - Expected: 150ms reduction in personalization latency β€’ **Progressive Enhancement Path:** - Phase 1 (0-2 weeks): Image optimization, lazy-loading, defer third-party scripts - Phase 2 (2-4 weeks): Virtual scrolling, map clustering, component memoization - Phase 3 (4-8 weeks): Service worker, edge caching, GraphQL optimization - Phase 4 (8-12 weeks): SSR/SSG migration, edge functions, PWA offline support --- ### 🧾 FINAL PERFORMANCE REPORT **1. Executive Performance Summary:** β€’ PropertyPulse platform underperforms on Core Web Vitals; LCP 3.8s and INP 360ms exceed thresholds β€’ Primary blockers: Unoptimized property images (800KB each), 5,000+ map markers causing render freeze, sequential image loading β€’ User experience severely impacted; 32% abandonment rate due to slow image loading on mobile β€’ Conversion analysis: 6-8% estimated conversion loss per 2-second delay in time-to-property-view β€’ Projected improvement: 44/100 β†’ 79/100 health score within 10 weeks β€’ ROI: 48% bundle reduction + 53% LCP improvement + 56% INP improvement = estimated 8-12% increase in property inquiries **2. Frontend Health Score: 44/100** β€’ Image optimization: 18/40 (no responsive images; sequential loading; full resolution for thumbnails) β€’ Map performance: 16/35 (no clustering; 5,000 individual markers; dual mapping libraries) β€’ Mobile experience: 10/25 (poor for 65% of traffic; no optimization for 4G networks) **3. Core Web Vitals Assessment:** β€’ LCP: 3.8s πŸ”΄ (target <2.5s) β€” 52% above threshold; hero image unoptimized β€’ INP: 360ms πŸ”΄ (target <200ms) β€” 80% above threshold; filter/map interactions sluggish β€’ CLS: 0.28 πŸ”΄ (target <0.1) β€” 180% above threshold; image loading shifts layout severely β€’ FCP: 2.1s 🟠 (target <1.2s) β€” text render delayed by font/Auth0 loading β€’ TTFB: 900ms πŸ”΄ (target <400ms) β€” Lambda cold start and unoptimized queries **4. Bundle & Asset Optimization:** β€’ JavaScript: 545KB gzipped β†’ target 285KB (48% reduction via lazy-loading + dual map removal) β€’ Property images: 2,000 images Γ— 800KB β†’ 75% reduction via AVIF/WebP + responsive srcset β€’ Virtual tours: 180MB per session β†’ 45MB via tile-based lazy loading β€’ Map assets: 15-20MB tiles β†’ 8-10MB via clustering + vector optimization β€’ Fonts: 165KB β†’ 32KB via subsetting and self-hosting **5. Rendering Performance Review:** β€’ Property list renders 2,000 items without virtualization (10MB DOM) β€’ Map renders 5,000 individual marker listeners (no event delegation) β€’ Infinite scroll causes full list re-render on every scroll event β€’ Comparison tool performs expensive DOM calculations synchronously **6. Network & API Assessment:** β€’ Property images load sequentially (2,000ms for 2,000 images β†’ should be 150ms with parallel) β€’ GraphQL queries fetch all fields (2.5MB response β†’ 350KB optimal) β€’ No service worker; offline discovery impossible β€’ Geographic latency: Asia-Pacific users experience 1,200-1,500ms additional delay **7. SEO & Accessibility Report:** β€’ Technical SEO: 38/100 (client-side rendering limits indexability; missing schema markup) β€’ Accessibility: 56/100 (WCAG AA failures; virtual tour keyboard inaccessible; missing alt text) β€’ Crawlability: Limited (50,000 properties not indexed; dynamic social previews missing) β€’ Impact: Estimated -25 to -35 position ranking penalty from Core Web Vitals **8. Scalability Readiness: 36/100** β€’ CSR doesn't scale with property catalog (50,000 properties = 2MB+ data) β€’ No SSR/ISR strategy; every property view queries origin β€’ Memory footprint unbounded during long browsing sessions (365MB peak) β€’ Recommendation: Implement Nuxt 3 with ISR by month 2 **9. Top 10 Performance Recommendations:** 1. Implement responsive images (AVIF/WebP) with 5 breakpoints (75% image size reduction; 3.8s β†’ 1.8s LCP) 2. Lazy-load property images with blur-up placeholder (progressive enhancement) 3. Implement map clustering; reduce 5,000 markers to 50-200 clusters (90% marker reduction; unfreezes map) 4. Defer Google Maps API initialization; load after FCP (700ms LCP improvement) 5. Implement vue-virtual-scroller for property list (98% DOM reduction; 300ms scroll improvement) 6. Use event delegation for map marker handlers; consolidate 5,000 listeners to 1 (85MB memory reduction) 7. Optimize GraphQL queries; fetch only needed fields (72% response size reduction; 500ms API latency improvement) 8. Implement service worker with offline-first caching (offline property browsing; 80% cache hit rate) 9. Lazy-load Pannellum virtual tour viewer (92KB deferral; load only when tour button clicked) 10. Implement Netlify Edge Functions with origin shielding (400ms TTFB improvement; geographic optimization) **10. Production Optimization Roadmap:** β€’ Week 1-2: Quick wins (image optimization, lazy-loading, defer third-party scripts) β€’ Week 3-4: Map optimization (clustering, event delegation, marker pooling) β€’ Week 5-6: Rendering refactor (virtual scrolling, component memoization, store normalization) β€’ Week 7-10: Advanced optimization (service worker, edge functions, GraphQL optimization, Nuxt migration) β€’ Projected health score: 44 β†’ 79/100; LCP: 3.8s β†’ 1.5s; INP: 360ms β†’ 140ms; CLS: 0.28 β†’ 0.08; Memory peak: 365MB β†’ 95MB ---
πŸŒ€ Claude

Frontend Performance Intelligence Engine

Add to Cart
Instant accessInstant access
Usage rightsCommercial use
Money-back guaranteeMoney‑back
By purchasing this prompt, you agree to our terms of service
CLAUDE-5-SONNET
Tested icon
Guide icon
4 examples icon
Free credits icon
A beautiful frontend means nothing if it loads slowly. This prompt acts as a Principal Frontend Performance Engineer, analyzing your frontend architecture, rendering pipeline, Core Web Vitals, asset delivery, network performance, caching strategy, and runtime behavior to produce a production-grade optimization roadmap. πŸ“Š Core Web Vitals analysis πŸ–ΌοΈ Asset & bundle optimization strategy βš›οΈ Rendering & React/Vue/Angular optimization 🌐 Network & caching assessment πŸ“ˆ UX performance improvements
...more
Added 3 days ago
Report
Browse Marketplace