Monetizing your newsletter

Enabling Stripe Tax for your newsletter


Stripe Tax is not fully available to all users yet; you need to request an invite.

If you're an author of a paid newsletter — particularly one based in the EU, where VAT is a bit more of a bugbear — dealing with taxes can be a headache.

I highly recommend onboarding to Stripe Tax, which simplifies and automates the process of collecting and reporting taxes.

Buttondown doesn't actually need to do anything in particular to let you take advantage of Stripe Tax. If you are only using your Stripe account for your newsletter.

You'll be setting two default tax codes:

  • A default product tax code of Digital newsletter -- subscription.
  • A default shipping tax code of Shipping. (This doesn't have much of an effect, because digital goods are not shipped.)

Your tax settings page should look like the below:

A screenshot of Stripe's tax settings page
A screenshot of Stripe's tax settings page

Gift subscriptions

Gift subscriptions are available for paid newsletters — they're a way for you to manually gate in a subscriber who you want to receive premium emails even if they haven't paid. (Like, if they're friends or family or something like that.) From Buttondown's perspective, they are a paid subscriber, but the gift recipient will never be prompted to pay and will receive a notification that they've been gifted a premium subscription.

As of right now, gift subscriptions last forever. If you're interested in short-lived gift subscriptions, I recommend setting up a free trial for your paid newsletter!

Disabling the credit card prompt for paid newsletters

If you have a newsletter that is specifically based on free trials or some other bespoke flow, you might find it useful to disable the credit card prompt so prospective subscribers aren't asked to pay as soon as they put in their credit card information.

You can do this by adding the GET param of without_payment_prompt to your URL.

For instance, if you had a paid newsletter at, say,, you'd change it to!

Pay what you want

In particular, Buttondown now supports a Pay What You Want model if you want to allow your subscribers to be patrons and support your writing without gating any specific content. You can head over to the Paid Subscriptions part of your settings page to get started.

Additionally, you can do one of two things if you’re looking for something more akin to a patronage model:

  • Set a payment tier for your paid newsletter and then only release “free” emails. This gives subscribers the ability to sustainably support your writing without actually gating any content behind that subscription.
  • Drop a link in your newsletter to ko-fi or Buy Me a Coffee to let folks support your work if they are so inclined.

Mixing free and paid content

You specify each outgoing email as a "free" post going to all subscribers or a "premium" post going to just paid subscribers.

Letting premium subscribers view old premium emails

To grant your premium subscribers the ability to read your full back catalog, you have two options.

Using the Buttondown interface

If you go to your subscribers page and tap on a subscriber, you'll get a customized Archives link that you can manually send them which contains a full archive of all your posts, free and premium:

A screenshot of a selected subscriber and the concomitant "Archives" button.
A screenshot of a selected subscriber and the concomitant "Archives" button.

Using shortcodes

If you want to provide a link in your emails to each subscriber's paid archive, you can use the following shortcake:


This generates a unique-per-subscriber ID for their paid specific paid archives. Like the link generated through Buttondown's interface, it will expire once the subscriber's paid subscription lapses. A common tactic is to reference it in your footer for all paid subscribers, like so:

{% if subscriber.subscriber_type == "premium" %} You can always view your full
archives [here]({{premium_archive_url}}). {% endif %}


Do paid subscriptions automatically renew?

Yup. By default, a subscriber's paid subscription will automatically renew for the same amount of time as the original subscription at the end of their billing cycle (ie every month or every year), rather than being prompted to pay again. This is deliberate; it generates more revenue for you and is a nicer, more fluid experience for your readers. There's no way to opt out of this behavior; if you're interested in forcing your subscribers to manually renew their subscriptions, you'll want to manage payments outside of Buttondown.

Can I offer a coupon to my subscribers?

Yes, but it requires some manual effort on our end at the moment! Reach out to us with details and we'll get you set up.

Does Buttondown support tiers?

Unfortunately, tiers are not supported at this time.

How do I enable different payment methods for my newsletter, such as ACH?

The payment methods permitted for a newsletter has nothing to do with Buttondown; I let Stripe handle all of the shenanigans and infrastructure there. So really the answer to this question is "you enable payment methods on your Stripe account, and then Bob's your uncle."

This is a little unsatisfying though, and almost assuredly begs the question: "okay, how do I enable payment methods on my Stripe account?"

A lovely question! To quote Stripe's official documentation:

Stripe selects relevant payment methods from payment methods enabled in your Stripe Dashboard. [You can] add support for 20+ payment methods by enabling them in your payment method settings.

In particular, those settings are right here.

How do subscribers cancel their premium subscription?

Cancelling a premium subscription is easy! Just unsubscribe from the newsletter just like any other one.

If you’re interested in remaining a free subscriber, re-subscribe and you’ll be back in business.

Why doesn't Buttondown take a cut?

I have a longer, more rambling answer, but I'll start with the short version: Buttondown makes money by charging for features and infrastructure. Paid newsletters is a feature, not a business model: it is a capability you get.

"But aren't incentives aligned when you take a cut of my profit?", you might find yourself asking.

Well — sort of. It means that my incentives are very well aligned with a certain brand of writer/publication: one who is already making a whole lot of money, who has a very large social graph, and whose path of generating money is solely through paid subscriptions. There are lots of great writers who fit that profile — but most of my favorite newsletters do not. I want to make sure that I focus on the core parts of making Buttondown great: an elegant, useful interface and focus on the writing experience, and I wanted to intentionally choose a pricing model that fits that.

On a more business-minded note, I also feel that the current iteration of most paid subscription platforms — both inside and outside the world of newsletters — is a fairly naive wrapper around platform APIs like Stripe Connect. On a long-term (or even medium-term — say, three-to-five years) horizon, charging rent on top of those abstractions is not sustainable: the margin available for the taking is going to go down to zero, rather than 10% or whatever. It's important that I have a business model that is resilient to that happening.