Buttondown logo

How to vibe codeButtondown

Newsletter software for people like you

buttondown.com

Web app

Web app
68/ 100
Solid side project

The verdict: can you vibe code Buttondown?

Build a personal subset for yourself, but keep paying if you need bulletproof deliverability and inbox placement at scale.

Building the core loop—a Markdown editor, subscriber CRUD, and basic sending via an API like Amazon SES or Resend—is straightforward with AI coding tools. However, you will inevitably hit the unglamorous wall of email deliverability: handling bounce feedback loops, managing spam complaints, configuring strict DNS records, and keeping your IP/domain off ISP blacklists. If you just want to publish your personal blog via email, a weekend build works great; if you want a robust commercial ESP, you will spend weeks fighting edge cases in SMTP protocols.

Estimated effort: 2-4 weeks of focused development

What you can't replicate

  • Years of accumulated sender reputation across major mailbox providers (Gmail, Outlook, Yahoo)
  • Instant concierge migration support for large lists

Founded

2017

Raised

$0

Team

Half a dozen

Cheapest paid tier

$0

What Buttondown does

Lightweight, developer-friendly email newsletter and publishing platform designed as an alternative to heavy marketing suites.

Core features

  • Markdown and rich-text newsletter editor
  • Subscriber list management with custom tags and segmentation
  • Broadcast email delivery pipeline with rate limiting
  • Automated welcome sequences and trigger-based emails
  • Stripe integration for paid recurring subscriptions with 0% platform cut
  • Hosted newsletter archives on custom domains
  • Comprehensive REST API for programmatic newsletter management
  • Privacy-first tracking and basic analytics dashboard

The business

Pricing

  • Free$0
  • Paid TiersUsage-based

Funding

$0

Pay vs build, cumulative

Break-even at month 1 — after that, every month is money kept.

The hard parts of vibe coding Buttondown

  • Inbox deliverability and sender reputation management (DNS, SPF, DKIM, DMARC, feedback loops)
  • High-throughput asynchronous background queuing for email blasting without tripping spam filters
  • Fault-tolerant webhook processing for Stripe subscription billing syncs and failures
  • Bounce, complaint, and unsubscribe processing pipelines via inbound email webhooks

How to vibecode Buttondown

Prerequisites

  • Node.jsfree

    Runtime environment for Next.js and TypeScript tooling.

  • GitHubfree

    Source code repository and deployment pipeline integration.

  • Resend or Amazon SES Accountfree tier / pay-as-you-go

    Transactional and broadcast email sending infrastructure.

AI coding tools

Recommended stack

FrontendNext.js with Tailwind CSS and a Markdown editor component (e.g., TipTap or Milkdown)
BackendNext.js Server Actions and API Routes
DatabaseTurso (SQLite at the edge for relational subscriber and newsletter storage)
Authbetter-auth
PaymentsStripe (optional for paid tiers)
OtherResend for email delivery, Inngest for background email queue processing

Hosting & infrastructure

VercelNext.js frontend and serverless API deployment$0-20/mo
TursoServerless SQLite database for subscribers and broadcasts$0/mo

