No team can do it alone. Here's every tool, service, and open-source project that powers Buttondown — and what we give back.
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.
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.
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.
Some specific choices I made to roll my own:
| Date | Change |
|---|---|
| 2026-11-02 | Planetscale went from $1,000 to $815/mo after a smaller disk and a PrivateLink connection. This excludes the database for Curated. |
| 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. |