For about five years, the answer to “what laptop should I buy as a developer” was “a MacBook, probably.” In 2026, that answer finally has some competition worth taking seriously. We spent a few months rotating between three machines for day job work: a MacBook Pro M5 Pro, a Framework Laptop 16 AMD, and a ThinkPad X1 Extreme Gen 7. Here is what actually mattered once the novelty wore off.

We focused on real dev workloads, not geekbench. Compiling, Docker compose, Next.js dev servers, a bit of local LLM inference, a weekend of hotel-Wi-Fi coding. Thermals under sustained load. Battery when the fans are actually on. The stuff you only find out about in month two.

The three machines

Specs as tested (in USD at the time of purchase):

  • MacBook Pro 16” M5 Pro: 12-core CPU, 16-core GPU, 36GB unified memory, 1TB SSD. $3,099.
  • Framework Laptop 16 AMD Ryzen AI 9 HX 380: 64GB DDR5, 2TB NVMe, Radeon RX 7700S dGPU module, 180W charger. $2,450 as configured.
  • ThinkPad X1 Extreme Gen 7: Intel Core Ultra 9 285H, 64GB DDR5, 2TB SSD, NVIDIA RTX 5070, 4K OLED. $2,899 after the usual Lenovo coupon gymnastics.

All three are plausible 2026 developer machines. None of them is a joke. The interesting differences are in how they feel after 60 days.

Real dev benchmarks

Same codebase on all three: a mid-sized monorepo with a Rust backend, a Next.js 16 frontend, and a Go service. Three workloads we cared about. Times are median of five runs, all on wall power, fans allowed to run full.

cargo build --release on a 42kloc Rust project:

  • MacBook Pro M5 Pro: 98 seconds
  • Framework 16 AMD: 82 seconds
  • ThinkPad X1 Extreme: 79 seconds

docker compose up cold start on an 11-service stack (Postgres, Redis, 3 Node services, 2 Go services, mailhog, localstack, pgadmin, a nginx proxy):

  • MacBook Pro M5 Pro: 41 seconds
  • Framework 16 AMD: 29 seconds
  • ThinkPad X1 Extreme: 28 seconds

The MacBook loses Docker start badly because Docker on macOS still means a Linux VM, even with VZ. The x86 machines are running Docker natively on Linux (we tested with Fedora Workstation on both) and it shows. If most of your day is container work, this gap is not a small deal.

Local LLM inference, running a 7B parameter model at Q4_K_M via llama.cpp, tokens per second:

  • MacBook Pro M5 Pro: 78 tok/sec (unified memory)
  • Framework 16 with dGPU: 54 tok/sec
  • ThinkPad X1 Extreme (RTX 5070): 94 tok/sec

The MacBook wins on memory-bandwidth-bound models (anything that fits in unified memory is fast), the ThinkPad with a real NVIDIA GPU wins on throughput-bound workloads. For anything bigger than 14B parameters, the MacBook’s 36GB of unified memory pulls ahead of the 8GB VRAM on the ThinkPad’s 5070. If you ordered the M5 Max with 64GB or 128GB, local LLM work gets silly-fast.

Battery under load (the one that matters)

Every laptop review quotes battery life for video playback. That is useless. Here is what we saw compiling the same project on a 10 minute loop, screen at 200 nits, Wi-Fi on, Bluetooth off, no other apps:

  • MacBook Pro M5 Pro: 6h 20m to 20%
  • Framework 16 AMD: 2h 45m to 20%
  • ThinkPad X1 Extreme: 2h 10m to 20%

There is no contest. Apple Silicon under sustained CPU load is not just a little better on battery, it is in a different universe. This is the single biggest reason developers keep buying MacBooks. If you regularly work untethered (planes, cafes, conference rooms), nothing else comes close.

The x86 machines are fine when they are on wall power. The Framework and the X1 Extreme both hit their rated TDP and stay there. They turn into furnaces, but they perform. Unplug them and the story changes in five minutes.

Keyboard, trackpad, display

Subjective. We will not pretend otherwise.

Keyboard: the ThinkPad wins, and it is not particularly close. The X1 Extreme keyboard has real travel, a sensible layout, and the TrackPoint if you are one of the eight people left who use it. The MacBook keyboard is fine, which is a massive improvement over the butterfly-era misery but not amazing. The Framework 16 keyboard is configurable (swappable layouts!) and honestly not our favorite to type on. The keys feel a half millimeter mushy.

Trackpad: the MacBook wins by a mile. The Force Touch trackpad plus macOS gesture support is still the best combination shipping on a laptop. The Framework trackpad is a respectable modern trackpad. The ThinkPad trackpad is functional. If you live in gestures, this is a real daily quality of life gap.

