I ordered a Framework laptop a few months ago and I finally received it last week, and I'd like to share my first impressions and how I had set it up for my needs.
A few things to note before I get into the details. I am a Mac user for about
14 years now, and even though their quality is not as good as it used to be, I
still love Apple's products. My iPhone is the best phone I ever had and I tried
a few high-end Android ones, none of them came close the experience and iPhone
gives to me.
The same is true for my Macbooks and MacOS. They work pretty much out of the box, and they work really well. But there is one major problem, which started to bother me. Apple products are pretty much impossible to upgrade and hard to repair. To remove the bottom lid on my 16" Macbook Pro is not a trivial task, and it requires a few tools. I haven't replaced the battery yet, but I can imagine how difficult that will be. And batteries die eventually, so making them easy to replace should be a priority if we want to lower our carbon footprint.
Upgradeability is also an issue. I have 2 2015 Macbook Pros, because when I purchased the first one, I underestimated the spec I needed and 2 years later, I had to by a new one to have more RAM and more storage. This is such a waste of resources, and thinking about my kids future, I want to reduce the waste I produce directly or indirectly.
So long story short, I was looking for alternatives to my Macbook for a while and I came across the Framework laptop, which promises repairability and upgradeability. And they actually deliver on that one so far. Even though you can upgrade the mainboard(laptop motherboards have integrated CPUs, so you can't upgrade just the CPU unfortunately), I decided to go with the top end of the processor, but chose only 32GB or RAM(I have that much in my Macbook) and 1TB of SSD, because if I outgrow either of them, I will be able to add another 32GB of RAM and replace the SSD with a bigger one, and maybe use the 1TB one in a NAS or something. But I don't think the SSD will be an issue ever, I already have a file server at home to store videos, etc.
This is the exact spec I ordered:
Configuration CPU: Intel® Core™ i7-1280P Memory: 32GB (1 x 32GB) DDR4-3200 Operating System: Windows 11 Home (Download) Storage: 1TB - WD_BLACK™ SN850 NVMe™
When I received the laptop, my first thought was how tiny it is(bear in mind I am
coming from a 16" Macbook). The build quality is pretty good, it is aluminium, not
plastic and feels like a Macbook to be honest. The keyboard is good, but it I had
to get used to it. When I first booted the laptop with a GUI, the screen was scaled to 200%
and I was wondering how will I work on such a small space, but after some experimentation
with a few Linux distros, I ended up with a Fedora 36 + KDE Plasma(X11) setup,
scaled the screen to 150% and it works great.
I did a generic Fedore install, then installed KDE(still hadn't removed GNOME) with dnf:
I changed the scale at the display preferences, also change the trackpad confoguration
to allow tap to click, and double finger right click.
The I installed git and a few packages required to setup my development environment:
I am a 1Password user, but unfortunately they don't have the standalone licence for
Linux, so I decided to switch to a password manager without a subscription and chose
Enpass for this. I installed it on the Mac, move over my data from 1Password, synced
it to dropbox, installed it on Fedora and connected it to Dropbox.
After having my passwords at hand, I installed the BlueMail email client, and configured my email accounts.
Then I moved over my dotfiles, installed vim, zsh, ohmyzsh and got my terminal into the same state as my Mac.
While doing all these steps, I noticed that, whenever I leaving the laptop in sleep, it still drains my battery. I found the steps to enable deep sleep on the framework forum. It requires setting kernel flags, and while I was doing this, I also updated the flags to make the display brightness control:
Having the battery issue resolved, I realised I need to remap some keys to keep my sanity, and I found Kinto, which makes that super easy. After setting it up, I felt like home.
It was time to install rbenv(which I did from source) and ruby-build. To install rubies, I had to install perl, but after that, there were no issues.
I also tried to install Slack, but for some reason, I can't sign into workspaces with 2FA in the desktop app. It succeeded once, but then I got signed out and I can't make it work, but to be honest, I realised that it is a lot less distraction to just use the web interface when needed.
As far as I remember, these are the initial setup steps I did, and now I am trying to use the new laptop as my daily driver.
After these few days, I find that the size is actually pretty good. It is small, but that means is also lightweight and I can easily carry it around the house, and I haven't even plugged it in to an external monitor, so I think the screen real estate will be enough for me. The peformance is great, but with this spec, that's not surprising. The biggest downside is the touchpad, it is nowhere near as good as the Mac, but I am using it less and less anyways, so I can live with that. The speakers are also not great, but I use headphones anyways, and if I want to, I can probably replace them with something better.
The tooling is also behind the Mac on Linux, but I believe if more people start to use Linux on the desktop, there will be more tools to use.
As you can see it took more work than on a Mac, to reach a point where I feel comfortable on the Framework, but I think in long term, this investment will pay off. And who knows, maybe Apple will change and produce more upgradable and repairable laptops, although the M line doesn't really shows that.
Thanks for reading, I will write an updated review in a while.
Did you enjoy reading this? Follow me on Twitter or sign up to my newsletter for more content like this!
I run an indie startup providing vulnerability scanning for your Ruby on Rails app.It is free to use at the moment, and I am grateful for any feedback about it.
If you would like to give it a spin, you can do it here: Vulnerability Scanning for your Ruby on Rails app!