# Publishing Different Obsidian Vaults to Subdomains on Vercel
You already have `jmarshallpittman.com` pointing at your main Digital Garden. This tutorial shows how to publish **additional vaults** as separate websites on subdomains (e.g. `notes.jmarshallpittman.com`, `garden2.jmarshallpittman.com`, etc.).
**Important correction**: You *do* need one small DNS change on Network Solutions for each new subdomain. A CNAME record is required so the subdomain resolves to the correct Vercel project.
## Overview of the Architecture
| Component | What you do | Notes |
|------------------------|--------------------------------------------------|-------|
| **Obsidian vault** | Install Digital Garden plugin + configure it | One vault → one garden |
| **GitHub** | Create a new repository (or use “Deploy to Vercel”) | Each garden has its own repo |
| **Vercel** | Create a new project + add the subdomain | Each garden is its own project |
| **Network Solutions** | Add a CNAME for the subdomain | Points to Vercel’s project-specific target |
| **Digital Garden plugin** | Set Base URL to the subdomain | Ensures correct links, sitemap, etc. |
## Step 1: Create a New Digital Garden (GitHub + Vercel)
1. Go to the official Digital Garden template:
https://github.com/oleeskild/digitalgarden
2. Click **Deploy to Vercel** (or use the template to create a new repo, then import it into Vercel).
3. Give the new project a clear name (e.g. `notes-garden` or `second-vault`).
4. Deploy it. You will get a temporary URL like `notes-garden.vercel.app`.
5. Create a **fine-grained GitHub personal access token** with Contents + Pull requests read/write access limited to this new repository (recommended).
See: https://dg-docs.ole.dev/advanced/fine-grained-access-token
## Step 2: Configure the New Obsidian Vault
In the vault you want to publish to the subdomain:
1. Install and enable the **Digital Garden** community plugin.
2. Open the plugin settings and fill in:
- **GitHub Username**: your GitHub username
- **GitHub Repo**: the exact name of the new repository you just created
- **GitHub Token**: the token you generated
- **Base URL**: leave blank for now (or put the temporary `.vercel.app` URL). You will update this after the subdomain is live.
3. Publish a test note (`dg-publish: true` in frontmatter) to confirm the connection works.
## Step 3: Add the Subdomain in Vercel
1. Open the **new** Vercel project (not your main one).
2. Go to **Settings → Domains**.
3. Click **Add** and enter the full subdomain, for example:
`notes.jmarshallpittman.com`
4. Vercel will show the required DNS record. It will be a **CNAME** with a unique target that looks like:
`cname.vercel-dns-xxxx.com` or `d1d4fc829fe7bc7c.vercel-dns-017.com`
5. Copy that target exactly. Leave the Vercel page open.
## Step 4: Add the CNAME Record at Network Solutions
1. Log in to Network Solutions → Domains → select `jmarshallpittman.com`.
2. Open the **DNS** tab or go to **Advanced Tools → Manage** next to Advanced DNS Records.
3. Click **+ Add Record**.
4. Configure:
- **Type**: CNAME
- **Refers to**: the subdomain only (e.g. `notes`) — do **not** include `.jmarshallpittman.com`
- **Alias to / Points to**: the exact CNAME target copied from Vercel
- **TTL**: default is fine
5. Save the record.
6. Do **not** change the existing A record for `@` or the CNAME for `www` — those stay pointed at your main garden.
## Step 5: Verify and Finalize
1. Wait for DNS propagation (usually minutes to a few hours).
2. Refresh the Domains page in the new Vercel project. The subdomain should show **Valid Configuration**.
3. Vercel will automatically issue an SSL certificate.
4. Once the site loads at `https://notes.jmarshallpittman.com`, go back to the Digital Garden plugin settings in that vault and set the **Base URL** to the full subdomain (e.g. `https://notes.jmarshallpittman.com`).
5. Re-publish a note (or use the publication center) so generated links use the correct domain.
## Repeating for Additional Vaults
For every new vault you want to publish:
1. Deploy a fresh Digital Garden project to Vercel.
2. Configure the plugin in that vault with the new repo + token.
3. Add a new subdomain in that Vercel project.
4. Add one CNAME record on Network Solutions for that subdomain.
5. Update the Base URL in the plugin.
## Troubleshooting
| Problem | Solution |
|---------|----------|
| Subdomain shows Invalid Configuration | Double-check the CNAME target matches Vercel exactly; remove any conflicting records for that hostname |
| SSL certificate pending | Wait for DNS to fully propagate, then refresh Vercel |
| Links still point to the old `.vercel.app` domain | Update the Base URL in the Digital Garden plugin settings and re-publish |
| Two vaults overwriting each other | Make sure each vault is pointed at a **different** GitHub repository |
---
**Sources**:
- [Vercel custom domains](https://vercel.com/docs/domains)
- [Digital Garden documentation](https://dg-docs.ole.dev)
- [Network Solutions Advanced DNS](https://www.networksolutions.com/help/article/manage-dns-adns-records)
You now have a clean pattern: one vault → one GitHub repo → one Vercel project → one subdomain, with a single CNAME on Network Solutions for each new site.