Skip to content

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.

Founding access100 lifetime spots

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.

  1. 20 min

    Step 1: Find a Mac

  2. 40 min

    Step 2: Update Xcode

  3. 10 min

    Step 3: Build & sync

  4. 25 min

    Step 4: Renew certificate

  5. 20 min

    Step 5: Fix profiles

  6. 5 min

    Step 6: Bump build number

  7. 30 min

    Step 7: Archive & sign

  8. 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.

  1. 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
  2. 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
  3. 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
  4. 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.

What you already have

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.

$149once

Lifetime access to the Starter plan — its usage limits still apply.

  • 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.