EmailTimer.App

Countdown timers in beehiiv and Substack newsletters

By Danish Mohammed, founder. 5 min read

A newsletter platform decides how much HTML a writer may add, and that decides whether a live countdown is possible at all. beehiiv allows an HTML snippet on Scale and above, so a live timer works there. Substack allows no custom HTML, so the best it can carry is a GIF that starts going out of date the moment it is made.

Jump to beehiiv or Substack. Newsletters sent from Kit or MailerLite have more room, covered in AWeber, Kit and Drip and the MailerLite guide.

beehiiv

Where a timer goes in beehiiv

beehiiv’s article Using HTML in beehiiv posts describes the HTML Snippet. In a post, type / to open the editor menu, and “Under Premium, select HTML Snippet.” Paste the timer snippet into the box, then click Preview to check it.

The snippet is plan-gated. beehiiv’s pricing page, read on 17 September 2026, marks Custom HTML as No on Launch, its $0 plan, and Yes on Scale, Max and Enterprise. On Launch there is no documented way to place a live timer.

beehiiv also lists what the snippet will not keep. Script and style elements “will not be saved”, invalid elements are dropped, and a snippet containing an iframe does not render in the email version. The timer snippet is a link around an image, with inline styles, so none of that touches it. Both beehiiv articles cited here carry a notice that they are being updated for recent releases, so the menus in your account may differ.

One deadline for every reader

The snippet takes the signed image address exactly as the publish screen gives it:

<a href="https://yournewsletter.com/offer" target="_blank" rel="noopener">
  <img src="https://img.emailtimer.app/i/k7mQ2pXd.gif?w=w_8ha3fq&v=3&sig=YOUR_SIGNATURE" alt="Early-bird tickets close Friday at 17:00 UTC" width="600" height="200" border="0" style="display:block; width:100%; max-width:600px; height:auto; border:0;" />
</a>

The ids in that address are examples. This shape is on the free plan. Each reader sees the time left at the moment their mail client fetches the image, so a subscriber who opens on Tuesday and one who opens on Thursday see different numbers. Write the deadline into the alt text too, because some readers have images turned off.

Nothing may be written into that address at send time. Its HMAC signature covers every parameter, so a value beehiiv merged into it would break the match, and every reader would get a grey “image unavailable” card at HTTP 200.

A deadline per subscriber

This is where beehiiv’s documentation runs out. Its merge tags article lists the places merge tags work: email body text, headings, buttons, automation emails and welcome emails. The HTML Snippet is not on that list.

What the HTML article does document for snippets is two email-only macros: {{subscriber_id}}, “A unique identifier for each subscriber”, and {{subscriber_email_hash}}, the “MD5 hash of the user’s email”. Both are written in at send time, so neither can be part of a signed address. That leaves no documented way to put a per-subscriber signed address, held in a custom field, into the snippet’s src, and I would not plan a send around an undocumented one.

If you do test it, remember that beehiiv merge tags are case-sensitive. The article’s example is that “{{First Name}} and {{first name}} are treated as different fields”.

The web version counts too

beehiiv publishes posts to the web as well as by email. A timer image in a web post is fetched by every browser that loads the page, and pricing counts one request for the image as one open. A widely read web post uses opens the same way a send does, so size the plan with both in mind.

Merge tags behave differently there. beehiiv notes that visitors who aren’t logged in “will only see the fallback value”, and the snippet’s email-only macros do not appear in the web version at all.

Substack

What Substack allows

Substack answers the question in one line. Can I edit the CSS or HTML on Substack? says “We do not currently support custom CSS or HTML in the post editor.” That includes the image tag a live timer needs.

Images come in by upload. Substack’s media article says to drag and drop them into the draft, or upload through the Image icon, and a GIF works “just as you would any other image”. The article describes no way to reference an image by its address instead.

What that means for a countdown

An uploaded GIF is a finished file, stored by Substack. Nothing redraws it when a reader opens the email, so it cannot show the time left at that moment. A live countdown is not possible through anything Substack documents.

What you can do is upload a GIF that is correct when you make it. The free countdown timer generator has a Download this GIF button, with a note under it: “A downloaded GIF counts from the moment it was made, not from the moment it is opened.” Make it as close to the send as you can. Count in days rather than seconds, so it stays true for longer.

Then write the deadline as a sentence next to it. “Doors close Friday at 17:00 UTC” stays correct in every inbox, on the web, and in a forwarded copy a week later, which the GIF will not. Treat the sentence as the deadline and the GIF as a picture of it.

Before you upload, run the file through the GIF checker. It reads the frame count, the loop setting and the file size, and says whether frame one covers the whole canvas. Classic Outlook on Windows may show that frame alone.

What your readers will see

On beehiiv, where the image is live, the mail client decides what happens after delivery. Microsoft’s support page says “If only the first frame of the animation appears, you have animations, or animated GIFs, disabled.” A live timer from here draws the time left into that first frame, so the number is right even when it does not move. Apple’s Protect Mail Activity “downloads remote content in the background by default”, so an Apple Mail reader may see the time left at delivery rather than at the open.

The email client support page has each client in turn. It reports what the vendors document, not an inbox test, because I have not yet run one with a timer from here.

Questions and answers

Can I add a countdown timer to a beehiiv newsletter?

Yes, on a plan that includes Custom HTML. beehiiv’s pricing page marks it Yes on Scale, Max and Enterprise and No on Launch. Paste the timer snippet into an HTML Snippet in the post.

Can I add a countdown timer to a Substack post?

Not a live one. Substack does not support custom HTML in the post editor, and images are uploaded as files. Upload a GIF made close to the send, and write the deadline in the text.

Can each beehiiv subscriber get their own deadline?

Not through anything beehiiv documents. Its merge tags article does not list the HTML Snippet among the places merge tags work, and the snippet’s own macros cannot form a signed address.

Do web views of a beehiiv post use my timer opens?

Yes. A browser loading the post fetches the image, and each fetch is one open on the plan here.

Is a downloaded countdown GIF better than nothing on Substack?

Only with the deadline written next to it. The GIF counts from the moment it was made, so every hour between making it and a reader opening it makes the number less true.

Prices checked on 17 September 2026. Vendors change their prices without announcing it, so check the figure you care about before you act on it.

Sources

Related

Put a countdown in the campaign you are writing now

The free plan covers 5,000 opens a month with no card. Starter is $19 a month for 250,000.