Vibecode Buttondown

track this build5 phases, 15 steps, beginner friendly
YES · one-shottable
price $9/moyou'd save $108/yrbuild time multi-daycategory 📮 newslettersreplaced by 0 people

The core loop is small enough for a capable coding agent to produce a useful local version in one sitting. For Buttondown, send Markdown newsletters from a small list with archives and simple automations. The hard boundary is excellent deliverability, hosted simplicity, integrations, and creator-friendly support, plus deliverability, growth network, and integrations.

the project pack5 files · written for this build, step by step
README.md
# Buttondown · indie build

A list you own, sent through a provider you chose, with authentication verified before the first message, one-click unsubscribe in the headers rather than only in the footer, Markdown composition with a web archive, and delivery and complaint figures you watch rather than assume.

Estimated effort: **multi-day**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Python 3.12 with PostgreSQL | subscribers, sends and events are relational and the send loop needs to be resumable |
| Sending | A transactional or bulk provider with a verified sending subdomain | running your own mail server means owning reputation from zero, which is a project rather than a step |
| Composition | Markdown rendered to HTML and plain text together | a message with no plain text alternative looks worse to filters and to some readers |
| Unsubscribe | Headers plus a signed link that needs no login | the header is what the requirements ask for and the link is what people click |
| Archive | Static pages generated per issue | an archive is how people find you and it costs nothing to serve |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Python 3.12 or newer** · free
  - Why: Runs the application and the send loop.
  - Get it: python.org or your package manager, then a virtual environment.
  - Verify: python3 --version prints 3.12 or higher
- [ ] **PostgreSQL 16 or newer** · free
  - Why: Subscribers and sends need a real database, and the send loop depends on a unique constraint.
  - Get it: Install locally or run it in Docker.
  - Verify: psql connects and reports 16 or higher
- [ ] **A domain with DNS you control, and a sending subdomain** · roughly 10 to 15 US dollars a year
  - Why: Authentication records are DNS, and sending from a subdomain keeps a reputation problem away from your ordinary mail.
  - Get it: Any registrar with DNS access. Decide the subdomain before configuring anything, since changing it later means rebuilding reputation.
  - Verify: Records resolve and a test message authenticates
- [ ] **An email sending provider** · free tiers typically cover a few thousand messages a month
  - Why: Reputation, feedback loops and event webhooks all come from here, and building them yourself is the project this avoids.
  - Get it: Choose a provider, verify your sending subdomain with the DNS records they specify, and confirm they deliver complaint and bounce events by webhook.
  - Verify: A test message sends and a delivery event arrives at your endpoint
- [ ] **Test inboxes at three different providers** · free
  - Why: Authentication and unsubscribe both behave differently per provider, and checking one tells you very little.
  - Get it: Create or use accounts at three major providers. You will inspect headers and check the client unsubscribe control in each.
  - Verify: A test message has been inspected in all three

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- Inbox placement expertise and provider relationships.
- Behavioural automation and engagement segmentation.
- Running your own mail server.
- Support when a provider starts rejecting your mail.
- excellent deliverability, hosted simplicity, integrations, and creator-friendly support
- inbox-placement expertise
- advanced automations
- commerce integrations
- recommendation and ad networks

If one of those is essential to you, that is the reason to keep paying for Buttondown, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

People still pay for Buttondown because newsletter operators pay for inbox placement, growth mechanics, and operational confidence on publication day. The recurring cost buys DNS authentication, reputation, bounces, complaints, unsubscribe compliance, templates, queues, analytics, backups, and support, not just the visible interface.

what you lose

xexcellent deliverability, hosted simplicity, integrations, and creator-friendly support

xinbox-placement expertise

xadvanced automations

xcommerce integrations

xrecommendation and ad networks

prior art · use these instead of building, if you'd ratherListmonkMature open-source newsletter and mailing-list manager.↗
share on X ↗"I just replaced Buttondown ($9/mo) with one prompt"
the numbers

Buttondown pricing

planmonthlyannual (per mo)what you get
free first 100 subscribers$0/workspace$0/workspaceFirst 100 subscribers cost $0.
subscriber-based base plancustom—Base cost is determined by subscriber calculator; exact public numeric schedule was not exposed in crawled text.
small add-ons$9/workspace—$9/mo each: tagging/segmentation, paid subscriptions, comments/surveys, analytics, RSS-to-email, sponsorships, attachments.
medium add-ons$29/workspace—$29/mo each: custom-domain archives, multiple newsletters, automations.
large add-ons$79/workspace—$79/mo each: whitelabeling, teams.

free tier$0 for the first 100 subscribers.

billingsubscriber-based calculator plus monthly add-ons; annual terms not verified

hidden costsCore capabilities are modular add-ons: $9/mo, $29/mo and $79/mo items can stack on top of subscriber pricing.

verified 2026-08-10 · source ↗

questions
Vibecode Buttondown

Yes. A competent AI coding agent (Claude Code, Codex, Cursor) can build a usable personal Buttondown replacement in one session with the prompt on this page. It runs on your own machine or server with no subscription.

How much does Buttondown cost?

Buttondown costs about $9/month (Basic, checked 2026-07-31), which is $108 per year. That's what you save by replacing it with one prompt.

What do I lose by replacing Buttondown?

Honestly: excellent deliverability, hosted simplicity, integrations, and creator-friendly support; inbox-placement expertise; advanced automations; commerce integrations; recommendation and ad networks. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Buttondown?

Yes: Listmonk (Mature open-source newsletter and mailing-list manager.). Using prior art is also vibecoding; the prompt is for when you want it exactly your way.