Curtain drops a beautiful, branded holding page over your site with one script tag — for maintenance windows, soft launches, and client previews. Not a broken error page: a designed one, with a countdown to launch and a way for visitors to be the first to know.
Curtain isn't a grey "503" or a half-loaded shell. It's a full-screen, brandable holding page — your logo, your accent, your headline — so even your maintenance window looks like the rest of your site. A pause that still feels on-brand.
Set a launch date and Curtain renders a live, ticking countdown — days, hours, minutes, seconds — and auto-lifts the overlay the instant you reach it. The site reveals itself on schedule, with nobody touching a thing.
Let interested visitors leave an email so they're first to know when you go live. Addresses land in a PII-minimal, deduped store — a ready-made launch list, with no third-party form service and no tracker bloat.
Hand your client a link like ?curtain_token=preview-2026 and they walk straight past the curtain to the real site — while everyone else still sees the holding page. The token sets a 30-day cookie, so they only need the link once.
Pick the look that fits the moment: centered (logo and message, classic), split (an accent rail beside your content), or minimal (headline and a line, nothing else). Change a single attribute to switch.
Pure HTML/CSS/JS in a Shadow-DOM bubble — zero dependencies, no build step, no framework, no plugin to install. Drop it high in the <head> of WordPress, a static site, Webflow — anything that renders a <script> tag.
One <script> tag high in your <head>, with data-* attributes for your headline, message, logo, and accent color. The overlay paints before the real page does.
Set data-enabled="true" and the branded holding page goes up over your whole site and locks background scroll. Set it back to false and the curtain never shows.
Add data-launch-at and visitors get a live countdown plus a notify-me form. The overlay auto-disables the second your launch time arrives — a scheduled, hands-off go-live.
Give yourself and your client a ?curtain_token= link to slip behind the curtain and check the real site, while the public keeps seeing the holding page until you're ready.
Free covers a real, branded maintenance page with bypass previews. A license adds the launch countdown, email capture, more templates, and multi-site scale.
Curtain is a client-side overlay — it hides your site visually, which is exactly right for maintenance windows, soft launches, and client previews. It is not hard access control: a determined visitor could disable JavaScript and read the underlying markup. If you need true, edge-enforced gating where no markup leaves the server until the visitor authenticates, use Threshold, the edge-auth plugin in this suite.
Configure one or more bypass tokens, then share a link with the token, e.g. https://yoursite.com/?curtain_token=preview-2026. Visiting that URL passes you straight through and sets a curtain_bypass cookie for 30 days, so you only need the link once. Rotate access any time by changing the configured tokens — old cookies stop matching.
No. The free tier is a real, branded holding page forever — your headline, message, logo, and accent on the centered template, plus bypass-token previews and the show/hide JS API. You only need a license for the countdown timer, scheduled go-live, email capture, the split and minimal templates, custom backgrounds, and multi-site use.
On a paid plan, set data-launch-at to an ISO datetime and Curtain shows a live countdown. The moment that time arrives, the overlay auto-disables itself — the curtain lifts and your real site is revealed, no manual step and nobody needing to be awake for it.
Only the raw email (needed so you can actually notify people), a hash of it as the key, the site, and a timestamp — no IP, no user-agent, no page content. The same address yields the same key, so the list dedupes itself, and records carry a 400-day TTL so a launch list doesn't live forever.
Drop the tag high in your <head> without defer and the overlay paints before the real page, so in practice visitors see the curtain first. On a very slow connection there can be a brief flash — that's inherent to any script-tag overlay. If you need a guaranteed no-flash, server-enforced gate, that's Threshold.