NetrunHome

What to choose

Vercel and Netlify alternative when you also need a backend or bot

· 6 min read

In short

Vercel and Netlify are built for frontends and short server functions, not for programs that must run all the time, such as a polling bot, a background script or your own server. Your code runs for the length of one request, and every function has a duration cap of one to several minutes on the free plans. If your project has a part like that, move it to an app host such as Netrun, where the project runs as an ordinary long-running program. The frontend can stay where it already works.

  • On the free Vercel Hobby plan a single function can run for at most 300 seconds, and on Pro for up to 800 seconds.
  • A regular Netlify function is capped at 60 seconds, a background function at 15 minutes and a scheduled function at 30 seconds.
  • Vercel itself says a container on its platform must open an HTTP server, and background workers without incoming requests are not supported.
  • The free Vercel Hobby plan is limited to personal non-commercial use, so ads, sales or being paid to build the site require a paid plan.
  • A bot that uses long polling has to run without stopping, so it does not fit the one-function-per-request model.

Vercel and Netlify are the best thing that happened to frontends: connect a repository and a minute later your React, Next.js or Astro site is live, spread across servers close to your visitors. They do run server code too, but in a special form, as functions. A function wakes up for one request, answers and disappears, and it only has so much time to answer. For a contact form or a call to an API that is more than enough.

Trouble starts when the project gets something that has to run all the time: a Telegram bot that keeps polling Telegram for updates, a script that checks something every minute, your own WebSocket server, a long file-processing job. A program like that has nowhere to live on a platform where code exists only between a request and a response. Below is how to tell whether you are hitting that limit, and what to do about it without moving everything.

Vercel, Netlify and Netrun: what you can run where
CriterionVercelNetlifyNetrun
Built forFrontends and Next.js, server code as functionsStatic sites and frontends, server code as functionsAny code: a website, an API, a bot, a background script
How long server code livesOne function call: up to 300 s on Hobby, up to 800 s on ProOne function call: 60 s, background functions up to 15 minutesThe project is a long-running program, not a function call
Telegram bot with pollingDoes not fit: no long-running processDoes not fit: no long-running processWorks: 3 hours for free, around the clock on Pro
WebSocketIn beta, the connection closes at the function duration limitNo long-running server of your own to hold connectionsWorks through the same link
Free planPersonal non-commercial use onlyAvailable, with a monthly usage allowanceOne project: a site sleeps without visitors, a bot runs for a limited time
PaymentIn dollars, by bank cardIn dollars, by bank cardRussian card, SBP or cryptocurrency
Content delivery network (CDN)Built inBuilt inNone
  1. Work out what your project is made of#

    Split the project into two parts: what runs in the browser (pages, styles, scripts) and what runs on the server. If there is no server part at all, or just a couple of short handlers such as a form submission, Vercel and Netlify are a perfect fit. If the server has something that must keep running, not just answer a visitor request, that is exactly the part these platforms handle poorly.

  2. Find the long-running parts in your code#

    Typical signs: the bot starts with something like start_polling or bot.launch and loops forever, there is a while True loop with a sleep, the server holds open WebSocket connections, or processing a video or a large export takes longer than a minute. On Vercel and Netlify a function doing that gets cut off by a timeout, which on Vercel shows up as a 504 FUNCTION_INVOCATION_TIMEOUT error. You can work around it with restarts and external wake-up calls, but the result is fragile.

  3. Keep the frontend where it works#

    You do not have to move everything. A common and sensible setup keeps the frontend on Vercel or Netlify, while the bot, API or background script moves to a host that keeps a program running. The frontend calls the backend at its own address, so the backend has to allow the frontend origin in its CORS settings, a browser rule that otherwise blocks requests between different addresses.

  4. Prepare the server part to run as a normal program#

    Vercel and Netlify start your functions for you, while on an app host your code starts as a regular server. So it needs an entry point that brings the app up by itself. A website or API should listen on 0.0.0.0 and on the port from the PORT environment variable, and read keys and tokens from environment variables rather than from the code. A polling bot listens on nothing and only needs its token.

  5. Move your keys and check the project#

    Write down the environment variables you set in the Vercel or Netlify dashboard and move them into the secrets of the new project. On Netrun they are stored encrypted and passed in as environment variables at start. Before uploading you can check, free and without signing up, whether the project is recognised and will start, on the check page.

  6. Decide whether it needs to run around the clock#

    On the free Netrun plan a website sleeps without visitors and wakes up in a few seconds when the link is opened, while a bot or background script runs for 3 hours and then stops, keeping its code and settings. A bot that must always answer, and anything that holds long-lived connections, needs the Pro plan. You pay once for the period you choose, with no automatic charges.

