D
DevToolsReview

Deploy an App Built with Cursor or Claude Code (2026)

Where to host the app your AI tool wrote: Railway vs Netlify vs Vercel vs Cloudflare, Render and Fly.io by app type, with verified October 2026 prices and deploy commands.

DR

DevTools Review

· Updated October 20, 2026
CursorClaude Code

You have an app that works on localhost. Cursor, Claude Code or Lovable wrote most of it, and now it needs a URL. The hard part is not the deploy command. It is picking a platform whose free tier, pricing model and limits fit the kind of app you actually built.

This guide sorts the six platforms most people end up choosing between (Railway, Netlify, Vercel, Cloudflare, Render and Fly.io) by app type, then covers where the database should live. Every price, limit and command below was checked against the vendor’s own pricing page or docs as of October 2026, with links. Where we couldn’t verify something, we left it out.

Quick answer: which platform for which app

What you builtBest fitWhyRunner-up
Static site, SPA, landing pageCloudflare Workers (static assets)Static asset requests are free and unlimited, and egress is never billedNetlify
Next.js / full-stack JSVercelBuilt by the Next.js team; zero-config deploysNetlify, Railway
Python or Go API + PostgresRailwayLong-running containers, one-click Postgres, usage billing with no seat feesRender
Background workers and cronRailway or RenderReal worker processes and cron schedules down to 5 minutes (Railway)Cloudflare Cron Triggers
Global, latency-sensitive containersFly.ioPer-machine pricing in many regionsRailway

If you’re not sure what you built, ask your AI tool: “Does this app need a long-running server process, or is it static files plus serverless functions?” That one answer settles most of the choice.

Static sites and front-end apps

If npm run build produces a folder of HTML, CSS and JS (Vite, Astro, a React SPA, most Lovable exports), you don’t need a server at all.

Cloudflare Workers (and Pages)

Free tier: 100,000 Worker requests per day and 10 ms of CPU time per invocation. Requests to static assets are free and unlimited. (Workers pricing)

First paid plan: Workers Paid has a $5/month minimum per account. It includes 10 million requests and 30 million CPU milliseconds a month, then $0.30 per additional million requests. There is no charge for egress or bandwidth.

How it scales: Pure usage, no seats. The thing that breaks first is the 10 ms CPU limit on the free plan. Server-side rendering or heavy API logic can hit it.

Deploy, using commands from Cloudflare’s get-started guide:

npm create cloudflare@latest -- my-first-worker
cd my-first-worker
npx wrangler dev      # run locally
npx wrangler deploy   # ship it

Cloudflare Pages still exists, but Cloudflare’s own migration guide says “Workers has a distinctly broader set of features.” For a new project, start on Workers.

Netlify

Free tier: 300 credits a month, as a hard limit. Credits are spent at 15 per production deploy, 20 per GB of bandwidth, 10 per GB-hour of function compute, and 2 per 10,000 web requests. (Netlify pricing)

First paid plan: Personal is $9/month for 1,000 credits. Pro is $20/month for 3,000 credits with unlimited members, so it isn’t billed per seat.

What breaks: On Free, running out of credits pauses your projects until the next billing cycle. Visitors see a “Site not available” page and you can’t buy more credits (Netlify docs). Deploys cost credits too, so an AI-assisted workflow that pushes 20 times a day burns through Free fast.

Deploy (Netlify CLI docs, Node.js 18.14.0 or later):

npm install -g netlify-cli
netlify login
netlify init           # connect a GitHub repo for git-push deploys
netlify deploy         # draft deploy at a unique URL
netlify deploy --prod  # production

netlify deploy runs your build first unless you pass --no-build.

Full-stack JavaScript (Next.js and friends)

Vercel

Free tier (Hobby): One developer seat, 100 GB/month of Fast Data Transfer, 1M function invocations and 4 hours of Fluid Active CPU. Hobby is capped at those limits and you can’t buy extra usage. The FAQ is explicit: “Our Hobby plan is for personal, non-commercial use.” (Vercel pricing)

First paid plan: Pro is $20/month per developer seat, with a $20 usage credit. It includes 1 TB of data transfer, then from $0.15/GB, and function invocations from $0.60 per million. Usage beyond that is uncapped pay-as-you-go.

What breaks: Cron. On Hobby, cron jobs can run only once per day, and timing can drift by up to 59 minutes. An hourly expression fails the deploy (Vercel cron docs). Seat pricing also adds up as the team grows. Vercel no longer has its own Postgres: Vercel Postgres was moved to Neon, and new databases come from the Marketplace.

Deploy (vercel deploy docs):

npm i -g vercel
vercel          # first deploy of a new project is production
vercel --prod   # later production deploys

For git-push deploys, import the repo in the Vercel dashboard. Every push then gets a preview URL.

Next.js elsewhere

Netlify and Railway both run Next.js well. On Cloudflare, the Next.js guide now recommends vinext, a Vite plugin that reimplements the Next.js API surface. The OpenNext adapter is kept for existing apps. Treat Cloudflare as the cheapest host for Next.js, not the most compatible:

npm create cloudflare@latest -- my-next-app --framework=next
npm run deploy

