Write AI loops for your Android apps

Configure loops for your Android projects that turn crashes, user reviews, QA tickets and backlog items into pull requests. You just review code and merge.

  • Errors, user reviews, QA reports, performance improvements, memory leaks and features
  • Integrates with Firebase Crashlytics, Sentry, Datadog, Bugsnag, Google Play, Zendesk, Intercom, Jira, Linear and GitHub Issues
  • AI costs included, or bring your own Anthropic key
See plans from $299/mo

Or bring your own Anthropic key from $199/mo. Cancel any time.

Early access opens on 1 December. Subscribe now and billing starts then.

droidfast loops dashboard: errors, reviews, QA, performance, memory and features loops with their sources, next run and the pull requests they opened

Jorge Castillo

Android engineer. Founder of droidfast.

Every Android team I know has the same four piles: a crash dashboard nobody has time for, one-star reviews describing the same bug, a QA backlog that grows every sprint, and tickets that never get picked up. What if they emptied themselves, and your job was to review the fixes?

The information to fix most of these problems is already there. The stack trace is in Sentry or Crashlytics. The steps to reproduce are in the review or the Jira ticket. What's missing is someone with the time to connect it to the code, write the fix and open the pull request.

That's what droidfast does, in loops.

You connect your repo and the tools you already use, and twice a week droidfast:

  • Reads what's new in your error monitoring, store reviews, support inbox and issue tracker
  • Merges duplicates across tools, so one problem becomes one piece of work
  • Sorts bugs from improvements and features, using your own labels first
  • Writes the fix with Claude Opus 5.5 in the style of your codebase
  • Checks it on your CI and fixes failing checks before anyone looks at it
  • Opens the PR with your template, labels, reviewers and milestone
Sample workspace, one month

It also looks after the things nobody files a ticket for. The performance and memory-leak loops analyse your main branch twice a week and open PRs for slow startup, janky Compose screens, main-thread I/O and screens that leak, each with an explanation of what was wrong.

Sample pull requests from a demo workspace

What it plugs into:

  • Errors: Firebase Crashlytics, Sentry, Datadog, Bugsnag
  • Users: Google Play reviews, Zendesk, Intercom
  • Work: Jira, Linear and GitHub Issues, with your own rules for which tickets are bugs and which are features
  • Code: GitHub, with your existing CI checking every pull request

You choose which loops run, which tools feed them, and what their pull requests look like.

Your team stops triaging and starts reviewing.

Jorge

See plans from $299/mo

Or bring your own Anthropic key from $199/mo. Cancel any time.

Early access opens on 1 December. Billing starts then.

From early access

Engineering managerFintech appEarly access

Our Crashlytics top ten used to sit there for weeks. Now the fixes arrive as PRs on Monday and Thursday, already passing CI, with the root cause explained. We review and merge.

QA leadMarketplace appEarly access

We kept filing bugs in Jira exactly like before. The difference is that most of them come back as pull requests linked to the ticket before the next sprint planning.

Android leadMedia appEarly access

Forty one-star reviews about the same checkout freeze turned into one PR with the fix. That's the moment the team stopped calling it 'the bot'.

The loops

Six loops, each with its own sources, filters and pull request rules. Turn on the ones you need.

0. Connect onceabout 10 min

Install the droidfast GitHub App on your Android repos, pick the loops you want, and connect at least one source for each.

  1. 0.1Install the GitHub App on one repo or your whole organisation1 min
  2. 0.2Choose loops and connect their sources (OAuth or API key)2 min each
  3. 0.3Set PR rules: title and description templates, labels, reviewers, milestone2 min
  4. 0.4Pick your AI option: we cover it, or paste your own Anthropic key30 sec
1. Errors loopCrashlytics, Sentry, Datadog, Bugsnag

Reads new and growing errors from your monitoring tools, merges duplicates across them, finds the code responsible and opens a fix PR for the ones worth fixing, most affected users first.

  1. 1.1Sources: Firebase Crashlytics, Sentry, Datadog, Bugsnagpick 1+
  2. 1.2The same crash reported by two tools becomes one fix, not twodeduplicated
  3. 1.3Ranked by users affected and trend, not by noiseprioritised
  4. 1.4PR links the original reports and explains the root causeevery PR