The honest takeaway: for a pure frontend Vercel and Netlify are hard to beat, with a built-in content delivery network and a preview for every change, and Netrun has no CDN. But if your project has a bot, a background job or its own server, that part needs a platform where a program keeps running. You can move just that part, or publish the whole project in one place: upload the code as an archive, from GitHub or straight from your AI editor, and get an HTTPS link. Try Netrun.

Common questions

Can I run a Telegram bot on Vercel?

Only a webhook bot, where Telegram sends each message to your address and a function answers it quickly. A polling bot, which keeps asking Telegram for new messages itself, does not work on Vercel, because a function lives for a limited time and then stops. A bot like that belongs on a host where the program keeps running.

Why does my Vercel function fail with a 504 error?

A 504 FUNCTION_INVOCATION_TIMEOUT error means the function did not answer within its time limit. On the free Hobby plan that limit is 300 seconds, and on Pro it can be raised to 800 seconds. If the task is long by nature, move it into a separate long-running program instead of stretching the limit.

Can I use the free Vercel plan for a commercial site?

Under Vercel rules, no: the Hobby plan is for personal non-commercial use only. A site counts as commercial if it makes money for anyone involved, including ads, taking payments or being paid to build it. Asking for donations does not count as commercial use.

Can I keep the frontend on Vercel and the backend somewhere else?

Yes, that is a common setup. The frontend calls the backend at its address, and the backend must allow the frontend origin in its CORS settings, otherwise the browser blocks the requests. The backend secrets also stay out of the frontend code that way.

How do I pay for Vercel or Netlify from Russia?

Both bill in dollars and take bank cards. Cards issued by Russian banks have not worked abroad since 2022, so you usually need a card from a foreign bank. Netrun takes a Russian card, SBP or cryptocurrency.

Does Netrun have a preview for every change like Vercel?

No, there are no per-change preview links and no automatic publishing on git push. Updating the code is an action in the dashboard or a new publish from your editor, and the project link stays the same. If you rely on previews a lot, it makes sense to keep the frontend on Vercel or Netlify.

How is Netrun different from Vercel and Render?

Vercel is built for frontends and serverless functions — not every backend or Telegram bot will run there. Render is closer in purpose, but it is a foreign service that needs a foreign card. Netrun runs any code — a website, an API or a bot — accepts payment by Russian card and via SBP and offers support in Russian.

Can I pay with a Russian card or via SBP?

Yes. You can pay for a plan or a place for a project with a Russian card or via SBP, even though prices are shown in dollars. Your card is charged the ruble amount at the current rate — no foreign card and no currency exchange on your side. Besides card and SBP we also accept cryptocurrency.

What about React, Vue, Next.js, Nuxt, Svelte or Astro?

Yes, all of them work. Upload the source code with your package.json — you do not need to build the project yourself or include the built output, the build happens on our side. If your framework can produce both static pages and a server build, either works: in server mode the app should listen on the port from the environment variable. One important detail: values baked into the built front-end are visible to any visitor, so keep real keys on the server side.

Get your own project online

Upload your code, answer a couple of questions and get a working link. There is a free plan

Try Netrun
All blog articles