Remix gives you a lot of deployment freedom — Node.js servers, edge runtimes, or containers. We compared Fly.io, Railway, Cloudflare Pages, and Netlify across WebSocket support, edge capabilities, free tier, and setup complexity to find the best fit for your Remix app.
remix is a framework that doesn't lock you into one runtime. you can deploy to Node.js, Cloudflare Workers, Deno, or even a custom server — and each path comes with trade-offs. the host you choose determines whether you get WebSockets, how close your database lives to your code, and how fast your cold starts are.1
here's the short version: if you need full Node.js with WebSockets, go with Fly.io. if you want a database baked into your deployment workflow, pick Railway. if edge performance is your top priority, Cloudflare Pages is the play. and if you just want to push to git and be done, Netlify still delivers a great developer experience.1
fly.io runs your Remix app in Docker containers on global edge hardware. you get full Node.js support, which means WebSockets, server-sent events, and any npm package work out of the box. the flyctl CLI handles deployment, and you can colocate your Fly Postgres or Upstash Redis instance next to your app for low-latency data access.1
one reddit user noted that Fly is "more finicky to setup, but works well once deployed" — and importantly, they found the same site was "significantly faster" on Fly compared to Netlify.2
railway is built for developers who want to ship a full stack without thinking about infrastructure. it supports Remix via Node.js deployments and offers one-click Postgres, MySQL, and Redis add-ons that are automatically connected to your app.1
if your Remix app relies on a database for server-rendered pages or real-time features, railway's tight integration saves you from juggling separate hosting and database providers. the deployment model is container-based, so you get the same runtime guarantees as Fly without needing to write a Dockerfile from scratch.
cloudflare pages runs your Remix app on Cloudflare Workers, which means your code executes across 300+ data centers worldwide. this is the best option if you're optimizing for Time to First Byte (TTFB) and global reach — your users get responses from the nearest edge node.1
the trade-off is that you're in the Workers runtime, not Node.js. WebSockets and Node-specific APIs won't work here. but if your Remix app is mostly static content with some server-side logic, Cloudflare Pages is incredibly fast and has a generous free tier.
netlify has been a go-to for Jamstack deployments for years, and it works well with Remix through the @remix-run/netlify adapter. the git-based CI/CD pipeline is the smoothest of the bunch — push to your repo and netlify builds and deploys automatically.1
netlify supports edge functions, but they run on Deno rather than Node.js, so you lose WebSocket support. for a standard Remix app that doesn't need persistent connections, though, netlify's DX is hard to beat.
| feature | fly.io | railway | cloudflare pages | netlify |
|---|---|---|---|---|
| edge support | global containers | global containers | 300+ workers | edge functions (deno) |
| websockets | yes | yes | no | no |
| free tier | limited monthly credits | limited monthly credits | generous | generous |
| setup time | moderate (docker) | low (auto-detect) | low (git push) | low (git push) |
the real decision comes down to containers vs. serverless and which Remix adapter you want to use.
containers (fly.io, railway) give you a full Node.js environment. you can use WebSockets for real-time features, run background jobs, and connect to databases over persistent TCP connections. the downside is you're managing (or paying for) a running server, even when there's no traffic.
serverless / edge (cloudflare pages, netlify) scale to zero and charge per-request. cold starts are a concern, but edge runtimes like Cloudflare Workers minimize them by distributing your code globally. the catch is runtime limitations — no WebSocket, no fs module, and you need to use platform-specific APIs for things like KV storage.
remix handles this with its adapter system. @remix-run/express for Node.js servers, @remix-run/cloudflare-pages for Workers, @remix-run/netlify for Netlify functions. pick your host first, then use the matching adapter — the framework abstracts most of the differences away.1
disclosure: some of the links above are affiliate links. we only recommend products we've researched and believe provide genuine value for remix developers.
This page was written by the engine and the engine is still on the line. The conversation below picks up where the article stops.
Yes — the picks above are the engine's current verdicts. Ask a sharper version of this question below and you'll get a custom answer with the latest pricing.