AwakeTab

Keep your readers' screens awake

Recipe blogs, dashboards and documentation sites: give readers a button that keeps their screen from dimming while they follow along. One script tag, the same honest status as AwakeTab itself, in eight languages.

Try it

Both sizes below are the real widget, loaded by the same tag you paste.

Compact · 320 × 96

Full width · kitchen timers

Install: one line

Paste this where the button should appear — inside your recipe card, above the method, or in a sidebar:

<script async src="https://awaketab.com/embed.js" data-mode="cook" data-theme="auto" data-size="compact"></script>

The script replaces itself with a lazy-loaded iframe, reserves its box before it loads (no layout shift), and makes no request to anyone but awaketab.com.

Your snippet

Why the allow attribute matters

Browsers only let an iframe from another site keep the screen awake when the page delegates the permission: allow="screen-wake-lock". The loader always sets it. If your platform strips script tags and you paste the iframe yourself, keep that attribute — without it the widget cannot hold the screen on and shows "Ask the site owner" instead of pretending.

<iframe src="https://awaketab.com/embed/cook?mode=cook&theme=auto&lang=en&size=compact&preset=pinf"
  title="Keep screen awake"
  allow="screen-wake-lock"
  loading="lazy"
  referrerpolicy="strict-origin"
  sandbox="allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"
  style="width:320px;max-width:100%;height:96px;border:0;border-radius:12px"></iframe>
The page also needs HTTPS: a wake lock is only available in a secure context, top to bottom. AMP pages are not supported (amp-iframe cannot delegate the permission).

JavaScript API

The loader exposes window.AwakeTabEmbed: .start(opts), .stop(), .setTheme(theme) and .on('state', callback). Messages are checked by origin in both directions — the widget only listens to the page that embeds it, and the page only to awaketab.com.

<button id="cook">Keep my screen on</button>
<script>
  document.getElementById('cook').addEventListener('click', () => {
    AwakeTabEmbed.start({ preset: 'p60' }); // from a click: the video fallback needs a gesture
  });
  AwakeTabEmbed.on('state', ({ lock, status }) => console.log(lock, status));
</script>

Free, or licensed for your brand

The free widget carries a small "Keep awake by AwakeTab" link. The Embed licence removes it and applies your brand colour. The wake lock and every mode are identical either way — readers never get a worse widget because a site did not pay.

Feature Free Embed licence
Wake lock, honest status, 8 languagesYesYes
Cook mode and kitchen timersYesYes
Attribution linkShownRemoved
Brand colour—Yes
Priority support—Yes
$29 / year per site

One registrable domain, including www. and staging subdomains. Attribution returns quietly if the licence lapses. Business

Get the Embed licence Already bought? Activate your domain

Questions

Will it slow my page down?

The loader is under 3 KB compressed and async; the iframe loads lazily, so a widget below the fold costs nothing until readers scroll to it. It sets no cookies and calls no third party.

Does it keep the screen on when the reader switches tabs?

No. Browsers release a wake lock when the page is hidden; the widget shows "Paused — tab hidden" and re-acquires when the reader comes back.

Is there a WordPress plugin?

Not yet. Paste the tag into a Custom HTML block or your theme's recipe template; the plugin will output the same tag when it ships.