Built on the App Store Connect API · TestFlight feedback

TestFlight feedback,
triaged into code-grounded fix tickets.

Triagepad reads your beta feedback, localises each report against your real code, and hands you a fix ticket that points to the file and line. Delivered as a plan, an open PR, or an auto-fix.

Your code never leaves your CI. Triagepad only ever sees already-collected feedback.
The problem

Beta feedback is a pile of vague screenshots and half-sentences.

You ship through TestFlight, testers send whatever they feel, and it lands as a heap of context-free notes. You triage it by hand, lose the thread, and real bugs slip through between builds.

“It crashed”

No steps, no build number, no idea which screen. You reproduce it by guessing.

In a language you can’t read

打开个人资料就闪退

A tester reports in their own language. Bug or feature request? You can’t tell. You can’t even read it.

The same bug, five times

Duplicates across builds bury the one report that actually matters. Nothing is grouped.

Then it’s gone

A note scrolls off, a request is forgotten, a fixed issue keeps getting re-reported. No trail.

How it works

From raw feedback to a merge-ready ticket, in three steps.

01
Connect

App Store Connect + your repo

Link your App Store Connect account and point Triagepad at the GitHub repo behind the app. Self-serve setup takes about five minutes.

02
Triage

Feedback triaged against your code

A tester submits feedback and Triagepad localises it against your code, running inside your own CI. Candidates are ranked and verified at HEAD.

03
Ship

A code-grounded ticket, your way

Receive it as a plan, an open PR, or an auto-fix, with the file and line already pinpointed. Review and merge.

Code-grounded, not another inbox

A real ticket points to the file and the line.

Left: what the tester actually sent. Right: what Triagepad found in your code, with ranked candidates verified against HEAD and a fix prompt ready to run.

TriagedCrashTRI-2048 · 3 testers

App crashes when opening Profile from a deep link

Validation
Validated
Confidence
94%
What the tester said
tester screenshot
Original · Čeština

“Když otevřu profil z odkazu v e-mailu, aplikace hned spadne. Přes záložku profil funguje normálně.”

Auto-translated · English

“When I open the profile from a link in an email, the app crashes immediately. Through the profile tab it works fine.”

Device
iPhone 14 Pro
OS
iOS 17.5
Build
482
App version
3.2.0
Also reported by 2 other testers on builds 480–482.
What Triagepad found
Nil deep-link user ID crashes ProfileViewController
Severity: High

Opening a myapp://profile URL with no userId query force-unwraps a nil value, raising a fatal error before the view appears.

Ranked candidatesverify = anchor confirmed in code
File
Line
Conf.
Verify
ProfileViewController.swift
force-unwrap of route.userId
stack-trace
142
94%
DeepLinkRouter.swift
missing query validation
identifier
67
41%
AppDelegate.swift
URL handoff
string-literal
210
12%
Fix prompt▾ ready to run
In ProfileViewController.swift:142, guard `route.userId` instead of force-unwrapping. Fall back to `session.currentUserId` when the deep link omits it; show the empty profile state if neither resolves. Add a regression test for the ID-less deep link.
Mode-aware · you choose the automation
The invariant

Your code never leaves your CI.

Triage runs inside your own pipeline. The Triagepad brain only ever triages feedback that has already been collected, and it mints a short-lived token to do it. Your repository tree is never sent to Triagepad, and never stored.

What comes back is the ticket: the ranking, the file and line references, the fix prompt. The code stays where it always was.

Runs in your CI

Localisation happens on your infrastructure. The tree is read where it lives.

Short-lived token only

The brain gets a scoped, expiring token to triage collected feedback. Nothing persistent.

Bring your own key

Runs on your own Anthropic key from your repo secrets. Triagepad never touches it.

Built for people who ship

Enough automation to move fast, enough control to stay safe.

Mode-aware delivery

Plan, open PR, or auto-fix. You pick the automation level per app. Schema and design-decision tickets always wait for you.

Never silently dropped

Feature requests surface, fixed-stale reports are detected, and needs-decision tickets are gated. Nothing scrolls into the void.

Live PR status

Watch a ticket move from triaged to open PR to merged, with the evidence source recorded when it resolves.

Five-minute setup

Self-serve. Connect App Store Connect and your repo, and Triagepad starts triaging the next feedback that lands.

Currently in private beta

Triage your next build’s feedback.

We’re onboarding indie developers and small teams by invite. Request access and we’ll be in touch. Free during the beta.

No card. Invite-gated. Your code never leaves your CI.