Я деплоил 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? Напиши — порекомендую исходя из паттерна трафика, размера команды и требований к фичам.