Skip to content

Pick the Fastest Framework for Your SaaS

Your framework choice is one of the hardest decisions to undo. Don't gamble on marketing claims. I've built the exact same SaaS app in 12+ frameworks so you can see real performance before you're locked in.

Frameworks

Each framework runs the exact same sample SaaS analytics dashboard. Click to explore the live demo.

Metrics:
Render mode:
Sort by:
#10
Best CWV
Next.js

Next.js 16 (VPS)

Self-hosted on VPS

SSG SSR ISR Streaming
Bundle 666 KB
TTFB 47 ms
LCP 78 ms
TBT -

React meta-framework. Reference app.

#12
React Router

React Router v7

Self-hosted on VPS

SSG SSR Streaming
Bundle 485.6 KB
TTFB 50 ms
LCP 80 ms
TBT -

Remix evolution. Loaders & actions.

#2
PHP

A La Pieter Levels Stack

Self-hosted on VPS (PHP)

PHP Static
Bundle 188.7 KB
TTFB 44 ms
LCP 66 ms
TBT -

Vanilla PHP + Nginx. Zero overhead.

#9
TanStack

TanStack Start

Self-hosted on VPS

SSR SPA Streaming
Bundle 405.2 KB
TTFB 50 ms
LCP 76 ms
TBT -

Type-safe full-stack React.

#8
Astro

Astro 5

Self-hosted on VPS

Static SSR Islands
Bundle 265.2 KB
TTFB 45 ms
LCP 76 ms
TBT -

Islands architecture. Minimal JS.

#11
Svelte

SvelteKit 2

Self-hosted on VPS

SSG SSR CSR Streaming
Bundle 199.7 KB
TTFB 43 ms
LCP 80 ms
TBT -

Compiler-first. Minimal runtime.

#7
Nuxt

Nuxt 4

Self-hosted on VPS

SSR SSG ISR
Bundle 257.4 KB
TTFB 48 ms
LCP 72 ms
TBT -

Vue meta-framework. Auto-imports.

#3
Fastify

Fastify + React

Self-hosted on VPS

SSR SPA
Bundle 306.8 KB
TTFB 43 ms
LCP 70 ms
TBT -

High-perf Node.js + React SSR.

#5
Smallest
Hono

Hono + htmx

Self-hosted on VPS

SSR htmx
Bundle 47 KB
TTFB 45 ms
LCP 72 ms
TBT -

Hypermedia-driven. Minimal JS.

#1
Best SEO
Next.js

Next.js 16 (Hosted on Vercel)

Hosted on Vercel

SSG SSR ISR Streaming
Bundle 636.6 KB
TTFB 45 ms
LCP 62 ms
TBT -

Edge network. VPS comparison.

#4
Elysia

Elysia + React

Self-hosted on VPS (Bun)

SSR SPA
Bundle 306.8 KB
TTFB 45 ms
LCP 72 ms
TBT -

Bun-native. End-to-end type-safe.

#6
Fastest
Leptos

Leptos

Self-hosted on VPS (Rust)

SSR Hydration WASM
Bundle 1050.2 KB
TTFB 45 ms
LCP 72 ms
TBT -

Rust/WASM. Fine-grained reactivity.

Cloud Hosting

Compare cloud hosting platforms for deploying your framework. Click to see features and performance metrics.

Render mode:
Sort by:
Vercel

Vercel + Next.js

Edge-first deployment

Edge Functions Preview Deploys Analytics
Netlify

Netlify + Next.js

Jamstack pioneer

Edge Functions Forms Identity
Netlify

Netlify + Astro

Jamstack pioneer

Edge Functions Forms Identity
Cloudflare

Cloudflare + Astro

Global edge network

Workers KV Storage R2 Storage
Cloudflare

Cloudflare + Hono + htmx

Global edge network

Workers KV Storage R2 Storage
Cloudflare

Cloudflare + SvelteKit

Global edge network

Workers KV Storage R2 Storage
Render

Render + Next.js

Simple cloud platform

Auto-Deploy Managed DBs Health Checks
Render

Render + Fastify

Simple cloud platform

Auto-Deploy Managed DBs Health Checks
Railway

Railway + Next.js

Developer-first platform

Instant Deploys Postgres Cron Jobs
Railway

Railway + Fastify

Developer-first platform

Instant Deploys Postgres Cron Jobs
Coolify

Coolify + Next.js

Self-hosted PaaS

Self-Hosted Docker Support Zero-Downtime

Framework Performance Comparison

Side-by-side metrics across all frameworks

