Found two sneaky costs in @gumroad's AWS bill:
1. Since Rails 8.1, a worker in every preview app was stuck in an OOM-kill loop, burning CPU credits
2. Our Elasticsearch client logged every request and response body: half our log volume
With cleanup: ~$1.4k/mo, ~$17k/yr saved
1. Since Rails 8.1, a worker in every preview app was stuck in an OOM-kill loop, burning CPU credits
2. Our Elasticsearch client logged every request and response body: half our log volume
With cleanup: ~$1.4k/mo, ~$17k/yr saved
We recently migrated ~1B email analytics records at @gumroad from MongoDB to DynamoDB. Zero downtime.
Query time: 861ms → 7ms
Cost: $1,378 → $207/mo (~$14k/yr saved)
The trick: single-table design with precomputed counters. A stats page is one read, not a count per email.
9
0
56
2,088
Canon abandoned my ~10-year-old LBP2900 printer on modern Macs. Claude compiled an open-source driver, inspected raw USB bytes, tracked down a one-line memory bug, fixed it, and got the printer working again.
One of AI's best tricks: bringing old hardware back to life.
Saved the next person some trouble:
github.com/mounaiban/capt…
One of AI's best tricks: bringing old hardware back to life.
Saved the next person some trouble:
github.com/mounaiban/capt…
2
1
19
625
We recently migrated ~1B email analytics records at @gumroad from MongoDB to DynamoDB. Zero downtime.
Query time: 861ms → 7ms
Cost: $1,378 → $207/mo (~$14k/yr saved)
The trick: single-table design with precomputed counters. A stats page is one read, not a count per email.
Query time: 861ms → 7ms
Cost: $1,378 → $207/mo (~$14k/yr saved)
The trick: single-table design with precomputed counters. A stats page is one read, not a count per email.
Found a cost leak in @gumroad's CDN. It kept a copy of every static asset per seller domain, keyed on the Origin header, and an edge function patched CORS per request.
Fixed the cache key, swapped the function for a free header rule.
Hit rate 5% → 95%. ~$11k/year saved.
18
11
243
15,605
Found a cost leak in @gumroad's CDN. It kept a copy of every static asset per seller domain, keyed on the Origin header, and an edge function patched CORS per request.
Fixed the cache key, swapped the function for a free header rule.
Hit rate 5% → 95%. ~$11k/year saved.
Fixed the cache key, swapped the function for a free header rule.
Hit rate 5% → 95%. ~$11k/year saved.
Our video transcoder at @gumroad runs on Hetzner, so every video pulled from S3 was billed as internet egress: $935 last month.
Now it pulls via a signed CloudFront URL. S3 to CloudFront is free, and our private CloudFront pricing is far cheaper.
~$860/month saved, ~$10k/year.
0
3
48
15,430
Our video transcoder at @gumroad runs on Hetzner, so every video pulled from S3 was billed as internet egress: $935 last month.
Now it pulls via a signed CloudFront URL. S3 to CloudFront is free, and our private CloudFront pricing is far cheaper.
~$860/month saved, ~$10k/year.
Now it pulls via a signed CloudFront URL. S3 to CloudFront is free, and our private CloudFront pricing is far cheaper.
~$860/month saved, ~$10k/year.
We just moved all of @gumroad's Redis to Valkey and cut our ElastiCache bill by 69%: about $2.2k a month, or ~$27k a year.
Valkey is a drop-in fork of Redis that AWS prices 20% lower, and our app needed no code changes. Right-sizing and reserved nodes did the rest.
29
26
574
67,007
We just moved all of @gumroad's Redis to Valkey and cut our ElastiCache bill by 69%: about $2.2k a month, or ~$27k a year.
Valkey is a drop-in fork of Redis that AWS prices 20% lower, and our app needed no code changes. Right-sizing and reserved nodes did the rest.
Valkey is a drop-in fork of Redis that AWS prices 20% lower, and our app needed no code changes. Right-sizing and reserved nodes did the rest.
Inspired by @dhh, we moved a high-traffic @gumroad endpoint from Rails to Go.
It only checks an email webhook's signature and queues a job, yet ran our full Rails app on 12 servers.
Go runs it on 3 smaller ones, in 11 MB of memory. 86% cheaper, saving about $14k a year.
8
9
174
45,199
Inspired by @dhh, we moved a high-traffic @gumroad endpoint from Rails to Go.
It only checks an email webhook's signature and queues a job, yet ran our full Rails app on 12 servers.
Go runs it on 3 smaller ones, in 11 MB of memory. 86% cheaper, saving about $14k a year.
It only checks an email webhook's signature and queues a job, yet ran our full Rails app on 12 servers.
Go runs it on 3 smaller ones, in 11 MB of memory. 86% cheaper, saving about $14k a year.
Over the last two weeks, we cut about $8.4k a month (~$100k a year) from @gumroad's AWS bill.
Several of the changes made things faster, not just cheaper. Here's what we changed. 🧵
24
39
552
57,174
Over the last two weeks, we cut about $8.4k a month (~$100k a year) from @gumroad's AWS bill.
Several of the changes made things faster, not just cheaper. Here's what we changed. 🧵
Several of the changes made things faster, not just cheaper. Here's what we changed. 🧵
11
9
103
41,404
Housekeeping
CI agents now scale to zero when idle. We also retired infrastructure left behind by services we've sunset, like a Redis cluster and unused load balancers, and trimmed backups.
Together: about $1.2k a month.
CI agents now scale to zero when idle. We also retired infrastructure left behind by services we've sunset, like a Redis cluster and unused load balancers, and trimmed backups.
Together: about $1.2k a month.
1
0
12
680
What worked for us:
- Give everything ephemeral a lifetime: previews, images, CI agents
- Autoscale on sustained signals, not spikes
- Compress at the origin even behind a CDN
- Fetch on demand instead of polling
~$8.4k a month saved so far. More to come.
- Give everything ephemeral a lifetime: previews, images, CI agents
- Autoscale on sustained signals, not spikes
- Compress at the origin even behind a CDN
- Fetch on demand instead of polling
~$8.4k a month saved so far. More to come.
0
0
16
620
Ran Qwen3.6 35B A3B on an M4 Pro MacBook (48GB RAM) with Pi coding agent, ~35 tokens/sec with surprisingly strong accuracy. Local models keep getting better.
This is where we are right now. And i’m not gonna lie it feels pretty magical 🧚♀️
Qwen3.6 27B running inside of Pi coding agent via Llama.cpp on the MacBook Pro
For non-trivial tasks on the @huggingface codebases, this feels very, very close to hitting the latest Opus in Claude monopolistic closed source API of the day is.
In full airplane mode.
Most people haven’t realized this yet.
If you have, it means you have a huge headstart to what I call the second revolution of AI.
Powerful local models for efficiency, security, privacy, sovereignty 🔥
0
0
11
1,217












