Deployment
Using Ycode Cloud? Deployment is handled automatically. Your site is hosted and managed by Ycode. You can still configure custom domains and redirects from your project settings.
This section covers deployment for the Open Source self-hosted version. Ycode deploys on Vercel with Supabase as the backend.
Setup Wizard
New Open Source installations use a setup wizard at /ycode/welcome. The wizard guides you through:
- Connecting to Supabase
- Running database migrations
- Verifying that the Confirm email setting is disabled in Supabase
- Creating your admin account
Complete the wizard before publishing.
Publishing Flow
Content uses a draft-to-published workflow. This works the same in both Cloud and Open Source:
- Edit pages, components, and CMS content in draft mode
- Preview changes in the editor
- Click Publish when ready
- Published content goes live on your site
Draft changes are not visible to visitors until you publish. You can unpublish to revert to the previous published state.
The Publish Popover
Opening Publish shows a breakdown of everything pending. Pages and Components expand to named items so you can see exactly which ones will go live — pages with an unpublished delete appear struck through, and you can click through to open a changed page directly. Collections, collection items, assets, and layer styles show as counts. When nothing is pending, the popover says everything is up to date.
Cache Revalidation
When you publish, Ycode invalidates only the routes whose content actually changed. A text tweak on a single page purges that page; editing a component or layer style purges every page that uses it; editing a CMS item purges the matching dynamic page plus any collection-list pages that include it. Invalidated routes are then warmed in the background, so the first visitor lands on a cached response instead of a cold render.
Some changes still trigger a full purge because they can affect every page on the site:
- Color variables
- Locales and translation publishes
- Redirects
- Custom code (head and body)
- Site-wide settings (favicon, analytics, etc.)
- Template apply and project reset
For Open Source deployments, configure a REVALIDATE_SECRET environment variable in Vercel so revalidation requests are authenticated. The same selective-vs-full logic applies on both Vercel and self-hosted runtimes.
Clear Cache
Once a site is published, a Clear cache button appears beside the Publish/Update button in the publish popover. It forces a full cache purge of the published site, behind a confirmation dialog. Clearing is normally unnecessary — publishing already refreshes changed pages — but it’s useful on sites with many pages when you want to guarantee every route re-renders. The first visit to each page is slower until it’s cached again.
Made in Ycode
Published and statically exported pages identify themselves in View Source with HTML comments after <!DOCTYPE html> and before <html>:
<!-- Made in Ycode · ycode.com -->
<!-- Published Sep 4, 2026, 10:49 AM UTC -->The Published line uses the last publish time in UTC (Sep 4, 2026, 10:49 AM UTC) and updates on the next publish — including on Ycode Cloud, per page, once that page is regenerated. The builder at /ycode is not stamped.
This is separate from the on-page badge. In Settings → General, Display the "Made in Ycode" badge shows a badge on the live site. On Cloud, disable it after you upgrade to a project plan (Upgrade to a project plan in order to disable the badge.). On self-hosted Ycode the description reads Help support Ycode by displaying this badge on your website.
Custom Domains
Connect your own domain to your Ycode site.
Redirects
Manage URL redirects for moved pages, vanity URLs, and legacy paths.
Security Headers
Configure HTTP security headers (CSP, X-Frame-Options, Referrer-Policy, HSTS, and more) for your published pages from Settings → Security.
Security Headers documentation
Users & Roles
Invite team members and assign roles to control who can change structure, design, and settings versus who can only update content.
Project Reset
You can reset your project to a blank state from Settings > General, in the Danger zone section. Click Reset project and confirm in the dialog. This permanently deletes all pages, collections, assets, forms, and settings. The action cannot be undone.
Project reset is permanent. Create a backup before resetting if you want to preserve your data.
Backup & Restore
Create full project backups and restore them on the same or a different Ycode instance. Backups include all pages, collections, assets, and settings. Use backups to migrate between Cloud and Open Source, create snapshots, or transfer projects.