Stack

Stack

The tools, services, and open-source software that power Buttondown.

No team can do it alone. Here's every tool, service, and open-source project that powers Buttondown — and what we give back.

Open Source

Buttondown, like all software companies, sits on the shoulders of giants. We're committed to donating 10% of all profits to open source technologies that power our software, and we're proud members of FOSS Funders and signatories of the Open Source Pledge.

We also maintain a number of our own open-source packages, born out of needs we encountered building Buttondown and released for the community to use and contribute to.

AllBy categoryBy license

$96,258 / yr · 54 tools

AWS$1,700](https://aws.amazon.com/) Postmark$1,670](https://postmark.com/) Planetscale$1,000](https://planetscale.com/) Plain$615](https://www.plain.com/) Mailgun$485](https://mailgun.com/) Django$417](https://www.djangoproject.com/) Anthropic$350](https://www.anthropic.com/) Sentry$200](https://sentry.io/) Cloudflare$200](https://cloudflare.com/) Linear$195](https://linear.app/) Google Suite$175](https://google.com/) Tuple$150](https://tuple.app/) DigitalOcean$150](https://www.digitalocean.com/) Gusto$130](https://gusto.com/) Python$83](https://www.python.org/) Vue$83](https://vuejs.org/) Slack$75](https://slack.com/) incident.io$70](/content/stack/incident-io/index.html) Pulumi$65](https://www.pulumi.com/) Vercel$60](https://vercel.com/) 1Password$25](https://1password.com/) Allauth$21](https://allauth.org/) Homebrew$21](https://brew.sh/) Structlog$21](https://www.structlog.org/en/stable/) Twitter$20](https://twitter.com/) Buffer$18](https://buffer.com/) ClickHouse$11](https://clickhouse.com/) disposable-email-domains$10](https://github.com/disposable-email-domains/disposable-email-domains) Mise$2](https://mise.jdx.dev/) Stripe—](https://stripe.com/) Spamhaus$0](https://www.spamhaus.org/) GitHub$0](https://github.com/) Tiptap$0](https://tiptap.dev/) Postico$0](https://eggerapps.at/postico2/) Google Web Risk API$0](https://cloud.google.com/web-risk) PayPal$0](https://paypal.com/) Mercury$0](https://mercury.com/r/buttondown) Bunny$0](https://bunny.net/dns/) Project Honeypot$0](https://www.projecthoneypot.org/) Unsplash$0](https://unsplash.com/) Biome$0](https://biomejs.dev/) CodeMirror$0](https://codemirror.net/) Cspell$0](https://cspell.org/) Django Ninja$0](https://django-ninja.rest-framework.com/) ESLint$0](https://eslint.org/) NextJS$0](https://nextjs.org/) Radix UI$0](https://www.radix-ui.com/) Postgres$0](https://www.postgresql.org/) Pytest$0](https://docs.pytest.org/en/7.4.x/) Ruff$0](https://github.com/astral-sh/ruff) Tailwind$0](https://tailwindcss.com/) Typescript$0](https://www.typescriptlang.org/) Vite$0](https://vitejs.dev/) vite-plugin-magical-svg$0](https://github.com/cyyynthia/vite-plugin-magical-svg/)

Our open source

9 tools

tiptap-footnotes★ 62](https://github.com/buttondown/tiptap-footnotes) rssrssrssrss★ 47](https://github.com/buttondown/rssrssrssrss) django-typescript-routes★ 33](https://github.com/buttondown/django-typescript-routes) tiptap-math★ 25](https://github.com/buttondown/tiptap-math) sniperlink★ 12](https://github.com/buttondown/sniper-link) share.bingo★ 11](https://github.com/buttondown/share.bingo) django-rq-cron★ 9](https://github.com/buttondown/django-rq-cron) disposables.app★ 3](https://github.com/buttondown/disposables.app) caltorss](https://github.com/buttondown/caltorss)

Frequently asked questions

Why do you use so many services?

The most important resource I have is my energy, and being able to trade X dollars (where X is any number less than a hundred) for even trivial amounts of energy is an absolute no-brainer.

Why so many ESPs?

When I launched Buttondown, AWS Simple Email Service was notoriously low-quality and Postmark did not support broadcast emails. Mailgun was the choice I went with, and there are still many customers using Mailgun's rails who have custom domain records set up that I don't have the heart (or incentive) to migrate.

I like having redundancy — if one provider were to go down or drastically change rates it would be trivial for me to migrate — but if I were starting Buttondown from scratch I would likely just have everything run through Postmark.

Why don't you use something for X?

Some specific choices I made to roll my own:

Addenda

Changelog

Date Change
2026-10-21 Replaced Heroku with AWS ($1,700/mo).
2026-10-21 Updated costs to match our latest bills: Postmark ($1,670), Mailgun ($485), Plain ($615), Anthropic ($350), Cloudflare ($200), Sentry ($200), Linear ($195), Google Suite ($175), DigitalOcean ($150), Tuple ($150), Slack ($75), incident.io ($70), Pulumi ($65), Vercel ($60), 1Password ($25), and ClickHouse ($11).
2026-10-12 Moved local development from mprocs to dekit, its successor from the same author.
2026-10-09 Stopped using Seline; website analytics now run on Cortado, our own in-house tool.
2026-10-05 Stopped using Octolens; social media mention monitoring now runs off our own crawlers.
2026-09-23 Stopped using Kolo for Django request tracing.
2026-09-14 Removed SparkPost, which rolled into Postmark. Replaced Cursor and OpenAI with Anthropic.
2026-09-11 Seline went from $34 to $59/mo.
2026-09-08 Dropped HAProxy, Localias, and Overmind; local development now runs on mprocs and Portless, and edge routing runs on our own Cloudflare Worker. Also ended our paid Spamhaus subscription — we still use the free public blocklists.
2026-09-07 Dropped our team CleanShot subscription; screenshot hosting now runs off our own internal-files tooling.
2026-09-05 Removed Proximo, which we no longer used.
2026-08-26 Stopped using Cleantalk for signup spam detection.
2026-07-01 Planetscale went from $1,400 to $1,000/mo.
2026-06-19 Removed UptimeRobot — TLS monitoring now run off our in-house checker framework.
2026-06-18 Stopped using StopForumSpam for spam detection.
2026-06-12 Added ClickHouse ($5/mo) for archival storage.
2026-06-05 Added UptimeRobot (Solo plan) for uptime monitoring.
2026-06-05 Sentry went from $100 to $250/mo.
2026-06-04 Pruned tools we no longer use: GitHub Actions, Hetzner, Mono Lisa, Things, and Timing.
2026-06-02 Removed Goto — still a great tool, but we've replaced it with individual usage. Also dropped Sender Score, which never gave us useful feedback.
2026-05-22 Removed Redis Enterprise Cloud; caching and rate limiting now run off Postgres.
2026-05-17 Moved Pulumi Cloud back to a paid plan ($40/mo).
2026-05-14 Stopped using Blacksmith for CI; moved all GitHub Actions workflows to self-hosted runners.
2026-04-15 Removed Sendgrid ($40/mo).
2026-04-05 Added Goto for go links (free).
2026-04-03 Added Proximo ($5/mo) for outbound HTTP proxying.
2026-04-02 Mailgun went from $20 to $600/mo.
2026-03-30 Cut Vercel from $240 to $40/mo.
2026-03-29 Gusto dropped from $200 to $130/mo. Tuple, Cleantalk, and Seline went up to $120, $70, and $34/mo.
2026-03-26 Cut Heroku from $2,100 to $1,200/mo, Blacksmith from $275 to $125/mo, Sentry from $185 to $100/mo, and Redis Enterprise Cloud from $250 to $25/mo.
2026-03-25 Stopped using Obsidian; internal docs now run on our own viewer app.
2026-03-21 Removed Anymail in favor of bespoke SMTP backends. We've moved sufficiently far away from it that it no longer makes sense, but we'd still recommend it.
2026-03-21 Added disposable-email-domains to the stack; donating $10/mo.
2026-03-21 Added Timing ($14/mo) for time tracking.
2026-03-19 Churned from S3 in favor of Cloudflare R2.
2026-03-18 Churned from Better Stack in favor of using Sentry's logging + uptime monitoring.
2026-03-04 Downgraded Pulumi Cloud from paid to free tier.
2026-03-01 Churned from Better Stack to incident.io for incident management.
2026-02-20 Stopped using Tailscale. Great service, we just didn't need it.
2026-02-16 Stopped using HEX for data notebooks.
2026-02-13 Added Obsidian for internal documentation.
2026-01-31 Stopped using DNSimple for DNS management.
2026-01-25 Stopped using ImprovMX for email forwarding.
2026-01-22 Migrated from Amazon RDS to Planetscale. Removed Iframely and Granola.
2025-12-26 Replaced Vista Social with Buffer for social media management.
2025-12-23 Replaced Vercel Analytics with Seline for website analytics.
2025-12-19 Added StopForumSpam for spam detection (free!).
2025-12-08 Published our year-end stack roundup.
2025-12-04 Removed Vista Social, Quickbooks, and Valtown from the stack.
2025-12-01 Stopped using Mimestream for email.
2025-11-24 Stopped using Groove for customer support.
2025-11-01 Added Pulumi for infrastructure as code.
2025-10-21 Added Have I Been Pwned for breach detection (removed 2026-04).
2025-08-01 Added Bunny (DNS), CleanShot (screenshots), Granola (notetaking), and Sendgrid (SMTP) over the summer.
2025-05-14 Started using Vista Social to manage social media accounts and Tailscale to manage the server storing internal docs. Stopped using Trotto (in favor of Tailscale's own OSS version).
2025-04-01 Replaced Depot with Blacksmith (faster, cheaper)
2025-01-09 So much stuff we had to write a whole blog post about it!
2024-07-10 Started using Depot to speed up GitHub Actions
2024-07-09 Started using Fivetran and Metabase to analyze data and construct a (janky, but useful!) WBR
2024-04-03 Started using Mercury as a banking solution
2024-03-28 Added Pika, Cloudflare, and a handful of other tools; churned from Texts, Sketch, Bear, and Imgix.
2024-03-14 Added Audiogest to the stack. It's a nice little tool!
2023-10-13 Had to bump up my Imgix plan from $75 to $200/mo because of traffic. Time to find something cheaper!
2023-08-22 Added val.town
2023-08-01 Add PopSQL (which technically I've been using for a while but forgot about)
2023-07-25 Migrated off of Heroku Redis and onto Redis Enterprise Cloud, which means saving $70/mo for five minutes of switching environment variables.
2023-07-24 Onboarded to Calibre.
2023-07-23 Purchased a reserved instance for my big ol' RDS database, saving $110/mo.
2023-07-20 Initial launch of this page.

Buttondown is the last email platform you’ll switch to.