How to customize the default Substack subscribe form

September 2, 2026 · 11 min read

Editorial poster reading Customize your Substack subscribe form next to an illustrated signup card

The subscribe form Substack gives you is fine until you put it on your own site. Then it stops looking like your site. The fonts are not yours, the button colour is not yours, and there is no room for the one sentence that actually convinces someone to sign up.

This walkthrough shows how to build a subscribe form in Quillo that matches your brand, where the signup still lands in your Substack list, and what you get on top: stored entries with delivery status, CSV export, and per form view and submission counts.

Why customize the default Substack form at all

A signup form is a small piece of a page doing a large piece of work. When it looks borrowed, readers hesitate. When it matches the page around it, they treat it as part of the site they already decided to trust.

There are three practical reasons writers move off the default embed:

  • Brand fit. Your own typeface, colours, corner radius, borders and spacing instead of a fixed grey box.
  • Copy control. A heading and a subheading you can write and rewrite, so the promise is clear before the email field.
  • Visibility into signups. The default embed gives you a subscriber count later. A stored entry tells you what happened at the moment someone typed their email.

Quillo does not replace Substack. Your list, your posts and your billing stay on Substack. Quillo is the front end and the record keeping around the signup.

Create your first form in about two minutes

  1. Open Embeds in the Quillo studio and choose New subscribe form.
  2. Paste your publication URL, for example yourname.substack.com. This is the destination every signup is sent to.
  3. Pick a starting template, then edit anything you want.
  4. Copy the snippet and paste it into your site where the form should appear.

You can create as many forms as you like. Most writers end up with a few: one wide form for the homepage, a compact one for the sidebar or footer, and a popup for long articles.

Quillo embed editor showing the basics panel with publication URL, heading and subheading fields
The basics panel: publication URL, heading, subheading and button label.

Start from a template, then make it yours

Templates exist so you do not start from an empty style sheet. Each one sets colours, fonts, radius and spacing in a way that already looks finished. Minimal Light is quiet and works on almost any site. Bold Dark suits dark sites. Editorial Serif reads like a magazine. Brutalist Pop is loud on purpose. Aurora Glass and Noir and Gold sit at the softer and the more premium ends.

Applying a template only fills in values. Nothing is locked afterwards, so you can take Editorial Serif and swap the accent colour to your brand orange without losing the rest.

Template gallery in the Quillo embed editor with a live preview of the selected subscribe form
Templates on the left, live preview on the right. It updates as you edit.

The style controls, one by one

This is where most of the work happens, and it is all live. The preview beside the panel is the same renderer that runs on your site, so what you see is what visitors get.

Colours and typography

  • Background, text, accent and button colours, each set independently.
  • Font family for the form, plus separate size and weight for the heading and the subheading.
  • Text alignment for the card, so a centred hero form and a left aligned footer form can share one design language.

Borders, radius, padding and gaps

  • Card border colour and width, or no border at all when the form sits inside an existing box.
  • A separate border for the email input, which matters on dark backgrounds where a borderless field disappears.
  • Corner radius from square to fully rounded.
  • Card padding, and the gap between the heading, the subheading and the form row.
Style panel in the Quillo embed editor showing colour, typography, border and spacing controls
Style controls with live preview. Every value can be changed after a template is applied.

Layout is a separate choice from styling. Inline puts the field and the button on one row, which is right for wide areas. Card stacks them inside a bordered box. Minimal strips the chrome down to a field and a button for tight spaces like a footer.

Inline, popup and overlay display modes

The same form can appear in different ways. Inline sits in the flow of the page. Popup and overlay modes wait for a trigger and then show the form above the page.

Display mode selector in the Quillo embed editor with inline, popup and overlay options
Display mode decides whether the form sits in the page or waits for a trigger.

Popups have their own settings so they do not become annoying: a delay before showing, a scroll depth trigger, exit intent, and how long to stay quiet after someone dismisses it. Pick one trigger and one frequency rule and leave it there. Two triggers on one page is how you lose the reader you were trying to convert.

Popup settings panel with delay, scroll depth, exit intent and dismissal frequency options
Popup triggers and frequency rules, so the same reader is not asked twice in a row.

Offer a reward after signup

A lead magnet works better when the reader gets it immediately. In the reward panel you can set a success message and a link that appears the moment the signup goes through, so the promised guide, template or resource is one click away instead of waiting on an email.

Reward panel with a success message and reward link fields
The reward message and link appear right after a successful signup.

