← Back to blog

    Published on

    Cloud hosting for applications in Brazil: Vercel, Heroku, Render, Railway, and Zenifra compared

    What changes when your users are in Brazil: measured latency to each region, keeping the database next to the application, how scaling works on each platform, and the real cost of paying in US dollars.

    Server distance shows up on every click

    Choosing where to host an application usually starts with the plan price. If your users are in Brazil, the first question should be a different one: which city is the server in.

    On October 30, 2026, we measured from a fiber connection in the São Paulo area how long it takes to open a connection to servers in four regions. The number below is the round-trip time of a packet, the median of seven attempts.

    Server regionMeasured round trip
    São Paulo, Brazil11 ms
    Virginia, US130 ms
    Frankfurt, Germany155 ms
    California, US181 ms

    A first visit to an HTTPS site makes at least three of these trips before receiving the first byte: one to open the connection, one to agree on encryption, and one for the request itself. With the server in Virginia, that is about 390 ms of network time alone. In São Paulo, about 33 ms. Code optimization cannot win back that difference, because it comes from physical distance.

    Your database needs to sit next to your application

    A common mistake is putting the application in Brazil and the database on another continent, or the other way around, because each service came from a different vendor. The math gets ugly fast: a page that runs 20 queries in sequence, with a 130 ms round trip each, spends 2.6 seconds waiting for the database.

    With the application and the database in the same region, the same page waits a few milliseconds. When you compare platforms, check whether the managed database runs in the same region as the application, not just whether the platform offers one. On Zenifra, for example, the application and the database both run in Brazil, and you can link them through a private connection without exposing the database to the internet.

    VPS, big cloud, or platform: three ways to host

    A VPS is a virtual server you manage. You install the system, set up the proxy, renew certificates, apply security updates, and handle backups. It is cheap and flexible, but all of the operations work is yours, including when something breaks at night.

    AWS, Google Cloud, and Azure have regions in São Paulo and offer almost any service you can think of. In return, you assemble the pieces: networking, load balancer, certificates, database, scaling, and permissions. It usually pays off for teams with someone dedicated to infrastructure.

    An application platform (PaaS) such as Vercel, Heroku, Render, Railway, or Zenifra takes your code or a Docker image and handles the build, HTTPS, domain, logs, and scaling. It is the shortest path for teams that want to spend their time on the product, and it is the group this guide focuses on.

    Serverless functions or an always-on application

    Not every platform runs your code the same way. On Vercel, the backend runs as serverless functions: each request triggers an execution that scales on its own and has a maximum duration. As of September 29, 2026, the limit was 300 seconds on the Hobby plan and 800 seconds on Pro. The model works very well for frontends, Next.js, and APIs with short responses.

    Heroku, Render, Railway, and Zenifra run the application as an always-on process, the same way it runs on your machine with npm start or python main.py. This model is a more natural fit for traditional APIs, workers that consume queues, and applications that keep a connection pool to the database.

    Scalable resources in practice

    Scaling vertically means giving each instance more CPU and memory by changing plans. Scaling horizontally means running more copies of the application side by side, with the platform splitting requests between them. Autoscaling does horizontal scaling for you: you set a minimum, a maximum, and a CPU or memory target, and the platform starts and stops instances as load changes.

    For horizontal scaling to work, the application has to be ready for it. Three habits cover most cases:

    • Store login sessions in a database or in a cache such as Valkey or Redis, not in process memory. That way users are not signed out when their next request lands on another instance.
    • Save uploads to file storage (object storage), not to the instance disk, which can be discarded on every deploy.
    • Run scheduled tasks in a single place, such as a Job, so the same email is not sent three times when there are three instances.

    Watch out for plans that sleep

    Free and entry plans often shut the application down when it has no traffic. As of September 29, 2026, Render free web services slept after 15 minutes without requests, and the Heroku Eco dyno, which costs US$5 a month, after 30 minutes. The first visit after that waits for the application to start again. That is fine for testing. For production, check this rule before choosing a plan.

    Dollars, IOF, and cards: the cost that is not on the pricing page

    US platforms bill in US dollars, and almost all of them only accept cards. International purchases on a Brazilian card pay 3.5% IOF, and the amount in reais only shows up on the card statement, converted at the daily exchange rate.

    That creates two problems for a company. The monthly cost changes with the exchange rate even when usage does not. And payment depends on a card with a limit for international purchases, often someone on the team’s personal card.

    Brazilian platforms bill in reais and accept PIX and boleto, which keeps the monthly amount predictable and payment simple for the finance team.

    Side-by-side comparison

    The table brings together what matters most for teams serving users in Brazil. Data for the other platforms was checked on their official pages on September 29, 2026, and Zenifra data on October 30, 2026.

    CriterionVercelHerokuRenderRailwayZenifra
    Region in BrazilYes, São Paulo (gru1), but the default is Washington (iad1)No. US and EuropeNo. US, Europe, and SingaporeNo. US, Europe, and SingaporeYes
    How code runsServerless functionsAlways-on processAlways-on processAlways-on processAlways-on process
    Currency and paymentUS dollars, card onlyUS dollars, card onlyUS dollars, card onlyUS dollars, card; invoices only on EnterpriseBrazilian reais: PIX, boleto, or card
    Free startHobby, personal and non-commercial use onlyNo free planWeb service sleeps after 15 min; Postgres expires in 30 daysUS$5 credit for 30 days, then US$1 a month1 app, 1 PostgreSQL, 1 Valkey Cache, and 1 Valkey Queue, plus 5 GB of files
    Managed databaseThrough Marketplace partnersHeroku Postgres, from US$5 a monthRender Postgres, from US$6 a monthPostgreSQL, MySQL, Redis, and MongoDB through templatesPostgreSQL, MariaDB, ClickHouse, and Valkey, from R$ 11.90 a month
    SupportIn EnglishIn EnglishIn EnglishIn EnglishIn Portuguese, by email and WhatsApp

    What a small application with a database costs

    To compare prices fairly, the scenario has to be similar. We took a small always-on application with 512 MB of memory, plus the smallest paid PostgreSQL on each platform.

    PlatformApplicationPostgreSQLMonthly total
    RenderStarter: US$7Basic-256mb: US$6US$13, or US$13.46 with IOF
    HerokuBasic: US$7Essential-0: US$5US$12, or US$12.42 with IOF
    ZenifraBasic: R$ 29.90Starter: R$ 11.90R$ 41.80, no IOF

    With the dollar at R$ 5.50, just as an example, Render’s US$13.46 becomes R$ 74.03 and Heroku’s US$12.42 becomes R$ 68.31. Do the math with the exchange rate on the day your statement closes, and keep in mind that it changes from month to month.

    Vercel and Railway are left out of this math because their billing model is different. On Vercel, a commercial project requires the Pro plan, at US$20 a month with US$20 of included usage, and the database comes from a partner with separate billing. On Railway, you pay the subscription (US$5 on Hobby) plus per-second CPU and memory usage, so the amount changes every month.

    When another platform is the better choice

    Hosting in Brazil is not always the right answer. Another platform tends to fit better when:

    • Most of your users are outside Brazil. Render and Railway have regions in the US, Europe, and Asia, closer to the people using your app.
    • The project is mostly a Next.js frontend. Vercel maintains the framework and serves static files through a CDN with more than 120 points of presence.
    • You depend on specific Heroku add-ons or on Private Spaces for compliance requirements.
    • Your team already runs AWS, Google Cloud, or Azure and needs services that only exist there.

    Checklist before you choose

    Before you sign up for any plan, answer these:

    • Which city will the application and the database run in, and are both in the same region?
    • Does the application run as an always-on process, or does it fit in functions with a time limit?
    • Does the plan you picked sleep when there is no traffic?
    • Can you grow without switching platforms, with more instances, autoscaling, and bigger plans?
    • Which currency is the invoice in, which payment methods are accepted, and how much does IOF add?
    • Does support answer in your language and time zone?
    • How much work is it to leave? A Docker image and standard PostgreSQL make a future migration easier.

    In short

    If most of your users are in Brazil, start with location: the application and the database in the country, in the same region. Then pick the execution model that fits your code, and only then compare prices, adding the exchange rate and IOF when the invoice comes in US dollars.

    That scenario is what led us to build Zenifra. If you want to try it with your own application, your account starts with a project, a PostgreSQL, and a Valkey for free, with no card required, and the calculator shows what your case would cost in reais.

    Estimate my cost in reais

    We respect your privacy

    We use essential cookies to run this site. Measurement and marketing cookies, such as Google Ads, are only enabled when you accept all cookies. Read our cookie policy.