If you’re asking what the cheapest way to host a Next.js app is: Cloudflare Workers Paid at $5/month, with free egress, is hard to beat on price. Vercel Hobby is free but only for non-commercial use. For a commercial app with one developer, Vercel Pro ($20) and Railway Hobby ($5 plus usage) are the realistic choices.

Python or Go API plus a database

FastAPI, Flask, Django and Go services want a long-running process. That favours container platforms.

Railway

Free tier: A 30-day trial with a one-time $5 credit. After that, the Free plan gives $1/month of credit, with services capped at 0.5 GB RAM and 1 vCPU (Railway pricing, trial docs).

First paid plan: Hobby is $5/month, which includes $5 of usage. Pro is $20/month with $20 of usage, and “the fee is per workspace, not per seat.”

Sign up for Railway (affiliate link: you get $20 in Railway credit, and we earn a share of what you pay).

How it scales: Billed per second at about $10 per GB of RAM per month, $20 per vCPU per month, $0.15 per GB of volume storage and $0.05 per GB of egress. Hobby caps volumes at 5 GB. The usual way it breaks is quietly: a memory leak in AI-written code becomes a bigger bill instead of a crash.

Postgres is one click. Add it from the project canvas (cmd/ctrl + k), and it exposes DATABASE_URL to your services (Railway Postgres docs).

Deploy (Railway CLI docs):

npm i -g @railway/cli   # or: brew install railway
railway login
railway init            # new project (or `railway link` for an existing one)
railway up              # deploy the current directory

Railway injects a PORT variable that your app must listen on. If you set a healthcheck path, Railway waits up to 300 seconds for a 2xx response before switching traffic (healthcheck docs).

Render

Free tier: Free web services spin down after 15 minutes without traffic, and each workspace gets 750 free instance hours a month. Free Postgres has 1 GB of storage and expires 30 days after creation. Background workers and cron jobs have no free option (Render free docs).

First paid plan: The Hobby workspace is $0 plus compute. A Starter web service (512 MB, 0.5 CPU) is $7/month, and the smallest paid Postgres (256 MB) is $6/month. The Pro workspace is $25/month plus compute, with unlimited seats. Hobby includes 5 GB of bandwidth, then $0.15/GB (Render pricing).

What breaks: Cold starts on the free tier, which take tens of seconds after 15 idle minutes, and the 30-day Postgres expiry. Both catch people who launched on free and forgot.

Deploy: connect the repo in the dashboard, set a Build Command and Start Command, and turn on auto-deploy so every push to the branch redeploys (Render first deploy). Your server must bind to 0.0.0.0 on the PORT variable, which defaults to 10000 (web services docs).

Fly.io

Free tier: None for new organizations. The trial is limited to 2 hours of Machine runtime or 7 days, whichever comes first (Fly pricing docs).

Paid: No subscription is needed. A shared-cpu-1x 256 MB machine is $2.19/month in Ashburn. Volumes cost $0.15/GB, and egress is $0.02/GB in North America and Europe. Managed Postgres starts at $38/month (Basic, 1 GB) plus $0.28/GB of storage (Fly pricing). Billing is per organization, not per seat.

What breaks: Cost predictability for beginners, and the database line. $38 for Postgres is more than the whole app costs on other platforms, so many Fly users pair it with Neon or Supabase.

Deploy (install, launch):

brew install flyctl       # or: curl -L https://fly.io/install.sh | sh
fly auth signup           # or: fly auth login
fly launch                # scans the project, generates a Dockerfile and config
fly deploy                # redeploy after changes

Background workers and cron

Serverless platforms don’t run a process that never ends. If your app has a queue consumer, a scraper or a bot, you need a container platform.

  • Railway: Set a crontab under the service’s Cron Schedule. Runs must be at least 5 minutes apart, schedules use UTC, and the process must exit when it’s done. If the previous run is still going, the next one is skipped (Railway cron docs).
  • Render: Cron jobs are billed per second, starting at $0.00016/minute for a 512 MB instance. Background workers use the same instance prices as web services.
  • Cloudflare: Cron Triggers bill like normal Worker requests and CPU time, and a cron invocation can use up to 15 minutes of CPU.
  • Vercel / Netlify: Fine for scheduled functions, but not for always-on workers. Vercel Hobby cron is limited to once a day.

Where the database lives

OptionFree tierFirst paidWatch out for
Supabase500 MB per project, 2 active projects, 50,000 MAUsPro from $25/month per org, includes $10 compute credit and 8 GB diskFree projects pause after 1 week of inactivity
Neon100 projects, 100 CU-hours and 1 GB per projectLaunch: pay-as-you-go, $0.106/CU-hour, $0.35/GB-month, no minimumFree compute suspends after 5 minutes idle (cold start)
Railway PostgresCounts against your usage creditUsage-billed like any serviceHobby volumes capped at 5 GB
Render Postgres1 GB, expires after 30 days$6/month (256 MB)Don’t launch a real product on the free instance
Cloudflare D15M rows read/day, 100K written/day, 5 GBIncluded in Workers Paid; 5 GB, then $0.75/GB-monthSQLite-style, not Postgres. Your AI tool must write for it
Netlify DatabaseCredit-based plans onlyUses credits for compute and bandwidthWe couldn’t verify the current storage price