Keep the promise specific. A message that says here is the checklist you asked for, with a working link, does more for trust than a generic thanks for subscribing.

Spam controls that do not punish real readers

Any public form collects junk eventually. Quillo filters the obvious cases without adding a puzzle for humans to solve:

  • A hidden honeypot field that only automated scripts fill in.
  • A minimum time on the form, so submissions that arrive instantly are treated as automated.
  • Filtering of throwaway inbox domains.
  • A per visitor hourly limit, so one source cannot flood a single form.
Spam protection panel showing honeypot, timing and disposable domain filtering options
Spam filtering runs before an entry is stored or counted.

Entries, delivery status, retry and CSV export

This is the part the default embed cannot do. Every signup on a Quillo form can be stored as an entry that only you can read, with the email, the time, the form it came from, and its delivery status.

  • Delivered means Substack accepted the signup.
  • Pending means the signup is stored and waiting on a retry, which happens automatically with a backoff between attempts.
  • Failed means the attempts were used up. You can retry it yourself from the entries list.

Export the list as CSV whenever you want a copy, for a backup or to move it into another tool. If you would rather not store anything, the storage switch on each form turns entries off and the form runs in delivery only mode.

Stored entries are kept for 12 months and then removed automatically. There is also an account ceiling of 50,000 stored entries. Neither of those affects delivery to Substack.

Views, submissions and conversion rate

Each form reports how many times it was seen, how many people submitted, and the conversion rate between the two. Views are counted once per reader per day, so a reader who reloads a page five times does not inflate the number. Bot submissions, instant submissions and throwaway inbox addresses are excluded from the counts.

Analytics have fair use ceilings of 50,000 views and 5,000 submissions per month. When a ceiling is reached, counting pauses for the rest of the month. Signups keep being delivered and stored either way, so nothing you care about stops.

Two forms on two pages with real numbers beside them will teach you more about your headline than any general advice will. Change one thing at a time, wait for a few hundred views, then read the rate.

How the signup reaches Substack

When someone submits, the request is sent from the visitor's own browser to your Substack publication first. That is the path that behaves most like a reader subscribing on your Substack page. If that path is blocked, for example by a browser extension, the entry is captured and delivered from the server instead, then retried on a schedule until it lands.

The practical result is that a signup is not lost because one attempt failed. It is stored, its status is visible, and it keeps trying.

Copy embed code dialog with the script snippet and copy button
Copy the snippet once. Style changes you make later apply without re-pasting the code.

Adding the form to your site

Copy the snippet and paste it into an HTML block, a theme template, or a page builder widget that allows custom code. On WordPress with the Quillo plugin installed you can paste a shortcode instead, using the bare embed id.

[quillo_subscribe id="your-embed-id"]

Because the snippet loads the current version of your form, later style edits show up on your site without touching the page again. You only re-copy the code if you create a different form.

A short checklist before you ship

  1. Read the heading out loud. If it does not say what the reader gets, rewrite it.
  2. Check the form in dark mode and on a phone width.
  3. Confirm the input border is visible against your background.
  4. Submit a test signup and watch it appear as delivered in entries.
  5. Decide whether this form stores entries or runs delivery only.

Questions people ask

Do signups still go to my Substack list?

Yes. Every signup is delivered to the publication URL on the form, so subscribers land in Substack exactly as they would from a Substack signup page. Quillo styles the form and keeps a record of the signup.

Can I use more than one subscribe form?

Yes. You can create as many forms as you need and style each one differently. Every form reports its own views, submissions and conversion rate, which is what makes comparing placements useful.

What happens to a signup if Substack does not respond?

The entry is stored as pending and retried automatically with a backoff between attempts. If the attempts run out it is marked failed and you can retry it yourself from the entries list.

Can I turn off entry storage?

Yes. Each form has a storage switch. With storage off, the form runs in delivery only mode: signups are sent to Substack and nothing is stored in Quillo.

How long are stored entries kept?

Stored entries are kept for 12 months and then removed automatically. You can export a CSV copy at any time, and you can delete entries yourself before that.

Will a popup hurt my page experience?

It can if you stack triggers. Choose one trigger, set a dismissal window so the same reader is not asked again immediately, and check it on a phone before you publish.

Set this up in Quillo

Everything described here is part of the studio. The guide has the click by click version if you would rather follow along inside the app.

Keep reading

6 guides published. More as the studio grows.