A history of fastlane

As I recently joined as a maintainer of fastlane I wanted to recap the long history of this software that started in 2014 in Felix's dorm room.

Though we probably have to turn the clock back to 2013 for the first iterations of fastlane that were beginning. Felix was responsible for open sourcing a set of scripts that automated collection of iOS screenshots in different languages and device types. It was named "iOS-Screenshot-Automator" and worked by a bit of scripting to invoke UIAutomation for moving about an iOS app.
With the popularity this repository had Felix wanted a higher level language with a bit more control and thus built "deliver" - a modern tool in Ruby for uploading binaries, screenshots and more to iTunes Connect. This was the beginning of a bunch of new tools that quickly were released in the next couple of months:
- snapshot - Automatically taking screenshots of an iPhone application.
- frameit - Automatically framing screenshots with stock iPhone bezels.
- PEM - Automatically generate push notifications and certificates.
- sigh - Automatically handling the code signing, provisioning profiles and more.

In early 2015 though Felix knew that a bunch of a separate independent tools required a bit more work to unify them together. This led to the creation of fastlane as we know it today - a collection of sub projects that could be used to chain many parts of the tool-chain together. It launched with a website (fastlane.tools) and brought a good solid brand to the new open source collection of projects.
The tool count continued to increase into 2015 with new tools like:
- produce - Automating creation of apps on iTunes Connect & Apple Developer Panel
- cert - Automatically creating code signing certificates.
- codes - Automatically creating promo codes for iOS applications.
Which led to the big 1.0 release on May 5, 2015 which was a large milestone as the community around fastlane was growing. Though at this point in the history of fastlane communication with Apple primarily worked from web scraping from a headless browser as it harvested cookies to act on behalf of the user in question.
This was great to starting the project, but was quite slow and flaky and probably not recommended nor encouraged by Apple itself. This is where we saw businesses start showing support (in this case ZeroPush) who came in to sponsor an effort to replace a headless web browser with a basic HTTP client. We were still years away from Appstore Connect API being released, but this was a great progression to speed up the tooling.
Like was becoming a pattern it wasn't a new tool with a catchy name without a new website, so "spaceship.airforce" launched to celebrate the enhancement.

With this completed Felix was back to work with a group launching another few tools:
- boarding - support for inviting TestFlight beta testers.
- pilot - manage your TestFlight builds and testers.
- match - a unified tool for everything code signing.
As you can possibly tell it was getting slightly confusing which tool corresponded to which action solely based on the name, but you couldn't argue with the extreme benefit these solutions offered at the grand price of zero dollars.
Exciting news arrived in October of 2015 when fastlane joined Fabric (Twitter) which was slightly interesting as one of the first sponsors (ZeroPush) was also acquired by Fabric. This partnership gave the time and money to engineers to expand the tooling for 2 big things:
- 1.0 releases for all tools (deliver, pem, produce, snapshot, sigh, gym, frameit, cert, scan)
- Android support


With such a large growing open source community GitHub was still in a raw form with not much of the maintainer support it offers to this day. This led to Felix and a friend Orta building Danger which was an automation agent for code review. Danger for fastlane was able to inject test results into a GitHub comment, request further details if information was missing, request a specific format to the description and more. The additional automation helped relieve the pure effort needed to simply maintain the repository.
Things were going great with features expanding for Android with tools like "screengrab", but some tech debt was increasing. At this time fastlane was a collection of 10+ other tools which required releases of all those different projects, updating version numbers in the main tool to bring in the update, tons of different CI systems and more. All in all it was a maintenance burden that needed a change.
This change hit in February of 2016 when fastlane became a monorepo with all the tools unified into one large repository. Extreme care was taken to not disrupt the experience for end users which led to a project that was growing quicker and easier than once before. For the next year the project continued to excel or expand with features until a larger announcement that hit in January of 2017.

