My Mac Setup

So I've recently got a new M1-chip Mac mini, thanks to the generous $1000 donation from Storyblok, they've been contributing a lot to the open-source community as well, definitely check them out if you need a new headless CMS, it's free for single-developer projects.

Break the wall

As someone living in China, the first thing I do after receiving a new Mac, is to install a VPN app to access the actual internet. Surge is probably the most powerful and well-designed app for this area, but it's really expensive ($49 for a single device). As the M1 powered Macs now support iPhone and iPad apps, I reckon some iOS VPN apps might just work as well, and they are way cheaper. I tried ShadowRocket which costs only $2.99 without device limitation, and it works perfectly on my Mac. The tool I use to install iOS apps on Mac is called iMazing, you can use it to export app as .ipa file and double-click the file to install on your Mac.

One downside of running iOS apps on Mac is that you have to Force Quit (Command-Option-Escape) to actually exit the app, otherwise they will continue to run in the background even if you quit (Command-Q) them.

The Browser

Safari is extremely fast now, actually a lot faster than Chromium-based browsers according to Speedometer score, so it is naturally my first choice for general web browsing, however I don't really enjoy the experience of Safari devtools, and Chrome devtools is arguably the best developer tool for web developers, that's why I also use the Chromium-based Microsoft Edge to develop web apps, it also feels a bit faster than Google Chrome, and there has been some controversy over how Chrome can slow down your Mac recently.

The Editor

There were many choices 4 years ago, like VS Code, Atom or Sublime Text, but as of today, VS Code has been my go-to editor for almost everything, it's incredibly fast and versatile, almost making me forget that it's Electron-based!

This year Panic released their long-awaited native Mac editor: Nova, but to be honest, performance-wise it doesn't seem to be superior to VS Code, despite the fact it's a native Mac app. DX-wise VS Code has best-in-class TypeScript support and many more official plugins for other languages, so I'm not sure about the selling points of this new editor. Not to mention that VS Code supports Remote Development using SSH, and the editor is cross-platform and open-source.

Messaging

I use two messaging apps, Wechat and Telegram. I use Wechat because I live in China, everyone else uses it, as for Telegram, it's what Wechat should have been.

Terminal

Honestly I've forgot why I'm using iTerm2 instead of the default Terminal.app, but it's so good that I have no complaints.

I also use Fish shell instead of Zsh which comes by default with macOS. Fish is probably the king of auto-completion in shells, I can't find any Zsh plugin that could perfectly replicate its features in Zsh.

As for shell prompt, I use starship.rs, it's written in Rust and the interface is intuitive and clean. There's no prebuilt binary available for M1 yet, so you have to build from source: brew install -s starship

Email Client

I used to use Gmail web client a lot with the Simplify Gmail extension. But recently I discovered a native Mac email client called MimeStream which is a nice Gmail-focused Mail.app alternative, it's really fast and easy to use.

Some Other Apps I Use

My Thoughts

Overall moving to an M1 Mac has been a pleasant experience, it's incredibly fast, for example building Node.js from source only took 744 seconds. As for compatibility, every app I use can run perfectly on the new Mac, Rosetta 2 works incredibly well for Intel-based apps too. There're a few bugs (WiFi and Bluetooth related) in macOS but I reckon they're mostly software problems instead of hardware problems, I hope they will be fixed in the upcoming macOS update (or introduce more bugs, who knows, it's macOS!).