FrameworkClientTTFBLCPTBTScoreDeps
SvelteKit 2
VPS
199.7 KB 43 ms 80 ms - 98 19
Fastify + React
VPS
306.8 KB 43 ms 70 ms - 99 21
A La Pieter Levels Stack
VPS (PHP)
188.7 KB 44 ms 66 ms - 96 0
Next.js 16
Vercel
636.6 KB 45 ms 62 ms - 96 18
Elysia + React
VPS (Bun)
306.8 KB 45 ms 72 ms - 100 20
Hono + htmx
VPS (Node)
47 KB 45 ms 72 ms - 99 9
Leptos
VPS (Rust)
1050.2 KB 45 ms 72 ms - 98 15
Astro 5
VPS
265.2 KB 45 ms 76 ms - 99 18
Next.js 16
VPS (Node)
666 KB 47 ms 78 ms - 99 18
Nuxt 4
VPS
257.4 KB 48 ms 72 ms - 99 10
TanStack Start
VPS
405.2 KB 50 ms 76 ms - 99 21
React Router v7
VPS
485.6 KB 50 ms 80 ms - 98 22
Next.js 16
VPS (Bun)
666 KB - - - - 19
Hono + htmx
VPS (Bun)
47 KB - - - - 5
Hono + htmx
VPS (Deno)
47 KB - - - - 2
15 frameworks Updated: 1/26/2026

The Problem

  • Framework benchmarks use synthetic "hello world" apps
  • Marketing highlights only each framework's strengths
  • No way to compare "Next.js SSR vs SvelteKit SSR"
  • Choosing a framework is often a one-way door

Our Solution

  • We test using a real analytics SaaS dashboard with charts, forms, and lists
  • Identical app built with each framework idiomatically
  • Same server (for the VPS tests), same Cloudflare config, fair comparison
  • Every rendering mode tested: SSG, SSR, ISR, streaming

What Makes the Best Web Dev Framework?

  • There is no single "best" web dev framework. As a developer, you have to decide what factors are most important to you.
  • Some frameworks offer more features, that come at the cost of slower page load times.
  • Still, it's important to find an optimal balance between speed and features.

Do contact me in case you have comments, feedback or would like to request certain changes to the tested frameworks or testing methodology.

Glossary

Quick reference for technical terms used throughout this comparison.

Rendering Modes

SSG (Static Site Generation)
Pre-rendered at build time, served as static HTML
SSR (Server-Side Rendering)
Generated fresh on each request by the server
ISR (Incremental Static Regeneration)
Static pages that revalidate in the background
CSR (Client-Side Rendering)
Rendered entirely in the browser with JavaScript
Streaming SSR
Progressive HTML delivery as content becomes ready
Islands Architecture
Static HTML with isolated interactive components

Core Web Vitals

LCP (Largest Contentful Paint)
Time until largest visible content element loads. Good: ≤2.5s
CLS (Cumulative Layout Shift)
Visual stability score (lower is better). Good: ≤0.1
INP (Interaction to Next Paint)
Responsiveness to user interactions. Good: ≤200ms
FCP (First Contentful Paint)
Time until first content appears on screen
TBT (Total Blocking Time)
Time main thread was blocked during page load

Performance Metrics

TTFB (Time to First Byte)
Time from request to first byte of response
Client Bundle
JavaScript + CSS sent to browser
Server Bundle
JavaScript running on server (SSR/API)
RPS (Requests Per Second)
Server throughput under concurrent load
Lighthouse Score
Google's performance audit score (0-100)
CDN (Content Delivery Network)
Distributed servers for faster global delivery
Hydration
Making server-rendered HTML interactive on the client

Methodology

How we ensure fair, reproducible comparisons

Same Infrastructure

All frameworks run on the same OVH VPS behind Cloudflare. Only Vercel variant runs on Vercel for comparison.

Idiomatic Code

Each framework uses its recommended patterns. No handicapping with non-idiomatic approaches.

Multiple Runtimes

Node.js, Bun, Rust/WASM, and static serving compared. See how runtime choice affects performance.

Real Metrics

TTFB, bundle size, and TTI measured consistently. SSR paths not cached to measure actual performance.

Statistical Approach

Browser Metrics: 10 samples per mode with linear percentile interpolation. Includes warm-up run.
Server TTFB: Autocannon load test with 3s warm-up, 15s measurement, proper p95 calculation.
Lighthouse: 3 runs per mode, averaged. Reduces typical ±5-10 point variance.
Validation: Impossible values (p50=0, p50>p95) flagged. High variance warnings logged.

About This Project

PickAFramework.com is an open-source project created to help developers make informed framework decisions. The entire codebase, including all framework implementations, is available on GitHub for review and contribution.

Emil Ness @emilnessx