How Substack doubled mobile build speed with Bitrise

How Substack doubled mobile build speed with Bitrise

Subscription-based publishing platform and new media app
5M+ paid subscriptions
More than 50 people are making more than $1 million a year on Substack
"I’ve used Bitrise for years, both at my last company and again at Substack, and I’ve always had a good experience with it. And so, I was a pretty strong advocate for unifying everything there, it felt like a win-win for both parties.”

Summary

When Substack first launched in 2017, the company set out to give writers a better business model—built on subscriptions and direct relationships with readers. Since then, Substack has expanded into multi-format publishing across text, audio, and video, while building powerful tools for community and discovery for creators, writers, and thinkers of all kinds. Today, Substack is building a new economic engine for culture that supports a thriving network of tens of millions active subscribers.

Its mobile app, launched in 2022, is central to that mission and to how people experience Substack. With  ambitious goals ahead, Substack saw an opportunity to modernize its mobile CI setup for the next phase of the app. 

Now with Bitrise supporting mobile-CI for iOS and Android,  Substack has simplified day-to-day development and improved build performance. Build speed has doubled, complexity has reduced, and the mobile team are now empowered to move faster and keep pushing the bar higher for their growing community of creators and subscribers.

Challenge

Subtack’s legacy mobile Continuous Integration (CI) setup was complex, fragmented, and becoming increasingly difficult to manage. 

Android and iOS workflows were split across multiple CI tools, including:

  • Bitrise for app builds
  • Android Studio Lint for code quality monitoring
  • Xcode Cloud for iOS CI
  • Buildkite for running unit tests and formatting

This mix of tools introduced unnecessary friction into Substack’s day-to-day development, resulting in longer build times and a higher operational burden to keep both iOS and Android running smoothly.

“We were effectively juggling multiple CI solutions for iOS and Android, which made things awkward, as whenever something goes wrong, you have to look in a bunch of different places to find the answer.” 
Alex Sullivan, Senior Mobile Developer, Substack

Against this complex backdrop, Android build times were getting longer and longer. And, with a merge-queue system in place, slow builds started to create a bottleneck, blocking other developers from moving forward.

It was a similar story for the iOS team. On top of protracted builds, the fragmented CI setup made it difficult to handle Apple’s platform-specific requirements. As John explained: “When Xcode 15 was released, we ran into a lot of issues with Xcode Cloud. We actually had to turn off our UI tests temporarily.”

All of these challenges combined undermined the company’s confidence in mobile releases across both iOS and Android. With ambitious growth plans ahead, it was clear a new CI solution was needed. 

Substack's key requirements:

  • A single CI provider for both iOS and Android
  • Reduction of complexity, cost, and operating overhead
  • A CI partner with deep mobile expertise and hands-on support
“The minimum bar for us was that CI continued to run as before but that everything was consolidated into a single mobile CI provider.”
Alex Sullivan, Senior Mobile Developer, Substack

Solution

{{products-adopted}}

Substack replaced its legacy multi-tool CI with Bitrise, bringing iOS and Android onto a single, mobile-focused platform. The rollout started with iOS, before expanding to include Android too, as John recalled, “Bitrise reached out to us about consolidating our CI and it was the nudge we needed to move on iOS, and once that happened, it made sense to expand to Android too.”

“I’ve used Bitrise for years, both at my last company and again at Substack, and I’ve always had a good experience with it. And so, I was a pretty strong advocate for unifying everything there, it felt like a win-win for both parties.” 
John Malatras, Engineering Manager, Substack
“On the Android side, I’d already played around with Bitrise Build Cache for Gradle, and thought using Bitrise for our unit tests would be a good next step. It also felt like there was plenty of room to grow into more of the Bitrise ecosystem like Gradle caching, Android UI testing, and more along those lines.”
Alex Sullivan, Senior Mobile Developer, Substack

The team’s migration to Bitrise went really well, as John shared, “the experience was really positive. The team provided a complete “white glove service” which was really awesome. Ben Boral in particular, went above and beyond. As well as creating the pipeline and setting up any special conditions, he even took the time to fix and optimize all sorts of unrelated things with our setup. He was always so supportive and super proactive on Slack, it made the whole experience much easier for us.” 

As Substack has a monorepo setup (single code repository), the team were initially concerned this might complicate migration,“I was a bit worried at first,” Alex shared, “but Ben and the team guided us through the whole thing in a really smooth and approachable way, making everything clear. We always knew exactly what was happening and when, and how to keep improving our setup in the future. It was just a really excellent guided process.”

Results

