Skip to content

Performance Monitoring ​

Free Feature - Available on all tiers with unlimited usage

Carla's Performance Monitoring provides real-time insights into your Next.js application's performance, helping you identify bottlenecks, track load times, and ensure optimal user experience.

Overview ​

Performance monitoring is completely free and includes:

  • ✅ Real-time performance tracking
  • ✅ Page load time analysis
  • ✅ API response time monitoring
  • ✅ Resource usage metrics
  • ✅ Historical performance data (90 days on free tier, unlimited on premium)
  • ✅ Device and browser performance breakdown
  • ✅ Geographic performance insights
  • ✅ Custom date range filtering

No credit card required, no usage limits.

Getting Started ​

Performance monitoring is automatically enabled once you install the Carla widget:

bash
# Install widget
npx @interworky/carla-nextjs install

# Start monitoring immediately
npm run dev

Visit your dashboard at interworky.com/dashboard/performance to see real-time metrics.

Key Metrics ​

Page Load Times ​

Track how fast your pages load for real users:

  • First Contentful Paint (FCP) - Time until first content appears
  • Largest Contentful Paint (LCP) - Time until main content loads
  • Time to Interactive (TTI) - Time until page is fully interactive
  • Total Page Load - Complete page load duration

Why it matters: Slow page loads increase bounce rates. Google recommends LCP under 2.5 seconds.

API Response Times ​

Monitor your Next.js API route performance:

  • Average response time per endpoint
  • Slowest endpoints identification
  • Response time trends over time
  • Error rate per endpoint

Example:

/api/users      - Avg 45ms  (✓ Good)
/api/products   - Avg 1.2s  (⚠️ Slow)
/api/checkout   - Avg 320ms (✓ Good)

Core Web Vitals ​

Google's key performance indicators:

  • LCP (Largest Contentful Paint) - Loading performance

    • Good: ≤ 2.5s
    • Needs Improvement: 2.5s - 4s
    • Poor: > 4s
  • FID (First Input Delay) - Interactivity

    • Good: ≤ 100ms
    • Needs Improvement: 100ms - 300ms
    • Poor: > 300ms
  • CLS (Cumulative Layout Shift) - Visual stability

    • Good: ≤ 0.1
    • Needs Improvement: 0.1 - 0.25
    • Poor: > 0.25

Impact: Core Web Vitals affect Google search rankings and user experience.

Resource Usage ​

Track client-side resource consumption:

  • Memory Usage - JavaScript heap size
  • CPU Usage - Script execution time
  • Network Bandwidth - Data transferred per page
  • Cache Hit Rate - How often cached resources are used

Dashboard Features ​

Real-Time Performance View ​

The main dashboard shows:

  1. Performance Score (0-100) - Overall health indicator
  2. Current Metrics - Live data from active users
  3. Trend Charts - Performance over last 24 hours, 7 days, 30 days
  4. Geographic Breakdown - Performance by user location
  5. Device Breakdown - Performance on mobile vs desktop vs tablet

Analyze performance changes over time:

  • Daily Trends - Hour-by-hour performance
  • Weekly Trends - Day-by-day comparison
  • Monthly Trends - Week-by-week analysis
  • Custom Ranges - Select any date range

Use case: Identify if a recent deployment degraded performance.

Slowest Pages ​

Identifies pages with performance issues:

PageAvg Load TimeVisitsScore
/checkout4.2s1,23445 ⚠️
/dashboard1.8s5,67878 ✓
/products1.2s12,34592 ✓

Click any page to see detailed metrics and recommendations.

Performance Alerts ​

Set up alerts for performance degradation:

  • Notify when page load time exceeds threshold
  • Alert on API response time spikes
  • Warn when Core Web Vitals fall below "Good" range
  • Email or dashboard notifications

Example:

⚠️ Alert: /api/users response time increased to 2.1s (threshold: 500ms)
Triggered: Nov 10, 2025 at 2:45 PM

Performance by Device ​

Understand how your app performs across devices:

Mobile Performance ​

  • Typically slower due to network constraints
  • Focus on optimizing critical rendering path
  • Reduce JavaScript bundle size
  • Lazy load images and components

Desktop Performance ​

  • Usually faster, more processing power
  • Watch for memory leaks in long sessions
  • Monitor CPU usage during heavy interactions

Tablet Performance ​

  • Sits between mobile and desktop
  • Consider responsive design impact
  • Test both portrait and landscape orientations

Performance by Location ​

Geographic performance insights:

  • Identify slow regions
  • Consider CDN optimization
  • Understand global user experience
  • Plan infrastructure improvements

Example:

🇺🇸 United States  - Avg 1.2s (✓ Good)
🇬🇧 United Kingdom - Avg 1.8s (✓ Good)
🇦🇺 Australia      - Avg 3.5s (⚠️ Needs improvement)
🇮🇳 India          - Avg 4.2s (❌ Poor)

Action: Consider adding CDN edge locations in slower regions.

Interpreting Performance Data ​

Identifying Bottlenecks ​

Slow Page Loads:

  1. Check LCP - Is main content loading slowly?
  2. Review Network tab - Are there large resources?
  3. Check TTI - Is JavaScript blocking?
  4. Analyze CLS - Are elements shifting?