Our rule of thumb: if your AI tool used Supabase for auth and storage (Lovable apps often do), keep Supabase and host the front end anywhere. Otherwise, use the platform’s own Postgres so the app and database share a private network and a single bill.

What a small app costs per month

This is the scenario: one always-on web service (about 512 MB), one small Postgres, about 20 GB of egress, one developer. These are estimates built from published rates as of October 2026, not quotes. Usage-billed platforms will vary with real CPU and memory use.

PlatformEstimateBreakdown
Cloudflare Workers + D1~$5$5 Workers Paid minimum; D1 and egress included at this size
Railway Hobby~$12$5 plan (counts as usage) + ~$10 RAM for app and DB + ~$1 egress + CPU
Render (Hobby workspace)~$15$7 Starter + $6 Postgres + 15 GB over the allowance × $0.15
Vercel Pro + Neon Launch$20 + DB usage$20 seat covers this traffic; Neon billed per CU-hour
Netlify Personal + Supabase Free$91,000 credits ≈ 20 GB (400) + 20 deploys (300) + requests; tight
Fly.io + Managed Postgres~$41$2.19 (256 MB) + $38 Postgres + storage + $0.40 egress

The Cloudflare figure assumes your app can run on Workers and D1. That’s the biggest “if” in the table.

Prompt your AI tool to prep for deploy

Before you push, paste something like this into Cursor or Claude Code. If you haven’t set Claude Code up yet, start with our setup guide.

Prepare this app for deployment to [platform]. Do not change features.
1. List every environment variable the app reads. Create .env.example
   with placeholder values, and confirm .env is in .gitignore.
2. Make the server listen on process.env.PORT (or os.environ["PORT"])
   and bind to 0.0.0.0, not localhost.
3. Confirm package.json / pyproject has correct build and start
   commands, and that the start command does not run a dev server.
4. Add a GET /health endpoint that returns 200 without touching
   external services.
5. Read the database URL from DATABASE_URL, and make migrations a
   separate step rather than running on every boot.
6. Pin the runtime version (engines field, .nvmrc, or .python-version).
Show me the diff before applying.

Review the diff. Agents often hard-code a port or leave localhost in a CORS allow-list. Our guide to reviewing AI-generated code covers what to look for.

Common deploy failures

  1. “Application failed to respond” or a health check timeout. The app is listening on localhost:3000 instead of 0.0.0.0:$PORT. This is the single most common failure on Railway and Render.
  2. Build works locally, fails remotely. A dependency is in devDependencies but needed at runtime, or the lockfile wasn’t committed.
  3. Blank page in production. Front-end env vars weren’t set at build time. NEXT_PUBLIC_* and VITE_* values are baked into the bundle.
  4. Database connection refused. The connection string uses a private hostname from outside the platform’s network, or SSL is required and not enabled.
  5. App works for a day, then dies. The free Render Postgres expired, the Supabase project paused, or the Netlify credits ran out.
  6. Vercel deploy rejected over cron. An hourly schedule on Hobby. Change it to daily or upgrade.

Which AI tool, and what it costs

Deployment platforms are only half the monthly bill. See Cursor pricing and Claude Code pricing for the other half. If you’re still deciding between a builder like Lovable and a coding tool, read AI app builders vs AI coding tools.

FAQ

Where should I deploy an app built with Cursor?

It depends on the app type, not the editor. Static and front-end apps go on Cloudflare or Netlify, Next.js on Vercel, and Python or Go APIs with Postgres on Railway or Render. Cursor’s output is ordinary code, so any of these platforms works.

Railway vs Netlify vs Vercel: which is best in 2026?

They solve different problems. Vercel and Netlify are built for front ends and serverless functions. Railway runs long-lived containers and databases. Choose Vercel for Next.js, Netlify for static sites with forms and functions, and Railway when you need a real server, workers or Postgres.

What is the cheapest way to host a Next.js app?

As of October 2026, Cloudflare Workers Paid at $5/month with free egress is the lowest published price, if your app is compatible with Cloudflare’s runtime. Vercel Hobby is free but limited to personal, non-commercial use. Railway Hobby is $5/month including $5 of usage.

Can I use Vercel’s free plan for a commercial app?

No. Vercel’s pricing FAQ states that Hobby is for personal, non-commercial use. A commercial product needs Pro at $20 per developer seat per month.

Should my database be on the same platform as my app?

Usually, yes. It keeps traffic on a private network and puts everything on one bill. The exception is when your app already depends on Supabase auth or storage. In that case, keep Supabase and host the app wherever suits it.

DR

Written by DevTools Review

We're developers who use AI coding tools every day. Our reviews are based on real-world experience, not press releases. We test with real projects and share what we actually find.

Change tracker

Get told when a price changes

We re-check what all 11 tools cost against each vendor's own pricing page. When something moves — a price, a free tier, a limit — you get an email. When nothing moves, you get nothing.

Confirmation required. Unsubscribe in one click, from any email.