/ tech-stacks / Best Tech Stack for Building a Newsletter as a Solo Developer
tech-stacks 10 min read

Best Tech Stack for Building a Newsletter as a Solo Developer

The ideal tech stack for solo developers building a newsletter in 2026.

Hero image for Best Tech Stack for Building a Newsletter as a Solo Developer

I resisted starting a newsletter for years because I thought I needed to build something custom. A subscriber management system, email templates, analytics, the works. Then I watched a developer with a simple Buttondown setup grow to 15,000 subscribers while I was still debating my "custom newsletter platform architecture." Lesson learned.

The truth about newsletters is that the tech stack matters less than the content. But picking the right tools can save you hours per week and make the writing process painless enough that you actually stick with it. Here's the stack I'd use today.

Layer Tool Why
Newsletter Platform Buttondown or Beehiiv Simple, developer-friendly, good free tiers
Landing Page Astro or Next.js Fast static site for the signup page
Hosting Vercel or Cloudflare Pages Free, deploys on push
Writing Markdown in VS Code Write where you code, version control your issues
Signup Forms Platform's built-in embed Don't reinvent the signup form
Analytics Platform built-in + Plausible Email metrics from platform, web traffic from Plausible
Automation Platform built-in Welcome sequences, drip campaigns

Why This Stack Works for Solo Developers

There are two types of newsletter operators. People who want to write a newsletter and people who want to build a newsletter platform. If you're the first type (which is most solo developers), your stack should be almost entirely managed services.

The reason is simple. Every hour you spend on infrastructure is an hour you're not spending on content. And content is the only thing that grows a newsletter. I've seen developers build custom subscriber management with PostgreSQL, self-hosted email sending with Amazon SES, and bespoke analytics dashboards. Their newsletters had 200 subscribers. Meanwhile, people using Substack with zero technical effort had 20,000.

This stack optimizes for one thing: minimizing the time between "I have an idea for this week's issue" and "the email is in people's inboxes."

Platform: Buttondown or Beehiiv

This is the most important decision, and honestly either one works great. Here's how I'd choose between them.

Buttondown is built by a solo developer, which means you get a product that respects developer workflows. It accepts Markdown and has an API, so you can automate publishing from a CI pipeline if you want. The free tier covers your first 100 subscribers with the rich-text and Markdown editor, custom-domain sending, and newsletter archives included, per the Buttondown pricing page (checked 2026-05-30). Above 100 subscribers you pay by subscriber count plus optional add-ons, with most add-ons (tagging, paid subscriptions, analytics, RSS-to-email) running $9 per month each. It's minimal, fast, and does exactly what you need without extra bloat. I appreciate that the UI doesn't try to upsell me every time I log in.

Beehiiv is more feature-rich out of the box. It has a built-in website, referral program, ad network, and audience segmentation. If you want to monetize your newsletter through sponsorships or paid subscriptions from day one, Beehiiv gives you those tools without integrations. The Launch (free) plan supports up to 2,500 subscribers with unlimited sends, and Beehiiv states it takes 0 percent of your paid subscription revenue. The next tier up, Scale, runs $43 per month and lifts the limit to 100,000 subscribers, per the Beehiiv pricing page (checked 2026-05-30).

What about Substack? Substack is fine for writers who don't want to think about tech at all. There is no monthly fee, but it takes a flat 10 percent cut of your paid subscription revenue, and Stripe processing fees stack on top, so the real cost lands closer to 13 to 16 percent of gross (per Substack's own pricing help article, checked 2026-05-30). It also locks you into their platform aesthetics and gives you limited control over your subscriber data. As a developer, you can do better.

What about ConvertKit (now Kit)? Good platform, but pricier than the alternatives and more geared toward creators selling courses and products. Its free Newsletter plan is generous, covering up to 10,000 subscribers with unlimited emails but only a single automation, while the paid Creator plan starts at $39 per month for up to 1,000 subscribers (or $33 per month billed annually), per the Kit pricing page (checked 2026-05-30). If your newsletter is a top-of-funnel for selling something, Kit is worth considering. For a standalone newsletter, it's more tool than you need.

Here is how the four platforms compare on the two numbers that matter most when you are starting out.

Platform Free tier ceiling First paid step
Buttondown 100 subscribers by subscriber count, add-ons $9/mo each
Beehiiv 2,500 subscribers Scale at $43/mo (up to 100,000)
Kit 10,000 subscribers Creator from $39/mo (up to 1,000)
Substack Unlimited (free to start) 10% of paid revenue, no monthly fee

All figures checked 2026-05-30 against each vendor's pricing page. Verify before you commit, since tiers shift.

Landing Page: Astro

Your newsletter needs a landing page. Not a complicated website, just a single page that explains what your newsletter covers, shows social proof (subscriber count, testimonials), and has a prominent signup form.

Astro is perfect for this because it generates a static site that loads instantly. Create one page, embed the signup form from your newsletter platform, and deploy to Vercel. Total development time is around 2 to 3 hours. I'd use a simple template with Tailwind CSS and not overthink the design. The project is mature and actively maintained, sitting at 59,658 GitHub stars with the latest release being version 6.4.2, and it pulls roughly 3.05 million npm downloads a week (GitHub and npm, checked 2026-05-30). Next.js is the heavier alternative if you already know it, carrying 139,595 stars and around 40.08 million weekly npm downloads at version 16.2.6, but for a single signup page Astro's zero-JavaScript-by-default output is the better fit.

