# 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.