The project had moved hands again or probably more technically that Fabric at Twitter was going to join Firebase at Google and unify forces. This quickly led to a new tool being launched called "precheck" which would help identify any common mistakes during submission to a store.
Roughly around this time all the short name tool names finally got a name that represented a bit more of what they did. For someone working around these tools at this time it was incredibly confusing for those unfamiliar with the scene to refer to tools like "gym, sigh, supply, pilot, etc". This resulted in a large rename of everything, while keeping support for the old usage.
| old name | new name | description |
|---|---|---|
| cert | get_certificates | fastlane cert create |
| deliver | upload_to_app_store | fastlane deliver run |
| frameit | frame_screenshots | fastlane frameit run |
| gym | build_ios_app, build_app | fastlane gym build |
| match | sync_code_signing | fastlane match run |
| pem | get_push_certificate | fastlane pem renew |
| pilot | upload_to_testflight | fastlane pilot upload |
| precheck | check_app_store_metadata | fastlane precheck |
| produce | create_app_online | fastlane produce create |
| scan | run_tests | fastlane scan |
| screengrab | capture_android_screenshots | fastlane screengrab run |
| sigh | get_provisioning_profile | fastlane sigh renew |
| snapshot | capture_ios_screenshots, capture_screenshots | fastlane snapshot run |
| supply | upload_to_play_store | fastlane play_store run |
Being under Google now there was CLAs to sign, a more robust setup of CI scripts and good deal of extra work going on. The core team of people working on fastlane had grown to over 20 and fastlane-community launched as a cool little organization to house plugins that could be maintained by the group.
However, Felix's journey of leading a massive amount of development had come to an end with him leaving Google and fastlane. He started a new page in his life in his blog post in February of 2019.

That marked a sad day for fastlane as Felix had lead development and managed the entire ecosystem for years on years, but there was still hope as Google could still sponsor/pay for some of the other crew of core contributors. In this case we saw Josh step up and he started in March of 2018 taking over releases.
However, its tough to really understand how much Felix did for fastlane. He was building CI solutions to ease the development effort, designing vision documents and trying to piece together a community to see the project forward. The vision was grand, but the task of everything fastlane had was catching up with the remaining maintainers.
At the moment of this blog post - we can look at the 2 organizations:
- fastlane - 838 open issues, 309 open pull requests.
- fastlane-community - 195 open issues, 29 open pull requests.
As 2019 came to an end and 2020 and 2021 flew by the repository was just roughly adapting to the never ending changes of iOS and Android while competing with the adaption of the dependencies and Ruby language. A Ruby project that supported such a wide variety of Ruby versions while full of dependencies was a challenge to maintain.
Something changed though in 2021 that the speed of releases slowed down and changes when they did occur were for big events - like new phones, Xcode versions, changes, etc. Issues were staying open and the community would have to ping issues quite heavily to get a response. It didn't seem like there was much room left anymore for tech debt, new features, maintenance or keeping the massive amount of repositories alive.
Early in 2023 a few complaints were rising online that changes weren't getting merged, things were going stale and people had a bit of wonder of what was happening to fastlane. It was still under Google, but it didn't seem to have much of a Google sponsored team behind it anymore.

Sure enough in February of 2023 Josh explained that Google had abandoned sponsoring in the end of 2021. Once this hit Hacker News a few folks upset that Google was basically letting fastlane decay put up some suggestions. One of those was to ask Google to move the project into Mobile Native Foundation's hand.
I was still a bit lost that fastlane which had over 20 maintainers was somehow becoming abandoned. We weren't talking about 1 or 2 people here, but over 20. I was also completely unaware what Mobile Native Foundation was, but it seemed like a good organization that took software many companies depend on and moved it into an organization that wouldn't decay out behind a business.


https://github.com/MobileNativeFoundation/discussions/discussions/194
I subscribed to this thread and waited for months and while it took pretty much a chunk of 2023 Google finally approved a transfer and fastlane was under Mobile Native Foundation's control. As another year went by we clocked into 2025 and nothing really much had changed. A few new owners were added/removed from the repositories and all Google required "CLA" scripts were disabled, but everything was still branded via Google.
I think what happened was the classic case of the bystander effect - everyone wanted stuff to happen, but no one wanted to contribute the work. We were 18 months post Mobile Native Foundation and people were still asking if they could "de-google" the projects and the claims of "Is this project dead?" were coming back.
I won't basically repeat my last blog post, but I joined the group in November of 2025 and have gotten to work restoring some activity to the project. The history behind fastlane is long and hopefully its far from being over, but its such an interesting project that takes automation to processes that have largely lacked in the automation category.
Sure Xcode Cloud exists and a few paid solutions, but for a free open source solution to automate iOS and Android builds - fastlane is still as good as it gets. I'm happy I get a bit of time at work and my own hobby time to improve this software for the masses.