Build guide

  1. 01Project Scaffolding & Database Schema

    Initialize the Next.js project with Tailwind CSS, configure better-auth, and set up the Turso database schema for users, newsletters, subscribers, and tags.

    Create a new Next.js project configured with TypeScript, Tailwind CSS, and Drizzle ORM connected to Turso. Define the database schema with tables for users, subscribers (email, status, subscribed_at, metadata), newsletters (id, subject, body_markdown, body_html, status, sent_at), and tags. Implement better-auth for secure admin authentication. Ensure all relational constraints and foreign keys are properly structured.
  2. 02Markdown Editor & Newsletter Composer

    Build the newsletter drafting interface featuring a split-pane Markdown editor and live HTML preview.

    Build a newsletter composition dashboard in Next.js using a modern Markdown editor library (like Milkdown or TipTap). Create a split-pane view with raw Markdown editing on one side and a live rendered HTML preview on the other. Add form fields for subject line, preview text, and scheduling options. Implement server actions to save drafts and update newsletter records in the Turso database.
  3. 03Subscriber Management & Import

    Build the subscriber list interface supporting manual entry and CSV bulk import.

    Develop a subscriber management screen displaying paginated subscriber lists, status badges (active, unsubscribed, bounced), and tag filters. Build a CSV import utility that parses uploaded files on the server side, validates email syntax, handles duplicate entries gracefully, and bulk-inserts records into the database with progress feedback.
  4. 04Email Broadcasting & Background Queuing

    Implement the sending engine using Resend and Inngest for reliable background batch processing.

    Implement an email broadcasting engine using Inngest for background job processing and Resend for delivery. When a newsletter is marked as 'sent', trigger a durable background function that fetches active subscribers in batches, converts Markdown content to sanitized HTML, and dispatches transactional emails through Resend while respecting rate limits. Log delivery statuses and handle failed sends cleanly.
  5. 05Public Archives & RSS Feed

    Create public-facing hosted newsletter archives and an RSS feed endpoint.

    Build public archive pages at `/archive` and `/archive/[id]` that render sent newsletters cleanly with custom branding styles. Implement an RSS XML feed endpoint at `/feed.xml` that automatically lists published newsletters for feed readers.
  6. 06REST API Integration

    Expose a secure REST API mirroring core platform functionality for programmatic access.

    Create a fully-featured REST API under `/api/v1/` protected by bearer token authentication. Implement endpoints for listing subscribers, creating new subscribers, fetching newsletters, and triggering broadcasts programmatically. Document the endpoints with an OpenAPI schema route.

Cost vs paying for Buttondown

What will you build it with?

Est. 12.5M in / 3.8M out tokens· Includes access to introductory usage of the default model with dynamic rate limits.$0

Starting total with Claude Code$0 one-time

Starting costs (one-time)

  • Custom domain (optional)$12/yr
  • AI coding credits$20

Total~$32 one-time

Ongoing costs (monthly)

  • Vercel Hobby / Turso / Resend free tiers$0/mo

Total$0/mo

Paying for Buttondown

~$15-50/mo depending on subscriber count

Your time to build

35-50 hours

AI tool credits

$20 (one month of Claude Pro / Cursor)

Break-even

Fun/learning project (free vs paid SaaS)

Vibe code Buttondown: FAQ

Can you vibe code Buttondown yourself?
Solid side project — 68/100 vibecodeable. Build a personal subset for yourself, but keep paying if you need bulletproof deliverability and inbox placement at scale.
How long does it take to vibe code Buttondown?
2-4 weeks of focused development — roughly 35-50 hours of hands-on time with an AI coding agent.
How do you build your own Buttondown?
Scoped to personal use: Next.js with Tailwind CSS and a Markdown editor component (e.g., TipTap or Milkdown) on the front, Next.js Server Actions and API Routes behind it, Turso (SQLite at the edge for relational subscriber and newsletter storage) for data. Follow the 6-step build guide on this page — each step has a paste-ready prompt for an AI coding agent.
How do you code your own Buttondown without being an expert?
Use an AI coding tool (Claude Code or Cursor) and work in small steps: scaffold, data model, core screens, then deploy. Realistic effort: 2-4 weeks of focused development. The prompts on this page are written so the AI does the heavy lifting.
How much does it cost to vibe code Buttondown instead of paying?
About ~$32 one-time to start and $0/mo to run, versus ~$15-50/mo depending on subscriber count for Buttondown. Break-even: Fun/learning project (free vs paid SaaS).
What stack should you use to vibe code Buttondown?
Next.js with Tailwind CSS and a Markdown editor component (e.g., TipTap or Milkdown); Next.js Server Actions and API Routes; Turso (SQLite at the edge for relational subscriber and newsletter storage); plus Resend for email delivery, Inngest for background email queue processing.

Sources

Alternatives & community builds

All alternatives →