A short animation: a few lines of JavaScript are written in an editor next to the JavaScript logo. The code is pulled into a box labelled pkgr.app, which builds, signs and seals it as an iOS app. The box flies into an iPhone and becomes an app icon, a notification says the build is ready on TestFlight, and the App Store lights up as live while Google Play is marked as coming soon.
Your JavaScript,
on the App Store.
pkgr.app turns your JavaScript web app into a signed iOS app, then ships it to TestFlight and submits to App Store on every push.
Built in the cloud — no Mac, no Xcode.
- iOS — available now
- Android — coming soon
JavaScript in.
App Store out.
Packaged, signed and shipped by pkgr.app — from any machine.
Works with the stack you already ship
- Javascript
- Typescript
- HTML
- Capacitor
- Ionic
- Angular
- React
- Vue
- Android
- iOS
Without pkgr.app
8 steps by hand. Every release.
- 20 min
Step 1: Find a Mac
- 40 min
Step 2: Update Xcode
- 10 min
Step 3: Build & sync
- 25 min
Step 4: Renew certificate
- 20 min
Step 5: Fix profiles
- 5 min
Step 6: Bump build number
- 30 min
Step 7: Archive & sign
- 45 min
Step 8: Upload & wait
Or just git push.
git push
Web bundle built
Signed in the cloud
Uploaded to TestFlight
3 min · unattended · no Mac
Hands-on time, every release:3h 15m
The pipeline
Four steps. You do the first two once.
After that, shipping a mobile app is the same gesture as shipping a website:git push.
Once
01 Point us at your repo
Install the pkgr.app GitHub App, pick a repository and a branch. That is the entire integration — no code to upload by hand, no build config to write, and you can revoke access at any moment.
- Official GitHub App
- One branch per project
- Revocable in one click
Once
02 Hand over the keys, once
Certificates, provisioning profiles and your Android keystore go into the Vault. Encrypted at rest, injected only into the run that needs them, never shown to a browser again. The one file you genuinely cannot afford to lose stops living in a Downloads folder.
- Encrypted at rest
- Short-lived run tokens
- EU data residency
Every day, forever
03 Then go back to writing code
Every push to your branch starts a build on its own. Redundant runs cancel themselves. There is nothing to trigger, nothing to babysit, no Xcode to open — and no Mac anywhere in the loop.
- Automatic on push
- Ephemeral isolated runners
- Manual trigger anytime
Three minutes later
04 A signed binary comes out
Signed iOS and Android artifacts, ready to upload to the stores — alongside the status, duration, commit, branch and full logs of every run you have ever made. No more wondering whether last night’s release actually shipped.
- Signed .ipa and .aab
- Full run history
- Complete logs, kept
Got these three? You're ready.
Tick all three to unlock your first build.
- No Mac
- No Xcode
- No CI config
Founding access
100 spots. Then it's a subscription, like everything else.
Lifetime access to the Starter plan — its usage limits still apply.
Card or crypto
One payment, never again
No subscription, no renewal.
100 spots, then closed
After that, Starter goes monthly.
Zero risk, in writing
No build by December 31, 2026? Full refund, automatically.