“The move to Bitrise has really empowered the team. Our developers definitely feel more comfortable getting involved, making changes, and digging into things. We’re a small, lean mobile team supporting an app used by millions of people, so we don’t have much bandwidth to manage CI/CD. Now with Bitrise in place, everything just works, which is the best result.”
John Malatras, Engineering Manager, Substack

[list:checklist]

  • ~40–50% build speed improvement across iOS and Android
    Android: Average build times dropped from ~14 minutes on Buildkite to ~8 minutes on Bitrise leading to ~43% faster builds. As Alex shared, “We noticed speed improvements immediately.”
    iOS: Build times nearly halved after migrating from Xcode Cloud to Bitrise, resulting in ~40% faster builds.  According to John, “On the iOS side, just having access to Bitrise’s high-performance machines nearly doubled our build speed.”
  • 75% reduction in CI tooling while improving build speed and reliability
    Consolidated four separate CI tools (Bitrise, Buildkite, Xcode Cloud and Buildkite) to a single mobile-first platform, leading to lower costs and less complexity.
  • UI testing transformed across iOS and Android
    iOS: UI test coverage increased with Bitrise going from no active testing to full coverage. As John explained, “On iOS, our testing went from zero to basically infinity on Bitrise, which means we can ship with a lot more confidence now.
    Android:
    Test coverage increased by 100%+ with the addition of new emulator-based UI tests. As Alex shared, “Moving to Bitrise enabled us to add UI tests in a way that wouldn’t have been possible with Buildkite,” adding that “Being on Bitrise enabled us to take that next step into a new world of testing with a lot more confidence and a lot less maintenance burden than we would have had with our previous setup.”
  • Fast setup. More time to build.
    iOS: Bitrise’s simple setup means developers are empowered to self-serve which is encouraging greater experimentation. As John shared, “Someone recently set up the entire CI/CD for a new iOS TV app on Bitrise. I didn’t see or touch any of that code, they did it all themselves, which is awesome.”
    Android:
    Before Bitrise setting up UI tests with CI would've been a weeks long process. With Bitrise we were able to do it all during one short hackathon.. As Alex put it,
  • Confidence built into every release
    With Bitrise, Substack’s iOS and Android release management is fully automated in one place. Xcode updates are much easier too. As John shared, Now, when a new Xcode is released, it's really just about flipping a setting. Bitrise shares what to expect ahead of time, when you can upgrade and what will change, etc. Having this information early makes us feel much more confident making the change.”
“Mobile can be a challenging space to work in. On a lot of broader CI/CD platforms, if mobile support is there, it’s either an afterthought or a technically challenging plugin you have to work around. But as Bitrise is focused on mobile it makes everything easier. We know if we get a new Xcode version, it might be tricky to work with, but we now have the confidence Bitrise can handle it.”
John Malatras, Engineering Manager, Substack

The future

Substack’s mobile team now feel they have the right foundation in place to scale their organization for the future, as John said, “When we look to the future we feel we are really just getting started. We have the right mobile foundations to grow with us and at least three or four mobile roles open right now and I expect that demand to only rise faster in the future.”

On where they see the relationship with Bitrise heading, John puts it simply: “It feels like Bitrise is on our team. They keep us ahead with updates and flag new features that might help, so we feel really well looked after. If there’s an inefficiency, we know someone at Bitrise will be keeping an eye on it. It genuinely feels like a partnership.”

Now that the team no longer has to worry about the constraints and complications associated with their old CI setup, the team can explore new technologies like Kotlin Multiplatform and Gradle caching. As Alex shared, “Instead of thinking ‘oh god, how are we going to get that to work on CI,’ my reaction is ‘I bet it’ll just work’ and if not I’m confident Bitrise can help. It’s great to always have that support.” 

Most importantly, Bitrise works so well the team barely has to think about it, exactly what a fast-scaling mobile team needs.

“It’s definitely made CI feel less like a black box. Before Bitrise, if something went wrong or I was confused, I’d usually have to ping a systems person to figure out what was happening. With Bitrise, I understand the system end to end, and so I can just figure things out myself.”
Alex Sullivan, Senior Mobile Developer, Substack
“I barely have to think about CI now, which is all I want. There are days where we might want to integrate or update something in Bitrise so I might think more about it then. But most days, I don’t think about it at all, which is kind of a dream.”
John Malatras, Engineering Manager, Substack

Ready to cut complexity and move faster on mobile? Let’s talk.

Bitrise products adopted:

Results

~40–50%
faster builds (iOS and Android)
75%
reduction in CI tooling
100%+
increase in test coverage
Get started for free
Start building now, choose a plan later.

Get started for free

Start building now, choose a plan later.