Independent benchmark data for AI coding platforms

Lovable, Bolt, or v0 — which one is actually fast?

We gave the same API spec to every major vibe coding platform, deployed to production, and measured real performance. Latency, throughput, database queries, burst capacity — all tested, all public.

How do they compare?

All values in milliseconds — lower is better. Full results →
Platform Rankings — 2026

Which platform wins your category?

Best for prototyping, best API performance, best for enterprise scale — we ranked every platform by what actually matters. See who comes out on top.

See the rankings

Head-to-head

Pick a matchup, see the data

Every pair tested with the same spec, same runner, same day. Click any matchup to see latency, throughput, and burst capacity compared side by side.

What matters most for your project?

How it works

Step 1

Get the spec

Download SPEC.md — a platform-agnostic Notes API with CRUD, search, and aggregation. Two tables, seven endpoints.

Step 2

Give it to your platform

Paste it into Lovable, Bolt, v0 — any vibe coding platform. Ask it to implement the API. Deploy it.

Step 3

Benchmark it

Run the benchmark against the deployed URL. Get ping, CRUD, query, aggregation, and burst metrics. Compare platforms side by side.

The Spec

Notes API — Benchmark Specification v1.0

A REST API for managing notes with tags. Two database tables, seven endpoints, one seed endpoint. No auth, no frontend — pure infrastructure test. Whatever database the platform provides: Postgres, SQLite, anything.

CRUD

Create, read, update, delete — with transactions and tag management

Search + JOIN

Filtered list with pagination, JOIN across notes + tags tables

Aggregation

GROUP BY, COUNT, AVG across 10,000 notes — real database work

Concurrency

Burst of parallel requests — can the platform handle real traffic?

Download SPEC.md
SPEC.md 315 lines
# Notes API — Benchmark Specification v1.0 Build a REST API for managing notes with tags. No authentication. No frontend. Seven endpoints plus a seed endpoint. ## Database Schema Two tables: CREATE TABLE notes ( id SERIAL PRIMARY KEY, title VARCHAR(255) NOT NULL, content TEXT NOT NULL DEFAULT '', category VARCHAR(100) NOT NULL DEFAULT 'general', priority INTEGER NOT NULL DEFAULT 0, is_pinned BOOLEAN NOT NULL DEFAULT false, word_count INTEGER NOT NULL DEFAULT 0, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); CREATE TABLE tags ( id SERIAL PRIMARY KEY, note_id INTEGER NOT NULL REFERENCES notes(id), name VARCHAR(100) NOT NULL ); ## Endpoints GET /api/ping — Health check POST /api/notes — Create note + tags GET /api/notes/:id — Read with JOIN PUT /api/notes/:id — Update + replace tags DEL /api/notes/:id — Delete + cascade GET /api/notes — Filtered list GET /api/notes/stats — Aggregation POST /api/seed — Seed 10,000 notes

What to tell your platform

"Implement this Notes API spec as a server-side REST API. Use whatever database you provide. Enable CORS. Deploy it and give me the base URL."

Run the Benchmark

Two ways to measure

Once your platform has deployed the Notes API, pick whichever method you prefer. Both measure the same things: ping, CRUD, filtered queries, aggregation, and burst capacity.

Option A: Node.js — recommended

Runs from your machine. More accurate, no browser overhead. Requires Node.js 18+.

# Download the benchmark runner curl -sO https://vibecodingbenchmarks.com/benchmark/bench.mjs # Seed the database (only needed once) node bench.mjs https://your-api.example.com/api --seed # Run the benchmark node bench.mjs https://your-api.example.com/api # Compare two platforms side by side node bench.mjs https://api-a.example.com/api \ https://api-b.example.com/api # Quick mode (fewer iterations, faster) node bench.mjs https://your-api.example.com/api --quick

Option B: Browser

No install needed. Paste URLs and benchmark from this website. Results are approximate — limited by browser concurrency.

Paste any Notes API URL and benchmark it live.

Open Live Test

What it measures

ping — Latency to /api/ping, no DB
create — POST /api/notes with tags
read — GET /api/notes/:id with JOIN
update — PUT /api/notes/:id — write + delete + insert
delete — DELETE /api/notes/:id — cascade
list — Filtered query with pagination, JOIN
stats — GROUP BY + COUNT + AVG aggregation
burst — 20-30 concurrent requests

Fair by design

Every platform gets the same spec. No tricks that advantage one over another. SQLite platforms get the same test — the benchmark measures the real consequence of each platform's database choice. The spec, runner, and methodology are all public. If you think our approach is wrong, tell us. Full methodology →