Deploy site via surge.sh
surge.sh is a static site host that's optimized for quick, public deploys. It's the lightweight counterpart to Netlify in the SleekCMS deploy options — minimal setup, instant URLs, and a good fit for prototypes, demos, and internal previews where you just need a public link.
This page covers the setup, the deploy flow, custom domains, and the trade-offs versus Netlify.
Setup
- Authenticate. From the deploy section, follow the surge.sh setup flow. You'll provide a surge account email or create one inline.
- Pick a subdomain. Surge sites live at
<name>.surge.sh. Choose a name that's unique (e.g.,my-site.surge.sh,acme-prototype.surge.sh). If you have a custom domain, you can configure it after the initial deploy. - Deploy. Click Deploy. The CMS builds the static site and pushes it to surge.
After setup, deploys are one click.
What Happens on Each Deploy
The build-and-push flow is similar to other targets:
- The site builder compiles the current state of your content and templates into static HTML and assets.
- SleekCMS pushes the output to surge.
- Surge serves the new version at your subdomain within seconds.
Surge is intentionally minimalist — there's no separate dashboard, no deploy history, no build logs to review. The current deploy is what's live; previous deploys are overwritten.
Custom Domains
Surge supports custom domains on free and paid plans. To use one:
- Add a CNAME record at your DNS provider pointing your custom domain to
your-name.surge.sh. - Add a file named
CNAMEinpublic/(in your SleekCMS site) containing just your custom domain on one line:
public/CNAME
www.example.com
- Deploy. Surge picks up the CNAME file and serves the site at that domain.
HTTPS for custom domains is available on surge's paid plans. The default *.surge.sh subdomain is served over HTTPS automatically.
If you set a custom domain, also update the site origin in Site Configuration so absolute URLs (canonical links, OG image URLs, RSS feed URLs) match the public URL.
When to Use surge.sh vs. Netlify
| Use surge.sh when | Use Netlify when |
|---|---|
| You want a fast public URL with no configuration | You need a production host with a dashboard and history |
| Prototype, demo, internal preview, time-boxed campaign | Production marketing site, blog, customer-facing pages |
| You're fine without a deploy history or rollback UI | You want one-click rollbacks and deploy diffs |
You want a memorable subdomain (e.g., summer-launch.surge.sh) |
You want a custom domain with managed HTTPS |
Many teams use both — surge for review and prototyping, Netlify for production. You can configure both targets on a single site and deploy to whichever fits.
Limits and Caveats
- No deploy history. Surge replaces the previous deploy. To roll back, you'd need to redeploy a previous content state, which isn't easy from SleekCMS — for production sites where rollback matters, use Netlify.
- No build logs. A failed deploy returns an error but doesn't give you a per-step log. If a deploy fails, check
sync-errors.logfor build-side issues; if the build succeeded but the push failed, the error message from surge typically points at the cause. - HTTPS on custom domains is paid. The default
*.surge.shsubdomain has free HTTPS; custom domains require a paid plan for HTTPS. - No edge functions, redirects, or headers. Surge serves static files only. If you need redirects or custom headers, use Netlify or download the ZIP and host on Cloudflare Pages or Vercel.
What's Next
- Deploying Sites — Overview of all deploy targets and how to choose.
- Deploy site via Netlify — First-class integration with Netlify.
- Static Site Downloads — ZIP export for hosting anywhere.
- Site Configuration — Setting the site origin to match your deployed domain.