Share mobile builds with QA, Product, stakeholders, or clients
Upload an IPA or APK, get a link and QR in seconds. The organized Firebase App Distribution alternative for React Native, Flutter, and native teams.
Free forever for 1 project. No credit card.
$ buildtree upload ./app.ipa --env dev --branch feature/payments↳ Uploading app.ipa (28.4 MB)…↳ Confirming upload…✓ Uploaded (sh.acme.app v1.5.0 build 142)https://buildtree.sh/install/folder/acme-mobile/dev/feature/payments
Built for the QA loop you actually run
Hosting the file is the easy part. The work is getting it onto a tester's phone: registering their iOS device, install pages they trust, and QR codes that always point to the right build. We've built that part so you don't have to. Build wherever it makes sense: locally, on CI, with EAS's local mode, with Fastlane, with Xcode.
Multi-stack from day one
React Native (Expo or bare), Flutter, native iOS, native Android. Any .ipa or .apk works. We never tell you which build tool to use.
Branch-aware folders
Builds organize themselves by environment and branch. QA always finds the latest dev/feature/payments build without you DMing them a link.
QR + CLI workflow
Upload from your terminal or CI in one command. Pin an install URL to a build, point at the latest in a folder, or freeze it to a release tag.
Three commands. That's the workflow.
From a fresh repo to QA installing your build in under five minutes.
Build wherever
Locally, on CI, with whatever tool you already use. We don't replace your build pipeline.
$ eas build --local↳ build/App.ipa
Upload via CLI
One command. Direct upload to Cloudflare R2 via presigned URL. Your build never proxies through our API.
$ buildtree upload App.ipa✓ build id 7f3e…
Share QR or install link
Pinned, folder (always-latest), or release-tag (frozen). Pick the URL that fits the conversation.
/install/folder/acme/uat/install/release/acme/v1.5.0
Fits the workflow trunk-based teams already run
develop stays release-ready because every feature branch ships a QA build before it merges. That used to be five custom GitHub Actions and a Slack channel. With buildtree it is one CLI line in CI and a stable install URL per branch.
PR opens for feature/payments
CI runs buildtree upload --env dev --branch feature/payments
01QA gets a branch URL that auto-updates
/install/folder/<project>/dev/feature/payments stays the same every commit
02Tester signs off, PR merges to develop
No Slack message chase. No stale links. The bookmarked URL was the latest all along.
03Merge produces the new develop checkpoint
buildtree upload --env dev (no --branch). Internal stakeholders get the freshest passing build at one stable URL.
04
Pricing that doesn't punish you for shipping
Flat tiers. Hard limits. No surprise overage bills.
Solo
Indie hackers shipping real apps.
- 3 projects
- 25 GB storage
- 90-day retention
- Branch-aware folders
- Private install links
Team
Where most teams land.
- 10 projects
- 100 GB storage
- Unlimited retention
- Team members + roles
- Install analytics
- Slack notifications
Business
Org-wide deployments + compliance.
- Unlimited projects
- 500 GB storage
- SSO / SAML
- Audit logs
- Custom domain
- Priority support
Hard limits per tier. No usage-based overage billing. Customers approaching limits get warned at 80% and 100%.
Ready to share your first build?
Free forever for 1 project. Magic-link sign-in, no credit card, no setup ceremony.