2. Reviews & support loopGoogle Play, Zendesk, Intercom

Reads Google Play reviews and support tickets, sorts them into bugs, improvements and noise, groups what users repeat, and opens PRs for the bugs it can fix with confidence.

  1. 2.1Sources: Google Play reviews, Zendesk, Intercompick 1+
  2. 2.2Classified as bug, improvement or noise; 40 reviews about one problem become one itemgrouped
  3. 2.3Bugs and clear improvement requests become PRs, each labelled as a fix or an improvementevery PR
3. QA loopJira, Linear, GitHub Issues

Your QA team keeps filing bugs where they already do. You define which tickets droidfast should take, and it opens fix PRs for the bugs that match, each referencing its ticket.

  1. 3.1Sources: Jira, Linear, GitHub Issuespick 1+
  2. 3.2Jira rules: projects, issue types, labels, components, status, priority, fix version, or a JQL queryyou decide
  3. 3.3Linear rules: teams, projects, labels, states, priority, cyclesyou decide
  4. 3.4GitHub Issues rules: repos, labels, milestones, assignees, issue types, stateyou decide
  5. 3.5Title rules on every platform: include or exclude by regular expressionyou decide
  6. 3.6Only bugs are picked up; feature requests are left to the Features loopfiltered
  7. 3.7PR links back to the ticket, so QA can verify the fixevery PR
4. Performance loopmain branch

Analyses main twice a week for startup, jank, Jetpack Compose recomposition, R8 and app-size problems, and opens PRs with targeted improvements.

  1. 4.1Compose stability, state reads and lazy lists, startup work, main-thread I/O, R8 configstatic + compiler reports
  2. 4.2Optional: reads your Macrobenchmark results from CI to rank by measured impactmeasured
  3. 4.3Only analyses again when main has changedefficient
5. Memory leak loopmain branch

Finds leaks before users hit OutOfMemoryError: screens retained by static fields, listeners never unregistered, coroutines outliving their screen, oversized bitmaps.

  1. 5.1Static leak patterns across Activities, Fragments, Views and ViewModelsstatic
  2. 5.2Optional: reads LeakCanary reports from your instrumented test runsmeasured
  3. 5.3Fix PRs explain the retention path and how it was brokenevery PR
6. Features loopJira, Linear, GitHub Issues

Picks new features and improvements from your tickets and implements them as pull requests. Bugs and errors are never picked up here: they belong to the Errors and QA loops.

  1. 6.1Sources: Jira, Linear, GitHub Issuespick 1+
  2. 6.2The same matching rules as the QA loop: projects, types, labels, states, priority, title regex, JQL…you decide
  3. 6.3Only items that are new features or improvements, by your issue types and labels firstfiltered
  4. 6.4Implemented by Claude Opus 5.5, in your codebase's own style and architectureOpus 5.5
7. Your PRs, your rulesper loop

Every loop has its own pull request settings, so a crash fix and a new feature reach the right people looking the right way.

  1. 7.1Title and description templates with placeholders for source, severity and linkstemplates
  2. 7.2Labels, reviewers or teams, assignees and milestone per loopper loop
  3. 7.3Branch prefix and maximum PRs per runper loop
  4. 7.4Verified on your own CI; if a check fails, droidfast fixes it before asking for reviewyour CI
8. Efficient by designtwice a week

Loops run twice a week, and you can trigger up to two extra runs a week per loop. Nothing new means nothing to do: a quiet week costs nothing and creates no noise.

  1. 8.1Only new or changed signals since the last run are readincremental
  2. 8.2Duplicates are merged before any AI work startsgrouped
  3. 8.3A PR is only opened when the change is clear; anything else is skipped and listed in your dashboard with the reasonconfident

Sources and filters may expand before launch.

Pricing

One price per month for a set number of pull requests. No seats, no usage surprises.

Team

Turn crashes, reviews and QA bugs into fixes.

$299/mo