The landing page serves two purposes beyond signups. It gives you a canonical URL to share everywhere, and it's a target for SEO. "Best weekly newsletter about [your topic]" is a search query real people make. A fast, well-structured landing page can rank for those queries.

For hosting, both Vercel and Cloudflare Pages have free tiers that comfortably carry a single landing page. Vercel's Hobby plan includes 100 GB of bandwidth, 1 million edge requests, and 1 million function invocations per month, with the Pro plan at $20 per developer per month if you outgrow it (Vercel pricing, checked 2026-05-30). Cloudflare Pages goes further on bandwidth, advertising unlimited bandwidth on the free plan with a cap of 500 builds per month before the $5-per-month Pro tier lifts you to 5,000 builds (Cloudflare Pages limits docs, checked 2026-05-30). For a static signup page that rebuilds only when you push, either free tier is effectively free forever.

If you want web analytics separate from your email metrics, Plausible is the privacy-friendly pick. It is open source with 26,623 GitHub stars, and there is no permanent free tier, just a 30-day free trial with no card required, after which the Starter plan is $9 per month for up to 10,000 monthly pageviews (Plausible pricing and GitHub, checked 2026-05-30).

Include an archive page that links to past issues. This is free SEO. Every issue you've written becomes a page that Google can index and rank for relevant queries. Beehiiv generates this automatically. For Buttondown, you'd add links to your Astro site or use their built-in archive page.

Writing Workflow

This is where developers have an advantage. Write your newsletter in Markdown using VS Code or your favorite editor. Version control your issues with Git. This gives you a searchable archive, the ability to reference past issues, and a backup that doesn't depend on your newsletter platform.

My workflow is dead simple. I keep a newsletter/ directory in my project repo with one Markdown file per issue. I write the draft in VS Code, preview it with a Markdown plugin, and then paste it into Buttondown's editor (which accepts Markdown natively). The whole process takes maybe 10 minutes of non-writing time per issue.

If you want to go further, you can automate publishing through the Buttondown API. Push a new Markdown file to your repo, a GitHub Action sends it to Buttondown's API as a draft, and you just review and hit send. I set this up once and it's nice, but honestly, copy-pasting Markdown takes 30 seconds, so the automation is more about fun than necessity.

What I'd Skip

Self-hosted email sending. Amazon SES, Postmark, or SendGrid for sending your own newsletter emails is technically possible and cheaper at scale. But you're taking on deliverability management, IP reputation, bounce handling, unsubscribe compliance, and spam filtering. Newsletter platforms handle all of this. The $10-30/month you'd save is not worth the headache.

Custom subscriber management. Building your own subscriber database, signup forms, and email list management is reinventing a wheel that's been perfected by dozens of companies. Use the platform's tools.

Complex automation for day one. Welcome sequences and drip campaigns are nice, but don't build them before you have subscribers. Write 10 issues first. Get 500 subscribers. Then add a welcome email that links to your best 3 issues. That's enough automation for the first year.

Multi-platform distribution. Some people publish simultaneously on Substack, Medium, LinkedIn, and their own blog. This dilutes your brand and fragments your audience. Pick one primary platform, build your list there, and cross-post selectively. I'd rather have 5,000 subscribers on one platform than 1,000 scattered across five.

Paid subscriptions at launch. Grow your free list first. Prove you can write consistently. Then add a paid tier when you have 1,000+ free subscribers and a clear value proposition for premium content.

Getting Started

Here's what I'd do this week.

  1. Sign up for Buttondown or Beehiiv. Create your account, choose your newsletter name, and configure the basic settings (from name, reply-to address, branding colors).

  2. Build a landing page. Scaffold an Astro project, create a single page with your newsletter pitch and an embedded signup form. Deploy to Vercel. Point your custom domain at it.

  3. Write your first issue. Don't overthink it. Write about something you know well. Keep it under 1,000 words. Send it to yourself first, then to your list (even if it's just 5 friends you asked to subscribe).

  4. Set a schedule and stick to it. Weekly is the sweet spot for most solo newsletters. Every Tuesday or every Thursday. Consistency matters more than frequency.

  5. Share everywhere once. Post your landing page on Twitter, LinkedIn, relevant subreddits, and Hacker News (if it's dev-focused). Then focus on making the content so good that people share it for you.

The best newsletter stack is one that gets out of your way and lets you write. Nobody unsubscribes because your newsletter was sent from Buttondown instead of a custom system. They unsubscribe because the content wasn't worth their time. Focus your energy where it matters.

Sources

All figures below were checked on 2026-05-30. Prices and limits change often, so verify against the live pages before you commit.

Built by Kevin

Like this? You'll like what I'm building too.

Two ways to support and get more of this work.

Desktop App

HEARTH

A privacy-first Life OS for your desktop. Journal, tasks, and notes that stay on your machine. Coming soon, direct download from this site.

Read more
Digital Products

MY TOOLKITS

Receipts-first toolkits for shipping after hours, building Claude agents, publishing on Amazon, and more. The exact methods I used, not theory.

Browse on Whop

Need This Built?

Kevin builds products solo, from first version to live. If you want something like this made, work with him.