Popup Widget for Your Website

New

Build a popup that appears on a delay, on scroll or on exit intent — then cap how often each visitor sees it. Four layouts, an image, buttons and full styling. Free, no signup, and it works on any website.

When it appears

Waits a few seconds so the page can be read first.
Delay5s

How often one visitor sees it

Devices

Live preview
After a delay
Get 10% off your first order
Join the list for early access to new arrivals and subscriber-only offers.

The preview keeps the popup open so you can style it. On your site it waits for the trigger and respects the frequency you set.

Embed on your site

Write the popup to get your embed code
Add a heading or a message on the Content tab.

About the Popup Widget

Zyff's popup widget builds a website popup you can trigger on a delay, at a scroll depth or on exit intent, and cap so one visitor never sees it twice in a row. Pick a centred modal, a slide-in corner card, a sticky bar or a full-screen takeover, add an image, a heading, a message and buttons, then copy the embed code. It runs entirely in the visitor's browser, so it costs your page nothing on load, and the output is one div and one script tag that works in WordPress, Shopify, Wix, Squarespace, Webflow or a hand-written HTML page alike.

How to add a popup to your website

  1. Choose the trigger

    Show it after a delay, once a visitor has scrolled a share of the page, when their pointer heads for the tab bar, or immediately. Exit intent falls back to a timed trigger on touch devices, where it can never fire.

  2. Cap how often it appears

    Once per visit, once every few days, or on every page view. The first two are remembered in the visitor's own browser, so the popup does not follow them from page to page.

  3. Write it and pick a layout

    Add a heading, a message, an optional image and up to two buttons, then choose a centred modal, a slide-in corner, a sticky bar or a full-screen layout.

  4. Copy the embed code

    Paste the container div and script tag just before your closing body tag, or download the standalone HTML file. Check the 390px mobile preview before you ship it.

What the Popup Widget does

Four triggers, including exit intent

Delay, scroll depth, exit intent or immediate. Exit intent needs a mouse, so on phones it falls back to a timed trigger instead of simply never appearing.

Frequency capping that actually holds

Once per visit uses session storage and once every few days uses a dated flag, so a visitor who closes the popup is not shown it again on the next page they open.

Four layouts

A centred modal over a dimmed page, a slide-in corner card that leaves the content readable, a full-width sticky bar, and a full-screen takeover for one decision.

Always escapable

The Escape key closes the popup whatever else is configured, and if you switch off both the dismiss link and click-outside, the close button stays on rather than shipping a popup nobody can leave.

Phone-only or desktop-only

Target one device class and the widget checks the real viewport in the browser, so a cached page still shows the right thing to each visitor.

Nothing to slow your page

The whole popup runs in the visitor's browser from the settings in your snippet, so it makes no request to Zyff when your page loads, and the entrance animation respects a visitor's reduce-motion setting.

At a glance

TriggersDelay 0-120s, scroll 5-95%, exit intent, or immediate
FrequencyOnce per visit, once every 1-365 days, or every page view
Layouts4 templates: centred modal, slide-in corner, sticky bar, full screen
ContentImage, heading, body up to 600 characters, main button and dismiss link
Device targetingAll devices, mobile only, or desktop only
StylingLight or dark, 5 hex colors, 6 fonts, width 260-720px, radius 0-32px
OutputOne container div plus one script tag, or a downloadable HTML file
PriceFree to build; paid plans for saved widgets

Frequently asked questions

How do I add a popup to my website without a plugin?

Build it in Zyff's popup builder, then copy the generated embed code into your page — one div and one script tag. The whole flow is free with no signup, and the snippet drops into any CMS block that accepts custom code, so you do not need a WordPress plugin or a Shopify app.

How does exit-intent detection work, and does it work on mobile?

Exit intent watches for the pointer leaving the top of the window, toward the tab bar or the address bar. That needs a mouse, so it cannot fire on a phone. Rather than showing nothing there, Zyff's popup falls back to a timed trigger on touch devices — which matters, because mobile is usually the majority of a site's traffic.

Will the popup keep appearing on every page?

Not unless you choose that. Once per visit remembers the dismissal for the rest of the browsing session, and once every few days stores a dated flag in the visitor's own browser. Both are kept per widget, so two popups on one site do not suppress each other.

Can a visitor always close the popup?

Yes, and deliberately so. The Escape key closes it whatever the settings say, so a keyboard visitor is never trapped. If you turn off both the dismiss link and closing by clicking the background, the × button is forced back on rather than letting you ship a popup with no way out — the shape browsers and regulators both treat as a dark pattern.

Can I show the popup only on mobile?

Yes. Choose mobile only or desktop only, and the widget checks the real viewport width in the visitor's browser. That is the part that matters on a cached or statically generated page, where a decision baked in when the page was built would show the mobile-only popup to everyone.

Does the popup slow my page down?

Very little. The whole popup runs in the visitor's browser from the settings baked into your snippet, so it makes no request to Zyff at all when your page loads. You can also switch on lazy loading so it only initialises once the container is scrolled near.

Can I collect email addresses with it?

Not directly — this popup shows a message and links out, so the usual pattern is to point its button at your existing sign-up page or form. A popup that collected addresses itself would mean Zyff storing your visitors' personal data, which is a different product with different privacy obligations.

Where do I paste the popup embed code?

Just before the closing body tag, on every page you want the popup to appear on. Most site builders have a footer or custom-code field that does this for the whole site at once. Keep the container div and the script tag together.

Is the popup widget really free?

Yes. Building a popup, styling it and embedding it are free with no signup, no trial and no watermark — a free embed carries a small "Popup by Zyff" link, which is how the tool stays free. Every trigger and the frequency capping are free too, deliberately: charging for the setting that stops a popup nagging people would be the wrong way round. An optional account saves a widget so you can edit it later, and a paid plan adds the slide-in and full-screen layouts, full colour control and removes the attribution link.

Guides for this tool

Install it on every page, by platform