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.
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
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.
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.
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.
$ 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:
- 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
| Scenario | Before | After |
|---|---|---|
| Redeploy same project | New URL, orphaned old one | Same URL, updated in place |
| Redeploy with custom domain | Domain silently deleted | Domain preserved |
| Build history | Resets to #1 | Increments (#2, #3, ...) |
| First deploy of new project | Random subdomain | Random 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.