Display: the X1 Extreme’s 4K OLED is stunning and will ruin you for LCDs. The MacBook’s mini-LED is very bright outdoors (1600 nits peak, it is wild). The Framework display is the weakest of the three, but it is a matte panel, which we prefer for outdoor work.

Thermals and noise

Under the cargo build test, surface temperature on the keyboard deck (measured between F and G keys with a cheap thermocouple):

  • MacBook Pro M5 Pro: 38°C, fans inaudible until minute 3
  • Framework 16 AMD: 47°C, fans loud from minute 1
  • ThinkPad X1 Extreme: 51°C, fans loud, rear vent hot

The MacBook is a magic trick. The other two are not. This is the same “Apple Silicon is a different class of machine” story, told with different numbers. If you do long compiles in a quiet apartment, a ThinkPad X1 Extreme at full tilt will annoy your partner. The Framework has better thermals than the X1 by a hair but is still audible.

Repairability and upgradeability

This is the Framework’s whole pitch, and it delivers. Every port is a swappable module (USB-C, USB-A, HDMI, SD, whatever you want). RAM is socketed. Storage is socketed. The battery is user-replaceable with a spudger and a few screws. Broken hinge? Order the part. We swapped a keyboard layout in about six minutes.

The ThinkPad is mid. You can replace the SSD and RAM without drama. The battery is accessible but not hot-swappable. Parts availability through Lenovo is decent for the first few years.

The MacBook has zero upgradeability. Every component is soldered. Battery replacement means sending it to Apple. This is the price of the performance-per-watt miracle. You are buying a fixed device and you are voting with your wallet for it to be disposable in five to seven years.

Framework makes a laptop that can exist for a decade. Apple makes a laptop that performs like 2028 until it performs like a brick. Both choices are defensible. Pick which one matches how you live.

Ports and dongles

The Framework 16 has six swappable port slots. We ended up running two USB-C, one USB-A, one HDMI, one SD reader, and one empty. Customizing per workflow is genuinely fun the first week and then you stop thinking about it.

The MacBook Pro has three Thunderbolt 5 ports, one HDMI, and an SD slot. This is much better than it used to be. The return of MagSafe is also still a win after three years. You will still own a dongle for USB-A peripherals.

The ThinkPad X1 Extreme has a standard assortment: 2 Thunderbolt 4, 2 USB-A, HDMI, SD. No dongles required for the usual stuff.

What we’d buy for whom

Fair warning, we have real opinions. If these feel assertive, that is the point.

  • Frontend / mobile / AI-product engineer who travels: MacBook Pro M5 (base or Pro). Battery life and thermals make it a laptop that works everywhere. The Docker penalty is real but rarely on the critical path for this kind of work.
  • Backend / infra engineer doing heavy container work: Framework 16 AMD with Fedora. Docker-native Linux, 64GB RAM on the cheap, you can upgrade it for a decade. You give up battery life.
  • ML researcher / local LLM power user: ThinkPad X1 Extreme with the 5070, or wait for the X1 Extreme with a 5080 refresh, or go MacBook Pro M5 Max with 64GB+ unified memory. For inference on truly big models, Apple unified memory is still the sleeper choice.
  • Generalist engineer who mostly runs a web stack: MacBook Pro M5 Pro with 36GB. Yes, still. It is the lowest total friction machine for shipping web software in 2026.
  • The “I want to support the repair ecosystem” engineer: Framework 16. Even if the numbers are not best-in-class, you are paying for a platform, not just a laptop.

The weird gotchas

A handful of things the spec sheet does not tell you, by machine.

The MacBook Pro M5 with the base 14-core GPU ships with 16GB of unified memory at the default price. That is too little for serious dev work in 2026. Upgrade to 24GB minimum. Apple charges $200 for 8GB of RAM, which is infuriating, and you will still pay it.

The Framework 16’s dGPU module adds real weight and real cost. If you do not need a GPU, skip it. The iGPU is fine for normal dev work. Also: the 180W charger is big. The 140W USB-C charger works at reduced performance on battery-intensive workloads. If you are traveling, plan for that.

The ThinkPad X1 Extreme hits thermal throttling under sustained CPU+GPU load, even on wall power. The chassis just can’t dissipate both. In practice this means cargo build while training a small model is going to disappoint you compared to a desktop.

What we’d actually buy, today

If we had to pick one machine for our whole team, it would be the MacBook Pro M5 Pro with 36GB of memory and 1TB of storage. That is the boring answer and it is the right one for a team that mostly ships web software and values not thinking about their laptop.

For our own personal machines, one of us runs the Framework 16 because we like fixing things. One runs a MacBook because we like sleep-to-wake in a second. One runs the X1 Extreme because of the OLED and the keyboard. All three choices are defensible. The worst thing you can do in 2026 is pick a fourth machine that is a clone of any of these but cheaper. The middle of the laptop market has not been this bad in years.