Что выбрать
Альтернатива Vercel и Netlify, если нужен ещё бэкенд или бот
Коротко
Vercel и Netlify подходят для фронтенда и коротких серверных функций, но не для программ, которые должны работать постоянно: бота на опросе, фонового скрипта, своего сервера. Там код запускается на время одного запроса, и у каждой функции есть предел длительности — от минуты до нескольких минут на бесплатных тарифах. Если в проекте есть такая постоянная часть, её выносят на хостинг приложений вроде Netrun, где проект работает как обычная запущенная программа. Фронтенд при этом можно оставить там, где он уже работает.
- На бесплатном тарифе Vercel Hobby одна функция работает не дольше 300 секунд, на платном Pro — до 800 секунд.
- Обычная функция Netlify ограничена 60 секундами, фоновая — 15 минутами, функция по расписанию — 30 секундами.
- Сам Vercel пишет, что контейнер на его платформе обязан открывать HTTP-сервер, а фоновые воркеры без входящих запросов не поддерживаются.
- Бесплатный тариф Vercel Hobby разрешён только для личного некоммерческого использования: реклама, продажи и оплата за разработку требуют платного тарифа.
- Бот на опросе (long polling) должен работать без остановки, поэтому в модель «функция на один запрос» не помещается.
Vercel и Netlify — лучшее, что случилось с фронтендом: подключили репозиторий, и через минуту сайт на React, Next.js или Astro открывается по ссылке, разложенный по серверам поближе к посетителям. Серверная часть там тоже есть, но в особой форме — функциями. Функция просыпается на один запрос, отвечает и исчезает, а время на ответ у неё ограничено. Для формы обратной связи или обращения к API этого хватает с запасом.
Проблемы начинаются, когда в проекте появляется что-то, что должно работать постоянно: Telegram-бот, который сам опрашивает сервер Telegram, скрипт, который раз в минуту что-то проверяет, свой сервер с WebSocket, долгая обработка файлов. Такую программу некуда положить на площадке, где код живёт только между запросом и ответом. Ниже — как понять, упираетесь ли вы в это ограничение, и что делать, не переезжая целиком.
| Критерий | Vercel | Netlify | Netrun |
|---|---|---|---|
| Для чего сделан | Фронтенд и Next.js, серверная часть — функциями | Статические сайты и фронтенд, серверная часть — функциями | Любой код: сайт, API, бот, фоновый скрипт |
| Сколько живёт серверный код | Один вызов функции: до 300 с на Hobby, до 800 с на Pro | Один вызов функции: 60 с, фоновая — до 15 минут | Проект — постоянно запущенная программа, а не вызов функции |
| Telegram-бот на опросе | Не подходит: нет постоянного процесса | Не подходит: нет постоянного процесса | Работает: бесплатно 3 часа, круглосуточно — на Pro |
| WebSocket | В бета-версии, соединение закрывается по пределу длительности функции | Своего постоянного сервера соединений нет | Работает через ту же ссылку |
| Бесплатный тариф | Только личное некоммерческое использование | Есть, с месячным лимитом использования | Один проект: сайт засыпает без посетителей, бот работает ограниченное время |
| Оплата | В долларах, банковской картой | В долларах, банковской картой | Российская карта, СБП или криптовалюта |
| Сеть доставки контента (CDN) | Встроена | Встроена | Нет |
Определите, из чего состоит ваш проект#
Разделите проект на две части: то, что открывается в браузере (страницы, стили, скрипты), и то, что выполняется на сервере. Если серверной части нет совсем или это пара коротких обработчиков вроде отправки формы, Vercel и Netlify подходят идеально. Если же на сервере есть что-то, что должно работать всё время, а не только в ответ на запрос посетителя, — это и есть та часть, которой на этих площадках неудобно.
Найдите в коде долгоживущие части#
Типичные признаки: бот запускается методом вроде start_polling или bot.launch и крутится бесконечно, в коде есть цикл while True со sleep, сервер держит открытые соединения WebSocket, обработка видео или большой выгрузки идёт дольше минуты. На Vercel и Netlify функция с такой задачей обрывается по таймауту — на Vercel это ошибка 504 FUNCTION_INVOCATION_TIMEOUT. Обходить это перезапусками и внешними будильниками можно, но это хрупкая конструкция.
Оставьте фронтенд там, где он работает#
Переезжать целиком не обязательно. Частая и разумная схема — фронтенд остаётся на Vercel или Netlify, а бот, API или фоновый скрипт уходят на хостинг, который держит программу запущенной. Фронтенд обращается к бэкенду по его адресу, и для этого на стороне бэкенда нужно разрешить адрес фронтенда в настройках CORS — это правило браузера, которое иначе заблокирует запросы между разными адресами.
Подготовьте серверную часть к запуску как обычной программы#
Функции Vercel и Netlify запускает сама площадка, а на хостинге приложений ваш код стартует как обычный сервер. Поэтому серверу нужна точка входа, которая сама поднимает приложение. Сайт или API должен слушать адрес 0.0.0.0 и порт из переменной окружения PORT, а ключи и токены — читать из переменных окружения, а не из кода. Бот на опросе ничего не слушает, ему достаточно токена.
Перенесите ключи и проверьте проект#
Выпишите переменные окружения, которые были заданы в настройках Vercel или Netlify, и перенесите их в секреты нового проекта. В Netrun они хранятся зашифрованными и попадают в переменные окружения при запуске. Перед загрузкой можно бесплатно и без регистрации проверить на странице проверки, определится ли проект и запустится ли он.
Решите, нужна ли круглосуточная работа#
На бесплатном тарифе Netrun сайт засыпает без посетителей и просыпается за несколько секунд при открытии ссылки, а бот или фоновый скрипт работает 3 часа и затем останавливается, сохраняя код и настройки. Для бота, который должен отвечать всегда, и для всего, что держит постоянные соединения, нужен тариф Pro. Оплата разовая на выбранный срок, без автосписаний.
Честный вывод: для чистого фронтенда Vercel и Netlify сложно превзойти — у них встроенная сеть доставки контента и предпросмотр на каждое изменение, а у Netrun CDN нет. Но если в проекте есть бот, фоновая задача или свой сервер, им нужна площадка, где программа работает постоянно. Такую часть можно вынести отдельно, а можно опубликовать весь проект в одном месте: загрузить код архивом, из GitHub или прямо из редактора с ИИ и получить ссылку с HTTPS. Попробовать Netrun.
Частые вопросы
Можно ли запустить Telegram-бота на Vercel?
Только бота на вебхуке, где Telegram сам присылает каждое сообщение на ваш адрес, а функция быстро на него отвечает. Бот на опросе, который сам постоянно спрашивает Telegram о новых сообщениях, на Vercel не работает: функция живёт ограниченное время и останавливается. Такого бота размещают на хостинге, где программа запущена постоянно.
Почему моя функция на Vercel падает с ошибкой 504?
Ошибка 504 FUNCTION_INVOCATION_TIMEOUT значит, что функция не успела ответить за отведённое время. На бесплатном тарифе Hobby это 300 секунд, на Pro лимит можно поднять до 800 секунд. Если задача по своей природе долгая, её лучше вынести в отдельную постоянно работающую программу, а не растягивать лимит.
Можно ли использовать бесплатный Vercel для коммерческого сайта?
По правилам Vercel — нет: тариф Hobby разрешён только для личного некоммерческого использования. Коммерческим считается сайт, который приносит деньги любому участнику проекта, включая рекламу, приём оплаты и оплату за разработку. Просьба о донатах коммерческим использованием не считается.
Можно ли держать фронтенд на Vercel, а бэкенд в другом месте?
Да, это обычная схема. Фронтенд обращается к бэкенду по его адресу, а на бэкенде нужно разрешить адрес фронтенда в настройках CORS, иначе браузер заблокирует запросы. Секреты бэкенда при этом не попадают в код фронтенда.
Как оплатить Vercel или Netlify из России?
Обе площадки выставляют счета в долларах и принимают банковские карты. Карты российских банков за рубежом не работают с 2022 года, поэтому обычно нужна карта зарубежного банка. В Netrun можно заплатить российской картой, через СБП или криптовалютой.
Есть ли в Netrun предпросмотр на каждое изменение, как в Vercel?
Нет, отдельных ссылок-предпросмотров на каждое изменение и автоматической публикации по git push нет. Обновление кода — действие в кабинете или повторная публикация из редактора, ссылка проекта при этом не меняется. Если вы активно пользуетесь предпросмотрами, фронтенд разумно оставить на Vercel или Netlify.
Чем Netrun отличается от Vercel и Render?
Vercel заточен под фронтенд и serverless-функции — не каждый бэкенд или Telegram-бота на нём запустишь. Render ближе по задаче, но это зарубежный сервис, где нужна зарубежная карта. Netrun запускает любой код — сайт, API или бота — принимает оплату российской картой и через СБП и поддерживает на русском.
Можно ли оплатить российской картой или через СБП?
Да. Оплатить тариф или место под проект можно российской картой или через СБП — несмотря на то, что цены показаны в долларах. С карты спишется сумма в рублях по курсу на момент оплаты, зарубежная карта и обмен валюты не нужны. Кроме карты и СБП принимаем криптовалюту.
А React, Vue, Next.js, Nuxt, Svelte или Astro?
Да, все они работают. Загрузите исходный код с package.json — собирать проект у себя и класть готовую сборку в архив не нужно, сборка идёт у нас. Если фреймворк умеет и в готовые страницы, и в серверный режим, подойдут оба варианта: в серверном приложение должно слушать порт из переменной окружения. Одна важная деталь: значения, которые попадают в собранный фронтенд, видны любому посетителю — настоящие ключи держите на стороне сервера.