FeatureMarch 17, 20265 min read

Seamless Redeployments: Update Without Losing Your URL

Until now, redeploying a project on DartUp created a brand new deployment with a brand new URL. Your custom domain, build history, and subdomain were left behind on the old one. That's fixed. Redeployments now update your existing deployment in place.

The Problem

You deploy my-app and get my-app-fb93.dartup.dev. You attach a custom domain. You share the link. Then you fix a bug and deploy again.

Before (the old way)

You: Deploy my-app to DartUp

Live at: https://my-app-x7k2.dartup.dev

Wait... that's a new URL. Where's my custom domain?

The old deployment still had your custom domain and build history. The new one was a blank slate. You'd have to delete the duplicate and reconfigure everything.

The Fix

Now (the new way)

You: Deploy my-app to DartUp

Detected existing deployment "my-app"...

Redeployment successful! (updated existing deployment)

Live at: https://my-app-fb93.dartup.dev

Custom domain: livetabletennistips.com (active)

Build: #4

Same URL. Same custom domain. Build number incremented. Code updated. That's it.

How It Works

DartUp now auto-detects when you're deploying a project that already exists. If there's a running deployment with the same name, the new code is pushed to that deployment instead of creating a new one. No extra flags, no special syntax. Just deploy.

Three things are preserved across redeployments:

  • Your URL — the subdomain stays the same
  • Your custom domain — DNS verification and routing are untouched
  • Your build history — the build number increments with each deploy

Three Ways to Redeploy

1. Auto-detect by name (easiest)

Just deploy with the same project name. DartUp finds the existing deployment and updates it.

Claude Code

You: Deploy my-app to DartUp

Auto-detected existing deployment "my-app"

Redeployment successful!

2. Pass deployment_id (explicit)

If you want full control, pass the deployment ID from list_deployments. This is useful when you have multiple deployments with similar names.

Claude Code

You: List my DartUp deployments

Your deployments (3):

- my-app (running)

ID: cmlbb1iz8000101l80ck2mbkt

URL: https://my-app-fb93.dartup.dev

Custom Domain: livetabletennistips.com

Build: #3

You: Redeploy to deployment cmlbb1iz8000101l80ck2mbkt

Redeployment successful! Build: #4

3. Same subdomain via the API

If you're calling the API directly, send the same subdomain field. The API upserts on subdomain, so sending an existing one triggers an update.

Terminal

$ curl -X POST https://dartup.dev/api/deploy \

-H "Authorization: Bearer $DARTUP_API_KEY" \

-H "Content-Type: application/json" \

-d '{"github_url": "...", "subdomain": "my-app-fb93"}'

Custom Domains Are Now Safe

Previously, redeploying could silently wipe your custom domain even if you didn't intend to change it. The API assumed "no domain sent" meant "remove the domain." That was a bug.

Now, custom domain fields are only updated when you explicitly send a new custom_domain value. Redeploy without mentioning domains, and your existing domain configuration is left completely untouched.

Richer Deployment Listing

The list_deployments tool now shows more context so you can see at a glance which deployment to target:

list_deployments output

- my-app (running)

ID: cmlbb1iz8000101l80ck2mbkt

URL: https://my-app-fb93.dartup.dev

Custom Domain: livetabletennistips.com

Build: #4

- discord-bot (running)

ID: cmn0a2b3c000201of...

URL: https://discord-bot-q9z1.dartup.dev

Build: #1

Type: daemon

What Changes, What Doesn't

ScenarioBeforeAfter
Redeploy same projectNew URL, orphaned old oneSame URL, updated in place
Redeploy with custom domainDomain silently deletedDomain preserved
Build historyResets to #1Increments (#2, #3, ...)
First deploy of new projectRandom subdomainRandom subdomain (unchanged)

FAQ

Does redeploying keep my custom domain?

Yes. Custom domains, DNS verification, and subdomain URLs are all preserved across redeployments. Only the running code changes.

What if I want to deploy a fresh copy instead?

Use a different project name. DartUp only auto-detects by exact name match. A new name creates a new deployment with a new URL.

Does the build number increment?

Yes. Every redeployment increments the build number. You can see it in list_deployments output.

Do I need to update my MCP server?

The auto-detect-by-name feature works with the latest MCP version. Update your DartUp MCP to get the deployment_id parameter and enriched list output. Run: npm install -g dartup-mcp

Ship updates, not duplicates

Deploy and redeploy with confidence. Your URLs, domains, and history stay intact.