How to Deploy Your Sanity Template
Step-by-step guide to take your purchased Sanity-powered template from download to fully live — including Studio setup, environment variables, Vercel deployment, and content population.
So you just purchased a Sanity-powered template. Here is the full process to get it running on a real domain, step by step.
Looking for a static template guide? If your template does not use Sanity, see How to Deploy Your Static Template — it covers Vercel, Netlify, and GitHub Pages.
What You Get
When you purchase a Sanity template from FSEVO, you receive a ZIP file that contains:
- The Astro frontend in
astro/(fully built, production-ready) - The pre-configured Sanity Studio in
sanity/ - Environment variable templates (
.env.examplein each folder) LICENSE.mdwith your license terms- This guide
Step 1 — Download Your Template
Your template arrives as a ZIP file:
- Bought on fullstackevolved.com: use the download link on your order confirmation page. For security it expires after a limited time; if it has, email hello@fullstackevolved.com with your order reference and we will send you a new one.
- Bought on Gumroad: download it from your Gumroad library at any time.
Unzip it. The template has two parts: the website in astro/ and the Sanity Studio in sanity/. Install the dependencies in both:
unzip your-template-name-astro-template.zip
cd your-template-name
(cd astro && npm install) && (cd sanity && npm install)
Vercel, Netlify, and GitHub Pages all deploy from a Git repository, so put the code in a private repository of your own:
git init && git add . && git commit -m "Initial commit"
gh repo create your-site --private --source=. --push
(Or create a private repository on github.com and push to it.) Keep it private: the license does not allow publishing the template’s source code.
Step 2 — Create Your Sanity Project
Go to sanity.io/manage and sign in (create a free account if needed).
- Click Create new project
- Give it a name (e.g. your domain name)
- Choose Free plan — it is more than enough
- Note your Project ID — you will need it shortly
- Your dataset is named
productionby default
You now have an empty Sanity backend ready to receive content.
Step 3 — Configure Environment Variables
In the astro/ folder, duplicate .env.example and rename it .env:
cd astro
cp .env.example .env
Open .env and fill in your values:
PUBLIC_SANITY_PROJECT_ID=your_project_id_here
PUBLIC_SANITY_DATASET=production
That is all you need locally. The frontend reads from Sanity’s public CDN, so no API tokens are required for the read-only frontend.
Step 4 — Deploy Sanity Studio
The sanity/ folder is a standalone Sanity Studio app. From the project root, deploy it to Sanity’s free hosting:
cd sanity
npx sanity deploy
When prompted, choose a hostname — this becomes your Studio URL:
https://your-studio-name.sanity.studio
Bookmark this URL. You will use it to manage all your site content.
Step 5 — Populate Your Content
Open your Studio URL in the browser and start adding content.
The schema is pre-built to match the frontend exactly. Every field maps directly to what you see on the live site. A few tips:
- Images — upload to Sanity’s media library; they are served via Sanity’s global CDN automatically
- Rich text — use the block editor; headers, links, and lists are all styled on the frontend
- Slugs — click “Generate” next to the slug field; do not type these manually
- Drafts — content stays in draft until you hit “Publish”; the live site will not show it
Start with the most important page (usually the homepage hero and about section) and work outward.
Step 6 — Deploy the Frontend to Vercel (Recommended)
Vercel is our recommended platform for all FSEVO templates — best Astro support, zero-config, and free tier is more than enough for most projects.
Go to vercel.com, sign in, and click Add New Project.
- Import the repository you pushed in Step 1
- Set Root Directory to
astro. Vercel then auto-detects Astro, and the build settings are correct by default - Before deploying, go to Environment Variables and add:
PUBLIC_SANITY_PROJECT_ID→ your project IDPUBLIC_SANITY_DATASET→production
- Click Deploy
Your site will be live at your-project.vercel.app in about 60 seconds.
Step 7 — Connect a Custom Domain
In your Vercel project, go to Settings → Domains and add your domain.
Vercel will show you the DNS records to add. Go to your domain registrar (Namecheap, Cloudflare, GoDaddy, etc.) and add:
- An A record pointing to Vercel’s IP:
76.76.21.21 - Or a CNAME pointing to
cname.vercel-dns.com(for subdomains)
DNS propagation takes between 1 minute and 24 hours depending on your registrar. Vercel handles HTTPS automatically — no SSL configuration needed.
Step 8 — Set Up Revalidation (Optional but Recommended)
By default, the frontend rebuilds on every Vercel deploy. To trigger a rebuild automatically when you publish content in Sanity:
- In Vercel, go to Settings → Git → Deploy Hooks and create a hook — copy the URL
- In Sanity Studio, install the Vercel Deploy plugin:
cd sanity
npx sanity install @sanity/vercel-deploy
- Add the hook URL to your Studio config
Now every time you hit “Publish” in Sanity, the frontend rebuilds automatically — no manual deploys needed.
Troubleshooting
Content not showing on the live site Make sure you hit Publish in Sanity Studio. Draft content is never sent to the frontend.
Build fails on Vercel
Check that your environment variables are set correctly in the Vercel dashboard. A missing PUBLIC_SANITY_PROJECT_ID is the most common cause.
Images not loading
Your Sanity project ID must match exactly in .env. Double-check the value in sanity.io/manage.
Studio shows “Unauthorized” Go to sanity.io/manage → your project → API → CORS Origins and add your Studio URL and your live domain.
Need Help?
If you run into anything not covered here, email hello@fullstackevolved.com with your order reference and a description of the issue. Response time is under 24 hours.