Hangar - Public release soon
I'm preparing Hangar for public open-source release!
Hangar?
Hangar is a self-hosted EAS builder that I've been working on in recent times. It comprises of a few moving parts, namely a server that runs on your Mac Mini (or any other system, though only tested on Mac), and a CLI that you install locally. The server includes the actual builder, an API (i.e. project source ingress), and a dashboard.
You setup the server on the Mac, and it runs under PM2. Why not Docker? Well, docker is a container system, which means it can't speak to the host system at all. This means it can't access the xcode build tools or similar.
Fortunately, docker is actually unnecessary, because with some technical wizardry, you can run concurrent builds without risk of conflicts.
Do I need a separate system?
Absolutely not. You could install it on your Macbook, and use it just for ease of management - i.e. all your project builds in one place. The reason I recommend a separate system is because it decouples the actual build tools from your development environment and reduces risk of breakage.
Main features
There's a couple of main features, but maybe it's better to explain the reasons I build it.
QR code install. I'm an Apple user, and I loathe having to connect my iPhone to my Mac. Yep, I know that 'connect over wifi and use Finder' is a thing, but so many times it just fails. That leaves 'Apple Configurator', which is a great piece of software but categorically doesn't work with phones that aren't physically connected. Expo, on the other hand, gives you a QR code to allow installation. This is by far the biggest reason I wanted to build Hangar.
Easier management. When it comes to app builds, I am notoriously lazy. I do EAS local builds almost exclusively, and these end up being dumped into the folder with the project. It's OK for a while, but can you imagine what it's like after a year or 2. Yeah, that's right, I once got to the point of having so many IPA, AAB, and APK that I hadn't deleted, that my 2TB M1 Max Macbook Pro ran out of space. For context, under normal circumstances (i.e. after I tidy up), I'm using about 700GB of storage. I don't dislike external drives, but they're not reliable for build tools and the other 'essentials' I need. I like the convenience of it all being internal. So, Hangar helps me keep all builds in one place for easy access and install.
Workflows. I am a fiend for workflow. By that, I mean 'do something when something else happens'. I make heavy use of them in N8N. I built them for Nenuzo - e.g. data-imports that need to run in a certain order. I built them for Deckyard. I'm building them into Echelon (if I actually decide to continue working on it). For Hangar, these workflows for me are 'send me a pushover with an install link when a build completes' and 'send me a pushover when a build fails'. This is an improvement on the QR code flow, and it's a huge convenience.
Supporting multiple SDK versions. This was less of a problem, but one I actually only discovered a few days ago. For those who don't know, Expo SDK 56 requires at least Xcode 26.4 (or maybe 26.5). Without that, you'll get a build error. This is a problem, since I also found out that SDK 55 projects don't compile properly with 26.5. It's not a huge problem, since I use Xcodes.app to easily manage and switch versions, but it's also not as convenient as it 'just working'. So, in recent days, I decided to update Hangar to support SDK auto-detect, but also enable overriding the version of Xcode that's used.
When?
I don't have an exact ETA for public release, but it's in progress. That means it could be in the next day, sometime next week, sometime next month, or maybe never. I'm wanting to release it, but I might change my mind.