Skip to content
Logo Theodo

The Unfortunate Demise of App Center - An Obituary

Mo Khazali8 min read

An App Center logo on a gravestone.

Today is a sad day for the React Native ecosystem. Microsoft very quietly announced that App Center is being “retired” in just over a year’s time (at the end of March 2025). Over the years of building React Native apps, I used App Center on many, many projects. It was the one-stop shop for building, distributing, testing, and handling (some limited) analytics. It became a standard part of every React Native setup I had.

Admittedly over the last few years, I’ve used App Center less and found myself reaching out more and more to use Expo on apps that I would start, but there was still a sense of comfort in knowing that there were many solutions I could reach for if I wanted to build and distribute my app.

CodePush is an essential part of React Native

My background in building mobile apps started back in 2013, when I built my first iOS app with Objective-C. I remember the many hurdles that I had to face as I came to terms with releasing to the App Store. With every update I wanted to release of my app, I had to wait for days to get my changes out to users. It didn’t matter if it was a minor bug change or a complete app revamp, there was always the ghoulish presence of the App Store review process that meant I had massive delays between updates.

When I started using React Native, I found that this frustration was largely resolved. I felt like I had superpowers, being able to only updating the Javascript part of my app and push that code to users through over-the-air (OTA) updates. It was such a good feeling - it almost felt illegal. This was one of those things that made me fall in love with React Native, and I ended up spending a load of time inspecting the inner workings of the CodePush pod, trying to understand how the underlying native code works.

CodePush was the first mainstream implementation of OTA updates and it opened up great possibilities for RN apps to outpace native apps in shipping quickly.

I was speaking with someone today and they made a really fascinating point - “CodePush has become synonymous with over-the-air updates in the RN community - kinda like how you say Kleenex for a tissue, or how you say Tide for laundry detergent.

It’s sad to see CodePush servers being shut down - however, perhaps the ultimate sucker punch is that the App Center docs don’t publicly state what developers should do to replace it! They make the vague statement that:

We have prepared a special version of CodePush to integrate into your app and run independently from App Center. If you’d like to get access to the codebase of this CodePush standalone version, please reach out to our support team at support@appcenter.ms for more information.

On initial glance of this, my thought was, “Great! They’re going to allow people to self-host CodePush!“. However, as I’ve sat with this more and more, I feel like the fact that this “self-hosted” implementation is being kept private is very deliberate and concerning. Microsoft does not want to bear the burden of maintaining (let alone updating and improving) an open-source version of CodePush for the community to use.

To some degree, that’s understandable - it may not be in their interests to allocate resources to maintaining CodePush as OSS. However, my concern is that there seems to be no indication of any effort to find community maintainers or other companies to take over CodePush and preserve it in the long run.

”But I can implement my own build / distribution pipelines. I’ll maintain my own CodePush, thank you very much…”

Sure, that’s definitely an argument you can make if you’re a company with experienced React Native teams (who can also understand the native implementations of CodePush). However, this comes at a pretty large cost, which most businesses either won’t/can’t incur.

On top of that, startups and newcomers to the React Native space will not be able to keep up and maintain their own CodePush solutions. This effectively means that in the long run, CodePush will die out and there will only be a single way to benefit from OTA updates - using EAS.

Before I go any further, I want to preface this by saying that I have nothing but good things to say about Expo… I love the SDKs, EAS, the team, and the tools and framework that they build. I use it the majority of the time these days to build React Native apps. The arguments that I’m putting forth are more out of principle than anything.

Monopolies Are Bad

In December 2023, I was attending React Day Berlin and a speaker from Vercel was up to speak. To everyone’s surprise, as he went upstage, a bunch of people from Vercel popped up a “NextJS” sign over the podium covering the word “React” on it…

A Tweet showing the NextJS Banner

Now the comedic timing of this was hilarious - parts of the React community had been voicing frustrations over how “Vercel was taking over React”, given the closely tied roadmaps and direction of NextJS with future iterations of React. Stunts like this didn’t help beat the allegations that NextJS was effectively becoming the sole framework to use with React.

If there’s one lessons to learn from this story, it’s that devs like to have several options to choose from (or at least, have a semblance of choice). Collectively as a community, we’re not big fans of a single company having a monopoly over languages/frameworks - and I think it’s pretty safe to say that in general, monopolies are not good.

Monopolies are bad for an industry for 2 reasons:

  1. A single entity has full control of how a service/good is priced and developed, because there’s no market to incentivise competition.
  2. As a result of the lack of diversity in options, innovation and improvement in that space stagnates.

There’s a reason people like open source software - there’s power in numbers, and the collective wisdom of developers trying out libraries/solutions, and then driving improvements back into them, is super powerful. It’s become a core part of the software industry’s DNA. Large companies have been backing open-source increasingly in the past decade.

One of the reasons I really back React Native as a framework is because of the fact that it’s not only being invested in by Meta, but also by Microsoft and Amazon. All three use React Native in their apps, from the Facebook app itself, to Microsoft Office, and even the Amazon Shopping app. This gives them a clear incentive to invest and help grow React Native together. Even though Meta created React Native, there are so many other players in the space that it doesn’t feel monopolised and “owned by” Meta.

Compare this to other cross-platform technologies, like Flutter, where it’s clearly owned and maintained solely by Google. I don’t feel the same level of safety in its longevity (especially given Google’s track records and the fact that none of Google’s major apps use it…)

All that being said, with App Center and CodePush being shut down, EAS Updates are going to be the only way to push code over-the-air going forwards. EAS Updates are not cheap either - if your app has 200,000 MAUs, you’ll be spending at least $950 per month on using EAS Update. Compared to App Center’s free CodePush, this is a steep cost for a lot of smaller businesses to incur.

The Expo team will definitely be seeing this as an opportunity to capitalise on, and their LinkedIn post today shows that they’re prepping for the influx of apps that will be switching to EAS:

Expo's post on LinkedIn around App Center being shut down

Now in Expo’s defence, there are escape hatches for EAS which allow you to implement and host your own servers for over-the-air updates and manage it yourself. However, the reality of this is quite complicated to manage and scale at production - similar to how deploying a NextJS site on a platform other than Vercel is possible, but definitely not as easy. Nonetheless, this is very much in the spirit of open source, and is a great show of the Expo’s positive intentions for the community. That being said, EAS will still be the only hosted service that you can now use to easily build, update, and release your RN apps, effectively meaning that they have a monopoly over the ecosystem.

Closing Remarks

App Center has been a pioneer for improving CI/CD in React Native for the masses, and its innovations have served this community so greatly. Its influence in the way we build RN apps today cannot be overstated. Even though we’ll still have amazing React Native CI/CD thanks to the folks at Expo, I really hope another player emerges and fills the App Center shaped void in this space to help drive competition and improve React Native for the masses in the years to come.

Liked this article?