Alright, my fellow tech enthusiasts, because I just had one of those afternoons that makes you question your life choices while simultaneously feeling like a total badass. I deployed four apps to four subdomains in a single sitting, and let me tell you, it was a wild ride filled with more code, caffeine, and expletives than I care to admit.
Imagine this: command.shoreagents.ai, staff.shoreagents.ai, and client.shoreagents.ai — all vying for a piece of the Vercel pie, plus our main site. Like opening a Pandora's box of deployment doom, each subdomain came with its own set of build issues. It's like a catastrophic episode of “Survivor: Developer Edition,” but I’m here slaying the competition, one DNS CNAME record at a time.
Setting Up Vercel Projects
First things first, if you haven't set up your Vercel projects yet, honey, start here. It’s not as hard as trying to explain why your dog ate your homework, but let’s just say you'll want to pay attention.
Once you create each project in Vercel, you have to link them to their respective subdomains. Some of you might be wondering about the DNS configuration aspect — well, let me break it down for you. I used Namecheap for DNS management, which is like the “easy button” of domain services. To link your subdomains to Vercel, you need to set up CNAME records like this:
`
Type: CNAME
Host: command
Value: cname.vercel-dns.com
TTL: Automatic
`
Repeat this for each subdomain, and don't screw it up, or some 12-year-old hacker may set up a far cooler site in your subdomain. You don’t want that.
Turborepo Drama
Now, let’s dive into the juicy stuff—the Turborepo integration that decided it was going to throw a wrench in my glorious deployment plans. Because nothing screams “fun” like conflicting build commands, am I right?
Here’s where it got funky. Vercel’s Turborepo kept overriding my meticulously crafted build commands, leading to this delightful mess in my terminal:
`
> tsc --build
error TS5038: Build:Only one of ..../vercel.json and ..../package.json can be used to specify the rootDirectory.
`
Excuse me?! It's like these commands are straight from an incompetent soap opera drama. So I had to sit down, take a deep breath (and a sip of my lukewarm coffee), and start untangling this knot of pain.
Let me get into the nitty-gritty of my vercel.json configuration, which was crucial for defining how each project operates. It looked something like this:
`json
{
"version": 2,
"builds": [
{
"src": "package.json",
"use": "@vercel/next"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "dist/$1"
}
]
}
`
But each app's root directory and output directory were conflicting thanks to some shoddy Turborepo settings. I don't know whose bright idea it was to have multiple settings that all have the same "authority," but c'mon, let’s play nice here.
DNS Without the Headache
You might think, “Hey Reina, how do I fix my DNS records without losing my mind?” Well, just think of it as pacifying cranky toddlers. If you miss one step, they’ll throw a tantrum. Just ensure that your CNAME in Namecheap matches what’s specified in Vercel. After correcting a few CNAMEs and double-checking the values, boom! My apps were finally live.
Another Round of Deployment Shenanigans
Deployment isn't just a one-and-done deal, though. No way, no how. First, I had to push my changes, and I was praying to the deployment gods that nothing would blow up. And just when I thought I was in the clear, guess what?
I still had to deal with different build issues for each app—cue the expletives.
“Mate, what the hell is up with this build filter?” Stephen exclaimed, sounding like he was about to form a heavy metal band with a name inspired by his frustrations. “I’m going to punch a wall if this doesn’t work soon!”
Oh, Stephen, you glorious mess. Together we combated the chaos, tackling manual configurations for each application while sipping on our nervously-timed coffee breaks.
In the end, I managed to triumph against the deployment gods. All four apps were up and running, and I felt like a tech goddess. Inhale the victory!
FAQs
Happy deploying! Remember, the only thing we fear in tech is not launching our apps. So go conquer those subdomains! 😎

