How to Start an Email Newsletter for Your Astro Site
Search traffic comes and goes. An email list is yours. Here's how to add a sign-up form to a static Astro site using a free newsletter service, in about 15 minutes.
Tested on Astro 7.4

In this guide
Google can send you a thousand visitors on Tuesday and nobody on Wednesday. People on your email list come back when you ask them to. A static Astro site can’t send email, but it can show a form that hands the address to a service that can. Here’s the setup.
Step 1: Pick a service
| Service | Free plan | Good for |
|---|---|---|
| Buttondown | First 100 subscribers free | Plain, simple, writes like email should |
| Kit | Free up to 10,000 subscribers | Automations, landing pages, selling things |
| MailerLite | Free to 500 subscribers | A friendly editor and templates |
Prices checked on November 8, 2026. They change. Check before you choose.
We’ll use Buttondown for the steps below. The others work the same way: they give you a form, you paste it.
Step 2: Get your form
Sign up at Buttondown, pick a username, and open Settings, then Embedding. Buttondown shows an HTML form. It’s a <form> with an action pointing at Buttondown and an email field. Copy it.
Step 3: Make a component
Create src/components/Newsletter.astro and paste the form in. Cleaned up, it looks about like this:
<aside class="newsletter">
<h2>Get new guides by email</h2>
<p>One email when something new is published. No spam, unsubscribe any time.</p>
<form action="https://buttondown.com/api/emails/embed-subscribe/YOUR-USERNAME" method="post" target="_blank">
<label>Email <input type="email" name="email" required /></label>
<button type="submit">Subscribe</button>
</form>
</aside>
Use the action address Buttondown gave you, not ours. The target="_blank" opens Buttondown’s confirmation in a new tab, so your reader doesn’t lose your page.
Step 4: Put it where people finish reading
The best spot is the end of a post. Someone who read to the bottom likes what you write. Open your post layout and add:
---
import Newsletter from '../components/Newsletter.astro';
---
And below the content:
<Newsletter />
A second copy in the footer or sidebar is fine. A pop-up is not. Nobody has ever liked a pop-up.
Step 5: Build and test
Run npm run build. The form is in your HTML. We did this on Astro 7.4 and the form rendered exactly as written. Then publish, open a post, and subscribe with your own address. You’ll get the confirmation email. Click it, and you’re subscriber number one.
What to send
Keep a promise and keep it small. “A new guide, when there is one” beats “weekly tips” that stop in week three. Write like you’d write to one person. Put a link to the thing. That’s the whole craft.
Where to go next
- How to make money with an Astro blog. An email list is the asset most of those ideas rest on.
- How to add a contact form, which uses the same form-to-service trick.
Frequently asked questions
Which newsletter service should a beginner use?
Buttondown if you want simple and plain. It's free for your first 100 subscribers. Kit if you want automations and landing pages. It's free up to 10,000 subscribers. Both give you a form to paste.
Can Astro send the emails itself?
No, and you wouldn't want it to. Sending email well is hard. Let a service do it and keep your site as a folder of files.
Do I need a privacy policy?
Yes. If you collect email addresses, say what you do with them. A short, honest page is enough. Ours is linked in the footer.
Stuck on a step?
Check the common errors guide, look up a word in the glossary, or ask the friendly people in the official Astro and EmDash Discords. How to ask so people can help.
