Field notes

Three Mac Studios instead of AWS spot instances for my build servers

AWS spot instances ran my AI agents' builds 1.8 to 2.1 times slower and would have cost more within a year, so I bought three Mac Studios for $6,000.

My agent fleet’s builds run on three Mac Studios in my network closet, not on AWS spot instances. Jarvis, the successor to Omnigent, is built to run them on spot. It doesn’t, because spot ran my builds slower, and the Macs pay for themselves in under a year against the spot bill I expected.

Three base Mac Studios with the M5 Max cost me $6,000 — $2,000 each on a Micro Center deal, against a $2,499 list price. I expected to spend $700 to $800 a month on spot. Against $750, the purchase pays back in about 8.4 months.

cumulative cost, USD $0 $5k $10k $15k 0 3 6 9 12 15 18 months since purchase Pays back at 8.4 months against $750 a month of spot spot, $800 a month spot, $750 a month spot, $700 a month owned, $6,000 plus ~$39/mo power
Fig. 01 — Modelled, not a bill. Three Mac Studios at $6,000 up front plus about $39 a month of power, against the $700–800 a month of spot I expected to spend. At $750 a month the lines cross at 8.4 months; across the band, 7.9 to 9.1. No admin time is counted here.

Fig. 01 · pinch or scroll to zoom · drag to pan

Why the builds left Xcode

Jarvis v1 was native Apple: a Mac app, an iPhone app, and an Apple Watch app. An Xcode build took about five minutes uncached and about a minute and a half cached. The React and Python version that replaced it builds in a few seconds.

Iteration speed was the first problem: “the builds were taking super long because doing things with Xcode takes a very long time, and I couldn’t iterate fast enough.” Scale-out was the second. Xcode validations were “taking enormous amounts of CPU cycles and time, and I couldn’t scale that out” to spot. EC2 doesn’t sell Mac capacity as spot at all — Mac instances are On-Demand only, on dedicated hosts with a 24-hour minimum.

Moving to React and Python made the build portable: “I can now run it on a Mac server or I can run it on spot instances with Linux. No big deal.” Portable is not the same as cheaper. Once the builds could run anywhere, I had to pick where.

Spot was slower per job

From memory, I put it at about 1.7 times: “I would take about 1.7x more time … to run a build and to run all my tests on a spot instance than if I was just running it on my M5 Max.” Asked later which instance, I couldn’t say: “I honestly don’t remember.” The agent logs could. On October 23, 2026, my agents ran the same two CI gate runs on the Studio and on one c7a.2xlarge spot instance — 8 vCPU, AMD, our third choice; AWS placed us there instead of the c8a we asked for first. Same merged code, same verdicts.

Gate run Mac Studio, M5 Max c7a.2xlarge spot Spot took
Known-green change, pass 510 s 913 s 1.8x
Known-red change, same failure 272 s 561 s 2.1x

The 1.7x I remembered was a little kind. The measured runs came in at 1.8x and 2.1x, and the spot side ran with cold package caches and 2 parallel jobs against the Studio’s 6. One instance, two runs — a data point, not a benchmark.

Public Geekbench 6 results show where it sits. The M5 Max leads every 8-vCPU compute instance I’d reach for, and by more than 1.7x on most of them.

System GB6 single GB6 multi M5 Max lead, single / multi
Mac Studio, M5 Max (18 cores) 4,341 30,129 —
EC2 c8a.2xlarge (8 vCPU) 2,680 12,987 1.6x / 2.3x
EC2 c7a.2xlarge (8 vCPU) 1,997 10,302 2.2x / 2.9x
EC2 c7i.2xlarge (8 vCPU) 1,803 6,874 2.4x / 4.4x
EC2 c8g.2xlarge (8 vCPU, Graviton4) 1,799 9,843 2.4x / 3.1x
Hetzner AX102 (16 cores) 2,990 17,524 1.45x / 1.7x
OVH ADVANCE-4 (16 cores) 2,925 17,932 1.5x / 1.7x

Geekbench puts the c7a.2xlarge 2.2x behind on a single core and 2.9x behind on multi-core. The measured 1.8x to 2.1x lands just under that, which fits: a real gate also waits on dependency installs and container starts, and those pull the ratio toward even. Only the c8a comes in near 1.7x on a single core, so a c8a or a box with 16 or more vCPUs would likely have narrowed the gap. That run never happened. Each row is one uploaded run, not an average, and Geekbench is a short, bursty test.

