One added benefit of Remix being built on Web Fetch API is that it can run almost anywhere, including Node.js servers like Vercel or Netlify and non-Node.js environments like Cloudflare Workers or Deno Deploy. It's also efficient at the edge, which means it can process data close to the user's location for faster performance.
Meanwhile, the needs of DevOps have reshaped deployment platforms over time. These platforms do more than host websites; they manage version control, builds, rollbacks, scaling, and distribution. While this advancement offers more features and flexibility than ever, choosing the right platform for your project is harder. The choice is crucial because it affects the project's future growth, speed, and upkeep. Each platform has its own strengths, weaknesses, costs, and learning requirements. A poor choice might mean more expense and less effectiveness, and changing platforms later can be tough and disruptive.
For instance, in Remix, we import different modules based on the server runtime environment. Therefore, moving to another deployment option with a different runtime means we will have to change almost all files wherever we use platform-dependent modules. Thus, making an informed decision from the get-go is of utmost importance. It's not just about meeting the current needs but also about future-proofing the project.
This lesson aims to simplify this critical decision-making process by offering a detailed overview of some of the most commonly used frontend deployment platforms: Vercel, Cloudflare, Fly.io, and more. Each section will provide insights into what makes each platform unique and discuss its key features, uses, pricing models, and limitations.
Remember that since Remix needs to render pages on the server for each visit, it can't be hosted on platforms that only serve static sites. It requires platforms that support server-side JavaScript.
Deployment platforms are generally of three types: 1. Long Running Servers, 2. Serverless, and 3. The Edge, each with unique benefits and things to consider.