No accounts exist yet. To create the master admin, paste the setup token printed in your server console below — this proves you have access to the server so a stranger can't claim your instance.
Welcome back. Enter your credentials to continue.
Forgot your password?
Don't have an account? Create one.
Enter the email on your account. If it matches, we'll send a one-hour reset link. If SMTP isn't configured, the link is printed to the server console — ask your administrator to forward it.
Back to sign in
You requested a password reset. Pick a new password to sign in.
Sign up to wrap your websites into native Android and iOS apps. You'll see only your own apps; administrators see everything.
Already have an account? Sign in.
Create an app or select one from the app switcher to start configuring a native wrapper.
Add your existing keystore for app migration. If you do not provide one, we will generate a new keystore exclusively for your app.
iOS builds require macOS/Xcode to archive and TestFlight or App Store Connect to distribute. This dashboard stores the configuration and sends it through the iOS build endpoint.
Run Android builds, confirm iOS readiness, and keep release preparation organized without fake plan limits or clutter.
Make the launch screen fill the entire screen with your chosen image, logo, animation, or video treatment. Every option is included for every app.
2732×2732 PNG in apps/<slug>/assets/splash.png.
apps/<slug>/assets/splash.png
Choose which native capabilities the wrapped website can use.
nativebarcodescan
Enable only the permissions your app actually needs. Each toggle adds the required iOS Info.plist usage description and the matching Android <uses-permission> entry. The text below is used for iOS prompts and App Review; Android uses the standard system permission dialog. Turning a permission off removes it from both platforms.
Info.plist
<uses-permission>
navigator.geolocation
NSLocationAlwaysAndWhenInUseUsageDescription
getUserMedia({audio:true})
NSUserTrackingUsageDescription
Manage wrapper identity, appearance, WebView behavior, and device-specific runtime controls from one place.
Give another dashboard user access to this app and all of its settings. Only the app owner or a Super Admin can change sharing.
Control orientation, immersive mode, system bars, zoom behavior, resume callbacks, and other native device/runtime settings here. Camera and biometric permission prompts still live under App Permissions.
wrapperAppResumed
window
LOAD_NO_CACHE
UISupportedInterfaceOrientations
supportedInterfaceOrientations
prefersStatusBarHidden
prefersHomeIndicatorAutoHidden
applicationDidBecomeActive
WKWebsiteDataStore
webView.scrollView.bounces = false
These settings are written to App/wrapper-ios-settings.json and read by ViewController.swift at startup. Use macOS or CI to archive.
App/wrapper-ios-settings.json
ViewController.swift
Control which URLs stay in the app, open in an in-app browser, or behave as deep links.
Future controls for injected CSS, allowed pages, app-only banners, and remote website overrides.
Configure native push notification provider settings.
Configure the native-feeling navigation layer your wrapped app should use. These settings are saved into the app config and generated environment for the wrapper shell.
Configure how the wrapped website signs users in with biometrics. When enabled, the wrapper detects the website's login form, offers to remember the password after the first manual sign-in, then offers one-tap Face ID / fingerprint sign-in on every future visit.
[autofill]
Enable the biometric permission first under App Permissions for these settings to take effect.
Future reusable icon sets and generated asset history.
Manage your AppWrap account details and password from one place.
Connect your Apple Developer account to manage your iOS apps from here. Create a key in App Store Connect → Users and Access → Integrations → App Store Connect API, then paste the Issuer ID, Key ID, and the downloaded .p8 file below. iOS binaries are still built and uploaded on macOS/CI — this manages everything else.
.p8
Manage site-wide AppWrap controls from one place. User management and subscription settings live here so only Super Admins can control billing configuration.
Manage global AppWrap instance settings that apply to the dashboard, account access, and future subscription flows.
Used for generated links, emails, webhook setup hints, and subscription redirects later.
These colors control the dashboard brand system only. Individual wrapped app colors still live in each app's settings.
Super Admins can invite teammates, change roles, or remove accounts. Users only see the apps they own; Super Admins see everything.
Create and manage fully customizable subscription plans — pricing, billing interval, trial, features, and entitlements. Customer checkout and enforcement come later; this defines the catalog.
Manage the site-wide card payment provider, Stripe keys, plan price IDs, and billing readiness from one Super Admin-only area. Checkout, billing portal, webhooks, and entitlement enforcement are intentionally not active yet.
Credit card billing should use Stripe Checkout and the Customer Portal later. Do not collect or store card numbers here. Secret keys are write-only: the dashboard only shows whether they are configured.
This records settings only. It does not turn on checkout yet.
Live mode requires live keys and an HTTPS webhook base URL.
Stripe webhook endpoint: Set a public app URL to generate this.
Set a public app URL to generate this.
Charge 's saved card immediately. Money moves right away — this is a real, off-session charge to the card on file.
Solid uses the background color already shown in the Appearance card for this mode.
Use an HTTPS or site-relative image URL. The dashboard adds a subtle overlay so text stays readable.