Apple M1 for discourse development

Hi there,
I am planning to get Apple macbook pro M1 for discourse development and wanted to get some community dev’s review about Apple’s m1 processor with discourse development.

Do you suggest getting Apple MacBook pro M1 as primary discourse development device?


We have quite a few engineers who use an M1 for development and love it. @david can probably elaborate.


Yeah it works great! Combatibility was a little rough to start with, but now Postgres/Redis/Ruby/Discourse are all working great! A huge perf upgrade compared to my previous intel MacBook. There are a few more details in this topic


This sounds convincing :wink: thanks a lot @sam and @david I’ll post my experience when I get it delivered :grinning:


Hello :wave: Anyone has Discourse development setup on an M1 machine while also developing other projects using other technologies? How’s the experience and what’s your process like?

I am developing and maintaining a few other projects and it’s been a pain to switch between them, now even more than ever because of the M1 ARM architecture. Adding and hacking configs to make things run (like different binary locations for different tech stacks and CLIs, different SSH keys for different emails) has been a real chore. So I am trying to optimise the process and am using aliases and basic scripting in my .zshrc file.

At this point in time, I just limit myself to developing my Discourse theme and reading the Discourse codebase :face_vomiting: :joy:

Other tech stacks I’m developing on my M1 machine besides Discourse:

  • Rails 6
  • Rails 5 + React
  • React Native

You can always just use our Docker setup if you want complete isolation.

It is not as fast as running native, but perfectly usable from what I hear.


Unfortunately the M1 Docker implementation has some issues which mean our base image doesn’t work :cry:

As for isolating dev environments - I guess my advice would be to make sure you’re using Bundler / Yarn to allow installing different dependencies for each project. For Ruby, there are also tools like rvm which allow you to instantly switch between different versions of Ruby.