What the Macs cost

Payback is what you paid, divided by what renting costs each month minus what owning costs each month. Owning has a power bill. At an assumed 120 W average per machine and $0.15 per kWh, three Studios draw about $39 a month — an estimate, not a meter reading. $6,000 ÷ ($750 − $39) is about 8.4 months. At $800 a month of spot it’s 7.9. At $700 it’s 9.1.

Owning also takes admin time. Price it at two hours a month and $100 an hour — $200 a month, another assumption — and the payback stretches to about 11.8 months. Still inside a year. Not by much.

The deal mattered. At the $2,499 list price, the same math runs about 10.6 months before admin, so buying at $2,000 took roughly two months off the payback.

What $750 a month buys

The $700 to $800 figure was an expectation, and it carries a duty-cycle assumption I never stated. Matching the three Studios’ combined multi-core score around the clock would cost about $1,100 a month on c8g.2xlarge spot and about $2,000 on c7i.2xlarge spot, at aggregator spot prices for us-east-1 in October 2026. Spot prices move by the hour. Read the other way, $700 a month of c7i spot matches the Macs only if the fleet works about 35% of the day.

That cuts both ways. A fleet that keeps the Macs busy pays them back faster than Fig. 01 shows, because the honest spot comparison is the bigger bill. A fleet that idles most of the day may never pay them back, because spot only bills for the hours it runs.

Spot isn’t out. Jarvis is “designed to be able to add new nodes and those can be on spot instances to be able to augment my build capacity if I need any more than what I’ve got.” Owned capacity for the base load, rented capacity for the burst.

Case by case

I don’t have a rule for this. When a client asks, the first thing I’d want to know is how their accounting works — “if you buy things and you can capitalize it versus if you’re just spending money on cloud infrastructure.” That’s one input, not the answer. A cloud-native shop with no data center and nowhere to put machines is the clear case the other way: “then obviously it makes sense to do things in the cloud.” Spot isn’t the only rental, either. “There are other compute providers that provide a better kind of CPU per dollar” — the Hetzner and OVH rows above trail the M5 Max by about 1.7x multi-core at a flat monthly price.

A small shop in one office sits at the other end. Mac Studios on every desk are fine with me, and there’s no AWS data-transfer bill to pay. “But then you’re still managing these build servers, so it’s really kind of a give and take.” And if the product is Mac-native, the Macs have to live somewhere: “having them hosted on AWS is super expensive, so that doesn’t make a whole lot of sense.”

My case was one person who wanted the fleet at home: “for my use case being an individual that wanted to run everything at home locally in my network closet then this was the right solution for me.” Three things decided it, and they’ll decide yours: what the build has to run on, how many hours a day the fleet keeps the machines busy, and who manages them.

Underneath

The list price and configuration are Apple’s: the Mac Studio with M5 Max announcement gives $2,499 for the base model, and the tech specs give its 18-core CPU, 36GB, and 512GB. The EC2 Mac terms — On-Demand only, no spot, one instance per dedicated host, a 24-hour minimum — are in the EC2 Mac instances guide.

The gate timings are from my own trial on October 23, 2026: one c7a.2xlarge spot instance in us-east-1 against the M5 Max Studio that runs my gates. The Geekbench scores are individual uploads: Mac Studio M5 Max, c8a.2xlarge, c7a.2xlarge, c7i.2xlarge, c8g.2xlarge (a preview build), Hetzner AX102, and OVH ADVANCE-4. They span several Geekbench 6 versions, and single runs carry a few percent of noise. The spot prices behind the capacity-matched figures are Vantage’s page snapshots for c8g.2xlarge, c7a.2xlarge, and c7i.2xlarge, and the capacity match assumes multi-core scores scale linearly across instances, which flatters spot. The power, admin, and duty-cycle figures are assumptions, stated where they appear. All sources accessed October 28, 2026.

More field notes

Start

Tell me what’s stuck

I’ll tell you in about a day whether I’m the right person. The first conversation is fit, not a free architecture review.