How to Deploy a Next.js App Without the Headache
Next.js is great. Deploying it shouldn't require a PhD in cloud infrastructure. Whether you're getting started with your first Next.js app or looking for a Vercel alternative, here's a way to get your app live in under two minutes.
The Vercel Question
Let's get this out of the way: Vercel is the default answer for Next.js deployment, and it's a good product. If you're building a serious production app with a team and you want edge functions, analytics, and deep framework integration, Vercel makes sense.
But a lot of Next.js apps don't need all that. You're building a side project, a prototype, an internal tool, or a client demo. You want it online with a URL. You don't want to worry about per-request billing or getting locked into one vendor's proprietary features.
That's the use case DartUp is built for. Flat-rate pricing, deploy in seconds, move on with your life.
How It Works
DartUp runs your Next.js app in standalone mode inside a container. This is actually what Next.js recommends for self-hosted deployments. Theoutput: "standalone"config in next.config.ts tells Next.js to bundle everything into a minimal server that doesn't need node_modules.
DartUp sets this up automatically. You don't have to change your config file or think about it. App Router, Pages Router, API routes, server actions, middleware - it all works.
Step by Step
Build your Next.js app
If you're starting from scratch, Claude Code makes this fast:
You: Create a Next.js app with a landing page
and a /dashboard route with some charts
Creating Next.js application...
✓ Initialized Next.js 16 with App Router
✓ Created landing page with hero section
✓ Created /dashboard with chart components
✓ Styled with Tailwind CSS
Already have a Next.js app? Skip this step. DartUp works with existing projects.
Get your DartUp API key
Sign up at dartup.dev with Google (takes 10 seconds) and create an API key from the dashboard.
Tell Claude your key so it can deploy on your behalf:
You: My DartUp API key is dk_xxxxxxxxxxxx
Deploy
That's the whole step. Say deploy.
You: Deploy this Next.js app to DartUp as "my-dashboard"
Analyzing project...
Detected: Next.js 16 (App Router)
✓ Configured standalone output
✓ Building production bundle...
✓ Container created
✓ Health check passed
Live at: https://my-dashboard.dartup.dev
Your Next.js app is on the internet with HTTPS. Share the link.
What About Environment Variables?
Next.js apps almost always need env vars. Database URLs, API keys, auth secrets. Pass them at deploy time:
You: Deploy to DartUp with these env vars:
DATABASE_URL=postgres://user:pass@host/db
NEXTAUTH_SECRET=my-secret-key
NEXTAUTH_URL=https://my-dashboard.dartup.dev
DartUp encrypts them and makes them available to your running container. They're never visible in logs or the dashboard.
Auto-generated secrets
If your project has a .env.example with common secret names like AUTH_SECRET,SESSION_SECRET, orJWT_SECRET, DartUp generates secure random values automatically. One less thing to configure.
Adding a Database
Most real Next.js apps need a database. DartUp can spin up a Postgres sidecar alongside your app:
You: Deploy to DartUp with a Postgres database
Deploying with database...
✓ PostgreSQL container created
✓ DATABASE_URL injected
✓ Next.js app deployed
Live at: https://my-dashboard.dartup.dev
Your app gets a DATABASE_URL automatically. If you're using Prisma (most Next.js apps are), it just works. MySQL, Redis, and MongoDB are also available.
Pro feature
Sidecar databases require the Pro plan ($29/month). The free tier works great for Next.js apps that use external databases or don't need one.
What About ISR, Server Actions, and Middleware?
Since DartUp runs your Next.js app as a real Node.js server (not a serverless environment), everything that works in development works in production. Server components render on the server. API routes handle requests. Middleware runs. ISR revalidates.
The one thing you don't get is edge runtime. Your app runs in a single region, not distributed globally. For most projects, that's fine. If you need edge distribution, that's when Vercel or Cloudflare makes more sense.
DartUp vs. Vercel for Next.js
Here's an honest comparison:
| DartUp | Vercel | |
|---|---|---|
| Deploy speed | ~60 seconds | ~90 seconds |
| Pricing | Flat rate ($0-$99/mo) | Usage-based (can spike) |
| GitHub required | No | Yes (for auto-deploy) |
| Edge runtime | No | Yes |
| Database included | Yes (Postgres, MySQL, Redis) | Postgres (separate billing) |
| Deploy from AI | Built for it | Manual setup |
Neither is universally better. Vercel wins on edge, analytics, and team features. DartUp wins on simplicity, pricing transparency, and speed of getting something online when you don't need the enterprise stuff.
FAQ
Can I deploy Next.js without Vercel?
Yes. Next.js is a framework, not a Vercel-only product. The standalone output mode works on any platform that can run a Node.js container. DartUp sets this up automatically.
Does DartUp support the App Router?
Yes. App Router, Pages Router, API routes, server actions, middleware — it all works. DartUp runs your Next.js app as a standard Node.js server.
What Next.js versions are supported?
DartUp supports Next.js 13, 14, 15, and 16. It auto-detects your version from package.json and configures the build accordingly.
Can I use a custom domain?
Yes, on the Pro plan. Point an A record or CNAME to DartUp and your Next.js app will be served on your domain with automatic SSL.
Deploy your Next.js app now
Free tier. No credit card. Live in under two minutes.