Slow API Responses:

  1. Identify slow endpoints in dashboard
  2. Check database query performance
  3. Look for N+1 query problems
  4. Consider caching strategies

Performance Score Breakdown ​

Carla calculates an overall performance score (0-100) based on:

  • 40% - Core Web Vitals (LCP, FID, CLS)
  • 30% - Page Load Times
  • 20% - API Response Times
  • 10% - Resource Efficiency

Score Ranges:

  • 90-100 - Excellent performance
  • 75-89 - Good performance
  • 50-74 - Needs improvement
  • 0-49 - Poor performance

Optimization Recommendations ​

Based on performance data, Carla provides actionable recommendations:

Common Recommendations ​

  1. Optimize Images

    • Use Next.js Image component
    • Enable automatic WebP conversion
    • Implement lazy loading
    tsx
    import Image from 'next/image';
    
    <Image src="/hero.jpg" width={800} height={600} loading="lazy" alt="Hero" />;
  2. Code Splitting

    • Use dynamic imports for heavy components
    • Split vendor bundles
    • Implement route-based code splitting
    tsx
    import dynamic from 'next/dynamic';
    
    const HeavyComponent = dynamic(() => import('./HeavyComponent'));
  3. API Optimization

    • Add caching headers
    • Use database indexes
    • Implement pagination
    • Consider API route handlers
    ts
    // app/api/users/route.ts
    export async function GET(request: Request) {
      return NextResponse.json(data, {
        headers: {
          'Cache-Control': 'public, s-maxage=60, stale-while-revalidate=120',
        },
      });
    }
  4. Font Optimization

    • Use Next.js font optimization
    • Preload critical fonts
    • Use font-display: swap
    tsx
    import { Inter } from 'next/font/google';
    
    const inter = Inter({
      subsets: ['latin'],
      display: 'swap',
    });

Exporting Performance Data ​

Export performance data for further analysis:

  1. Go to Dashboard → Performance
  2. Select date range
  3. Click "Export Data"
  4. Choose format: CSV, JSON, or PDF report

Use cases:

  • Share reports with stakeholders
  • Analyze trends in external tools
  • Archive historical data
  • Create custom visualizations

Performance Monitoring Best Practices ​

Regular Monitoring ​

  • Daily: Check performance score and recent trends
  • Weekly: Review slowest pages and API endpoints
  • Monthly: Analyze long-term trends and improvements
  • After Deployments: Verify no performance regressions

Setting Baselines ​

Establish performance baselines for your application:

  1. Deploy to production
  2. Monitor for 1-2 weeks to establish baseline
  3. Set alert thresholds 20% above baseline
  4. Track improvements over time

Example Baselines:

Homepage Load Time: 1.2s (baseline)
  → Alert if exceeds: 1.5s
  → Goal: Reduce to 1.0s

/api/users Response: 85ms (baseline)
  → Alert if exceeds: 120ms
  → Goal: Reduce to 50ms

Testing in Different Conditions ​

Consider performance under various conditions:

  • Network Speed: Test on 3G, 4G, WiFi
  • Device Types: Test on low-end and high-end devices
  • Geographic Locations: Test from different regions
  • Load Conditions: Test under normal and peak traffic

Integration with Development Workflow ​

CI/CD Integration ​

Monitor performance in your development pipeline:

  1. Set performance budgets
  2. Fail builds if performance regresses
  3. Compare before/after deployment metrics
  4. Automate performance testing

Example performance budget:

json
{
  "timings": {
    "firstContentfulPaint": 2000,
    "largestContentfulPaint": 2500,
    "timeToInteractive": 3500
  },
  "resourceSizes": {
    "script": 200000,
    "stylesheet": 50000,
    "image": 500000
  }
}

Local Development ​

While developing, use Carla to:

  1. Test performance impact of new features
  2. Identify slow components early
  3. Validate optimizations before deployment
  4. Compare local vs production performance

Frequently Asked Questions ​

How often is performance data updated? ​

Real-time metrics are updated every 30 seconds. Historical data is aggregated hourly.

Does the monitoring widget impact performance? ​

The Carla widget is optimized for minimal performance impact:

  • Async loading with 1.5s delay
  • ~15KB gzipped bundle size
  • Non-blocking script execution
  • Lazy initialization

Performance overhead: < 50ms on page load.

How long is performance data retained? ​

  • Free tier: 90 days of historical data
  • Premium tier: Unlimited retention

Can I monitor staging environments? ​

Yes! Create separate projects for staging and production:

  1. Generate separate API keys for each environment
  2. Install widget in both environments
  3. View data separately in dashboard

What about Server-Side Rendering (SSR) performance? ​

Carla tracks both client-side and server-side metrics:

  • Server-side rendering time
  • Time to First Byte (TTFB)
  • Hydration time
  • Client-side interactive time

How does Carla compare to Google Analytics? ​

FeatureCarlaGoogle Analytics
Real-time metrics✅ Yes✅ Yes
Core Web Vitals✅ Yes✅ Yes
API monitoring✅ Yes❌ No
Error tracking✅ Yes⚠️ Limited
Next.js specific✅ Yes❌ No
Free tier✅ Unlimited✅ Unlimited

Use both: Carla for Next.js-specific insights, GA for broader analytics.

Next Steps ​

Need Help? ​