Skip to content

Nr 11 Deployment

DodaTech 4 min read

title: "Next.js vs Remix — Deployment Options Compared" description: "Compare deployment options for Next.js and Remix including Vercel, Cloudflare, Netlify, Docker, and traditional Node.js hosting." weight: 21 date: 2026-06-28 lastmod: 2026-06-28 tags: [frameworks, react]

Deployment options differ significantly between Next.js and Remix. Next.js is optimized for Vercel. Remix is portable across platforms through its adapter system.

What You'll Learn

You will understand deployment options for both frameworks, platform support, configuration, and how each affects hosting costs and performance.

Why It Matters

Deployment affects hosting costs, performance, scalability, and operational complexity. Some frameworks constrain your hosting choices.

Real-World Use

DodaTech deploys Next.js sites on Vercel for static content and Remix apps on Cloudflare Workers for global edge deployment.

flowchart LR
    subgraph Next[Next.js Deployment]
        A1[Vercel] --> B1[Best performance]
        A2[Node.js] --> B2[Manual config]
        A3[Docker] --> B3[Self-hosted]
        A4[Static Export] --> B4[Any static host]
    end
    subgraph Remix[Remix Deployment]
        C1[Vercel] --> D1[Adapter needed]
        C2[Cloudflare] --> D2[Native support]
        C3[Netlify] --> D3[Adapter needed]
        C4[Node.js] --> D4[Adapter needed]
        C5[Docker] --> D5[Manual config]
    end
    style Next fill:#121212,color:#fff
    style Remix fill:#1a1a2e,color:#fff

Next.js on Vercel

Vercel is the primary deployment platform for Next.js, providing the best performance and feature support.

// next.config.js
module.exports = {
  // Automatic configuration when deployed on Vercel
  // No additional setup needed
};

Expected output: Deploy directly from Git. Vercel detects Next.js, configures builds automatically, and provides ISR, Edge Functions, and Analytics out of the box.

Next.js Self-Hosted

Next.js can run on any Node.js server or in Docker containers.

FROM node:20-alpine
WORKDIR /app
COPY . .
RUN npm install && npm run build
EXPOSE 3000
CMD ["npm", "start"]
// next.config.js for self-hosting
module.exports = {
  output: 'standalone', // Optimized for Docker/self-hosting
};

Expected output: A Docker image running Next.js on port 3000. The standalone output reduces the image size by excluding dev dependencies.

Next.js Static Export

Next.js can export to static HTML for hosting on any static file server.

// next.config.js
module.exports = {
  output: 'export',
  images: { unoptimized: true },
};

Expected output: Running next build generates an out/ directory with static HTML, CSS, and JS files. Deploy to any static host (Netlify, S3, Nginx).

Remix Deployment with Adapters

Remix uses adapters for different deployment targets.

// remix.config.js for Cloudflare Pages
module.exports = {
  serverModuleFormat: 'esm',
  server: './server-cloudflare.ts',
  serverPlatform: 'neutral',
};

// Install: npm install @remix-run/cloudflare-pages
// remix.config.js for Vercel
module.exports = {
  serverModuleFormat: 'cjs',
  server: './server-vercel.js',
  serverPlatform: 'node',
};

// Install: npm install @remix-run/vercel

Expected output: Each adapter configures Remix for the target platform. The same application code works across platforms with different configurations.

Platform Feature Support

Next.js features vary by deployment platform. ISR, Middleware, and Edge Functions are Vercel-only or require additional configuration elsewhere.

Remix features are consistent across platforms. Server rendering works on all supported adapters. Edge deployment requires platform-specific configuration.

Common Mistakes

  1. Assuming Next.js features work everywhere: ISR, Middleware, and Image Optimization are Vercel-optimized. Self-hosting requires manual configuration for these features.

  2. Not using the correct Remix adapter: Each platform needs its own adapter. Using the wrong adapter causes build or runtime errors.

  3. Forgetting environment variables in production: Next.js requires NEXT_PUBLIC_ prefix for client-side variables. Remix requires LOADER_ENV pattern for client-side variables.

  4. Not configuring the build command: Both frameworks need specific build commands per platform. Check the platform documentation.

  5. Ignoring cold start times: Serverless deployments have cold starts. Both frameworks mitigate this but it varies by platform and region.

Practice Questions

  1. What is the primary deployment platform for Next.js?

Vercel. Next.js is developed by Vercel and optimized for the Vercel platform.

  1. How does Remix handle different deployment platforms?

Through adapters. Each platform has a specific adapter package that configures Remix for that environment.

  1. Can Next.js be deployed on Cloudflare Workers?

Only through static export. Server-rendered Next.js does not run on Cloudflare Workers natively.

  1. What is the benefit of Remix's adapter system?

The same application code deploys to multiple platforms with adapter-specific configuration. No code changes needed.

  1. How do you deploy Remix to Netlify?

Use the @remix-run/netlify adapter. Configure remix.config.js with the Netlify server module.

Challenge

Deploy the same application to two different platforms. For Next.js, deploy to Vercel and a Docker container. For Remix, deploy to Cloudflare Pages and a Node.js server.

Frequently Asked Questions

Does Next.js support edge deployment?

Yes. Next.js supports Edge Runtime for middleware and Edge Functions. Deploy on Vercel Edge Network for global edge execution.

Can Remix deploy to Vercel?

Yes. Use the @remix-run/vercel adapter. Remix runs on Vercel's Node.js serverless functions.

Which platform has faster cold starts?

Vercel has optimized cold starts for Next.js. Cloudflare Workers have near-zero cold starts for Remix edge deployments.

Can I use Docker with Remix?

Yes. Build a Node.js server with the @remix-run/node adapter and containerize it with Docker.

How do I handle environment variables in Remix?

Server-side variables are available in loaders and actions. For client-side variables, use window.ENV pattern set from the loader.

Mini Project

Deploy the same simple application on two platforms. For Next.js, deploy on Vercel and as a static export on Netlify. For Remix, deploy on Cloudflare Pages and a Node.js server. Compare build times, cold starts, and configuration complexity.

What's Next

Compare the Ecosystem of each framework including plugins, libraries, and tooling.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro