Я деплоїв Next.js на всі три: Vercel для 4 проєктів, Cloudflare Pages для 2, і self-hosted (Docker на Railway/Fly) для 3. У кожного свій світ-спот. У кожного свій ціновий обрив.
Це порівняння, яке я хотів би бачити, коли клієнти питають «де хостити?» — реальні цифри, реальні підводні камені, без партнерських посилань.
Таблиця
| Vercel | Cloudflare Pages | Self-hosted (Docker) | |
|---|---|---|---|
| Краще для | Next.js із повним набором фіч | Статика, edge-first застосунки | Повний контроль, передбачуваний білінг |
| Безкоштовний тариф | Щедрий для хобі | Дуже щедрий | Немає (залежить від провайдера) |
| Pro ціна | $20/юзер/міс | $0 (Workers paid: $5/міс) | $5–$30/міс (Railway/Fly/VPS) |
| Хвилини білду | 6000/міс (Pro) | 500/міс (free), 20K (paid) | Без ліміту (свій CI) |
| Bandwidth | 1TB (Pro) | Безлімітний | Залежить від провайдера |
| Serverless-функції | Нативні (Edge + Node) | Workers (V8 isolates) | Немає — запускаєш сервер |
| Cold starts | ~50ms (Edge), ~250ms (Node) | ~0ms (Workers) | Немає (завжди працює) |
| Сумісність із Next.js | 100% (вони його збирають) | ~85% (OpenNext адаптер) | 100% (standalone output) |
Vercel: дефолт, і не дарма
Vercel збирає Next.js. DX неперевершений — пуш у git, деплой за 45 секунд, прев'ю для кожного PR, аналітика вбудована. Кожна фіча Next.js працює в день один, бо вони випускають і фреймворк, і платформу разом.
Де використовую: Клієнтські проєкти, де швидкість розробки важливіша за вартість хостингу. Стартапи, яким потрібно випускати швидко, ітерувати щотижня і не думати про інфраструктуру.
Де дорожчає:
-
Per-seat ціна. $20/юзер/міс на Pro. Команда з 3 людей — $60/міс за хостинг. Для solo-фаундера $20/міс нормально. Для команди з 10 — $200/міс лише за хостинг починає пекти.
-
Виконання функцій. Pro включає 1000 GB-годин serverless-функцій. Якщо запускаєш важкі API-роути (обробка зображень, генерація PDF, агрегація даних) — можна вилетіти за ліміт. В одного клієнта вийшло $85/міс оверажу від фічі PDF-експорту.
-
Bandwidth у масштабі. 1TB включено в Pro. Для контент-сайту або SaaS-дашборду достатньо. Для медіа-важкого застосунку — швидко закінчується.
Реальна вартість для типового SaaS MVP:
| Компонент | Місячна вартість |
|---|---|
| Vercel Pro (1 місце) | $20 |
| База даних (Neon/Supabase) | $0–$25 |
| Домен | ~$1 |
| Моніторинг (Sentry free) | $0 |
| Загалом | $21–$46 |
Cloudflare Pages: ставка на bandwidth
Edge-мережа Cloudflare величезна і bandwidth реально безлімітний на всіх планах. Якщо Next.js-застосунок переважно статичний — Cloudflare Pages значно дешевший за Vercel у масштабі.
Де використовую: Маркетингові сайти, документація та контент-важкі застосунки, де більшість сторінок генерується статично.
Де просідає:
-
Прогалини сумісності з Next.js. Cloudflare використовує OpenNext адаптер. Більшість фіч працює, але не всі: Image Optimization потребує кастомний лоадер,
next/fontпотребує ручної конфігурації, деякі edge cases у middleware поводяться інакше. Я витратив 4 години на дебаг циклу редиректів у middleware, який трапився лише на Cloudflare. -
Ліміти Workers. Cloudflare Workers використовують V8 isolates, не Node.js. Якщо API-роути залежать від Node.js-специфічних API — вони не запрацюють без адаптації.
-
Розмір білду. 25MB ліміт на бандл Worker (після стиснення). Більшість Next.js-застосунків поміщається, але з важкими залежностями можна впертися.
Реальна вартість для контент-сайту:
| Компонент | Місячна вартість |
|---|---|
| Cloudflare Pages (free) | $0 |
| Workers Paid (динамічні роути) | $5 |
| База даних (Neon/D1) | $0–$19 |
| Домен | ~$1 |
| Загалом | $1–$25 |
Self-hosted: ставка на контроль
Self-hosting — Next.js у standalone-режимі, Docker-контейнер, деплой на Railway, Fly.io, VPS (Hetzner, DigitalOcean) або свою інфраструктуру.
Де використовую: Проєкти з передбачуваним білінгом, важкою серверною обробкою або специфічними вимогами до інфраструктури.
Де блищить:
-
Передбачуваний білінг. $6/міс Railway або $5/міс Hetzner VPS працює 24/7 без per-request плат, без сюрпризів по bandwidth.
-
Повний Node.js runtime. Жодних обмежень edge-функцій. API-роути можуть використовувати будь-який Node.js-модуль.
-
Фонові задачі. Cron-джоби, воркери черг, тривалі процеси — все поряд із застосунком.
Де болить:
-
Ops на тобі. Деплої, SSL, хелс-чеки, логи, масштабування. На Railway/Fly більша частина покрита. На голому VPS — все вручну.
-
Немає прев'ю-деплоїв за замовчуванням. Потрібно будувати свій пайплайн або обходитися без.
-
Повільніший деплой. Docker-білди 2–5 хвилин vs 45 секунд Vercel.
Реальна вартість для SaaS із фоновою обробкою:
| Компонент | Місячна вартість |
|---|---|
| Railway (Pro, 1 сервіс) | $5–$20 |
| База даних | $5–$20 |
| CI/CD (GitHub Actions free) | $0 |
| Домен | ~$1 |
| Загалом | $11–$41 |
Коли що обирати
Vercel — коли DX та швидкість важливіші за вартість хостингу, використовуєш усі фічі Next.js, потрібні прев'ю-деплої.
Cloudflare — коли застосунок переважно статичний, bandwidth — значна стаття витрат, комфортно з обмеженнями Workers.
Self-hosted — коли потрібен передбачуваний білінг, фонова обробка, повний Node.js runtime без обмежень.
Мій дефолт
Для більшості клієнтських MVP: Vercel Pro. DX-виграш окупається зекономленими годинами розробника. Коли клієнту потрібна фонова обробка або він впирається в стелю вартості Vercel — мігруємо на Railway. standalone output робить це задачею на 2 години.
Обираєш хостинг-стек для Next.js? Напиши — порекомендую виходячи з патерну трафіку, розміру команди та вимог до фіч.