AI costs included

  • 25 PRs/mo
  • 1 Android repo
  • Loops: Errors, Reviews & support, QA
  • Runs twice a week, plus 2 manual runs a week per loop
  • PR templates, labels, reviewers and milestones per loop
Start Team

Scale

Every loop, including features from your tickets.

$499/mo

AI costs included

  • 50 PRs/mo, up to 5 of them new features
  • 3 Android repos
  • Loops: Errors, Reviews & support, QA, Performance, Memory leaks, Features
  • Runs twice a week, plus 2 manual runs a week per loop
  • PR templates, labels, reviewers and milestones per loop
Start Scale

Prices in USD, billed monthly, before tax. Early access opens on 1 December; billing starts then.

The things Android teams ask me

"AI pull requests are low quality."

Generic ones often are. droidfast implements every change with Claude Opus 5.5, only opens a PR when the fix is clear, runs your own CI on it, and fixes failing checks before asking for review. Anything uncertain is skipped, with the reason shown in your dashboard.

"We don't want a bot merging code."

It never merges. It opens pull requests with the reviewers and labels you chose, and your team decides. Closed PRs teach it what your team doesn't want.

"It will flood us with noise."

Loops run twice a week, merge duplicates first, and stop at the PR limit you set for each loop. A quiet week produces nothing.

"Our code and data are sensitive."

Each run works in an isolated sandbox that's deleted afterwards. Your code is never used to train models. With your own Anthropic key, AI requests go straight to your account.

"We already have Sentry and Jira."

Good, keep them. droidfast doesn't replace your monitoring or your tracker. It reads them and turns what they find into fixes.

"What does it really cost?"

A fixed monthly price for a set number of PRs. No per-seat charges and no usage surprises. Bring your own Anthropic key for a lower subscription and twice the PRs.

Is droidfast right for you?

  • You ship an Android app and your code is on GitHub.
  • Your crash dashboard, review inbox or QA backlog grows faster than your team can fix it.
  • You'd rather review pull requests than triage tickets.
  • You already use tools like Sentry, Crashlytics, Jira or the Play Console.
  • You want a fixed monthly price, not another per-seat bill.
  • Not for you if your code isn't on GitHub, or nobody on the team has time to review pull requests.

FAQ

When can we start?

Early access opens on 1 December 2026. If you subscribe before then, billing only starts on that date, and you can cancel any time before it.

What counts as a PR?

Each pull request droidfast opens counts once, whatever the loop. If droidfast pushes extra commits to fix a failing check, it's still the same PR. Unused PRs don't roll over.

How often do loops run?

Twice a week, on the days you choose. If you need a loop sooner, you can run it manually up to two extra times a week. That's frequent enough for crashes, reviews and QA, and it keeps cost and noise down.

Which AI model writes the code?

Claude Opus 5.5 implements every pull request. Lighter models only sort and group incoming reports, before any code is written.

How does bring-your-own-key work?

Paste an Anthropic API key in your workspace. AI requests go to your account and you pay Anthropic directly, so the subscription is cheaper and includes twice as many PRs. You can switch between the two options at any time.

How does it tell bugs, improvements and features apart?

Your own labels and issue types come first (for example Jira's Bug or Story, or a GitHub label). When an item isn't labelled, droidfast classifies it and shows you the reason. On top of that, each loop has its own matching rules (projects, labels, states, title patterns and so on). Bugs from Jira, Linear and GitHub Issues go to the QA loop; new features and improvements go to the Features loop. droidfast never creates tickets or issues: it only opens pull requests.

Who gets notified?

GitHub does it for you. droidfast requests reviews from the reviewers or teams you set for each loop, and GitHub notifies them as it does for any pull request.

Is it only for Android?

Yes. Kotlin and Java, Jetpack Compose and Views, including the Android parts of Kotlin Multiplatform projects.

Can we cancel?

Any time, from the billing portal. Your plan stays active until the end of the period you've paid for.

droidfast

by Jorge Castillo

See plans from $299/mo

Or bring your own Anthropic key from $199/mo. Cancel any time.

Early access opens on 1 December. Subscribe now and billing starts then.