# starti.app > starti.app turns an existing website into branded native iOS and Android apps. The SDK reference covers the JavaScript API a website calls to reach native device features; the Academy covers the starti.app Manager dashboard. Every link below points at the markdown source of a page. Drop the `.mdx` suffix for the rendered page. Academy pages are also available in Danish by swapping the `/en/` prefix for `/da/`. ## SDK - [Introduction](https://docs.starti.app/sdk.mdx): Learn how to build native mobile apps with web technologies using the starti.app SDK - [AI Coding Agents](https://docs.starti.app/sdk/ai-coding-agents.mdx): Point Claude Code, Codex, Cursor, and other coding agents at the starti.app documentation so they write correct SDK code - [CDN & Brand Configuration](https://docs.starti.app/sdk/explanation/cdn-and-branding.mdx): How the starti.app SDK is distributed via CDN and how brand-specific configuration works - [Domain Handling](https://docs.starti.app/sdk/explanation/domain-handling.mdx): How the SDK routes navigation between the main webview and the in-app browser - [TypeScript Support](https://docs.starti.app/sdk/explanation/typescript-support.mdx): How to use TypeScript with the starti.app SDK for type-safe development - [Adding Authentication](https://docs.starti.app/sdk/getting-started/authentication.mdx): Sign users in with Google, Apple, Microsoft, or MitID and manage authentication sessions - [Push Notifications](https://docs.starti.app/sdk/getting-started/push-notifications.mdx): Set up push notifications in your starti.app-powered app — from no-code Manager broadcasts to per-user targeting and advanced FCM token management - [Setup and the Basics](https://docs.starti.app/sdk/getting-started/setup-and-the-basics.mdx): Add the starti.app SDK to your page, initialize it, and read basic device information - [Storage and Data](https://docs.starti.app/sdk/getting-started/storage-and-data.mdx): Store and retrieve persistent data on the device using the starti.app Storage module - [Biometric Login](https://docs.starti.app/sdk/how-to/biometric-login.mdx): Use Face ID and fingerprint to save and retrieve user credentials securely - [Biometric Login with OAuth](https://docs.starti.app/sdk/how-to/biometric-oauth-login.mdx): Use Face ID or Touch ID to let returning users skip the full OAuth login flow - [Capture Images](https://docs.starti.app/sdk/how-to/capture-images.mdx): Take photos with the device camera or pick images from the gallery - [Control App UI](https://docs.starti.app/sdk/how-to/control-app-ui.mdx): Customize the status bar, navigation spinner, screen rotation, and swipe gestures - [Debug Your App](https://docs.starti.app/sdk/how-to/debug-app.mdx): Debug your app using Chrome Developer Tools for Android and Safari Web Inspector for iOS - [Handle Apple Server Notifications](https://docs.starti.app/sdk/how-to/handle-apple-server-notifications.mdx): Receive and process App Store Server Notifications V2 to track subscription lifecycle events on your backend - [Handle Domains](https://docs.starti.app/sdk/how-to/handle-domains.mdx): Control which domains stay in the main webview, which open in the in-app browser, and how to open the device's browser - [Handle Google Server Notifications](https://docs.starti.app/sdk/how-to/handle-google-server-notifications.mdx): Receive and process Google Play Real-Time Developer Notifications (RTDN) to track subscription lifecycle events on your backend - [Manage Push Topics](https://docs.starti.app/sdk/how-to/manage-push-topics.mdx): Subscribe and unsubscribe users from push notification topics - [Scan QR Codes](https://docs.starti.app/sdk/how-to/scan-qr-codes.mdx): Scan QR codes and barcodes with the built-in scanner and validate results - [Setup Google Analytics](https://docs.starti.app/sdk/how-to/setup-google-analytics.mdx): Track app usage in Google Analytics alongside your website traffic - [Set Up In-App Purchases](https://docs.starti.app/sdk/how-to/setup-in-app-purchases.mdx): Offer in-app purchases for consumable and non-consumable products on iOS and Android - [Set Up Subscriptions](https://docs.starti.app/sdk/how-to/setup-subscriptions.mdx): Offer auto-renewable subscriptions on iOS and Android using the starti.app SDK - [Share Content](https://docs.starti.app/sdk/how-to/share-content.mdx): Share text, URLs, and files through the native share sheet - [Sign In with Apple](https://docs.starti.app/sdk/how-to/sign-in-with-apple.mdx): Authenticate users with Apple Sign In and access identity information - [Sign In with Google](https://docs.starti.app/sdk/how-to/sign-in-with-google.mdx): Authenticate users with Google and receive an authorization code for token exchange - [Sign In with MitID](https://docs.starti.app/sdk/how-to/sign-in-with-mitid.mdx): Authenticate users with MitID (Denmark's national digital identity) via SignaturGruppen - [Simulate the App in a Browser](https://docs.starti.app/sdk/how-to/simulate-in-browser.mdx): Preview your app as it appears on a phone by adding a custom device in Chrome DevTools - [Use Geofencing](https://docs.starti.app/sdk/how-to/use-geofencing.mdx): Set up geofence regions and respond to enter and exit events - [Vibrate the Device](https://docs.starti.app/sdk/how-to/vibration.mdx): Trigger haptic feedback on user interactions using JavaScript or CSS classes - [Monetization](https://docs.starti.app/sdk/monetization.mdx): Choose how to sell content in your app — themes, chapters, premium features, or one-off purchases — and structure your store products to match. - [Choosing a Monetization Model](https://docs.starti.app/sdk/monetization/choosing-a-model.mdx): Compare per-item unlock, all-access unlock, content token, and all-access subscription — and pick the one that fits your catalogue, pricing, and whether you have user accounts. - [Sell Themes or One-Off Content](https://docs.starti.app/sdk/monetization/sell-themes-or-one-off-content.mdx): A complete recipe for selling individual content items as one-off purchases with the per-item unlock model — native restore, no backend — plus the scale path when your catalogue grows. - [App](https://docs.starti.app/sdk/reference/app.mdx): Control core app behavior including navigation, UI chrome, domain routing, device info, and screen options. - [Auth](https://docs.starti.app/sdk/reference/auth.mdx): Authenticate users with third-party identity providers (Google, Apple, Microsoft, MitID, and custom providers). - [Biometrics](https://docs.starti.app/sdk/reference/biometrics.mdx): Authenticate users with device biometrics (Face ID, Touch ID, fingerprint) and securely store credentials or arbitrary data in the device keychain. - [Camera & Image Capture](https://docs.starti.app/sdk/reference/camera.mdx): Capture photos and videos using the device camera or pick files from the gallery, using standard HTML file inputs. - [External Purchase](https://docs.starti.app/sdk/reference/external-purchase.mdx): Manage Apple's External Purchase Custom Link entitlement (StoreKit external purchase API). This module lets you check eligibility, retrieve purchase tokens, display the mandatory Apple disclosure notice, and redirect the user to an external purchase page. - [In-App Purchase](https://docs.starti.app/sdk/reference/in-app-purchase.mdx): Purchase products, manage subscriptions, and retrieve product information through the native App Store / Google Play in-app purchase flow. - [Location](https://docs.starti.app/sdk/reference/location.mdx): Access the device GPS, track location changes in real time, and set up geofences that trigger events when the user enters or exits a region. - [Media](https://docs.starti.app/sdk/reference/media.mdx): Control the device's system volume. Set an exact level, nudge it up or down by one step, or read the current value. You can also listen for volume changes made by the user (hardware buttons, Control Center, etc.). - [Network](https://docs.starti.app/sdk/reference/network.mdx): Monitor network connectivity and communicate over UDP on the local network. Useful for detecting online/offline state and discovering local devices. - [NFC Scanner](https://docs.starti.app/sdk/reference/nfc-scanner.mdx): Read NFC (Near Field Communication) tags from the device. Supports checking for NFC hardware and permission status, starting and stopping scan sessions, and receiving tag data via events. - [Push Notifications](https://docs.starti.app/sdk/reference/push-notifications.mdx): Register for push notifications, manage topic subscriptions, and respond to incoming notifications. Uses Firebase Cloud Messaging (FCM) under the hood. - [QR Scanner](https://docs.starti.app/sdk/reference/qr-scanner.mdx): Scan QR codes using the device camera, with optional real-time validation. - [Share](https://docs.starti.app/sdk/reference/share.mdx): Share files and text through the native OS share sheet, or download files directly to the device. - [Storage](https://docs.starti.app/sdk/reference/storage.mdx): Persistent key-value storage and web data management. The Storage module provides two capabilities: app-level key-value storage via Storage.app, and web data clearing via Storage.clearWebData(). - [User](https://docs.starti.app/sdk/reference/user.mdx): Manage user identity within the app. Register a user ID to associate the current device with a known user, unregister on logout, and let users request account deletion. The user ID is persisted in localStorage so it survives page reloads. - [Overview](https://docs.starti.app/sdk/rest-api.mdx): Server-to-server REST API for integrating with starti.app. Requires an API key from the starti.app manager. - [Push Notifications](https://docs.starti.app/sdk/rest-api/push-notifications.mdx): Send push notifications and badge updates to users, devices or topics. - [Apple App Store](https://docs.starti.app/sdk/stores/apple-app-store.mdx): Set up your App Store Connect API key and publish your app to the Apple App Store - [Google Play Store](https://docs.starti.app/sdk/stores/google-play-store.mdx): Create a Google Play service account and publish your app to the Google Play Store ## Academy - [Introduction](https://docs.starti.app/en/academy.mdx): Welcome to starti.app Academy — your guide to getting familiar with the starti.app Manager platform and making the most of your app. - [Turn on auto-renewal for your Apple Developer membership](https://docs.starti.app/en/academy/important-to-know/apple-developer-renewal.mdx): Make sure your Apple Developer membership renews automatically, so your app doesn't risk being removed from the App Store - [View app performance in Dashboard](https://docs.starti.app/en/academy/manager/app-downloads/dashboard.mdx): Track app downloads and active users over time — and see in one graph whether your push notifications drive more activity - [Get more downloads with Flowlink](https://docs.starti.app/en/academy/manager/app-downloads/flowlink.mdx): Find your universal app link and QR code — one link that automatically sends users to App Store, Google Play, or shows a QR code on desktop - [See and manage your registered users](https://docs.starti.app/en/academy/manager/app-downloads/registered-users.mdx): Find the users your app has registered, see their push status, language and devices — and send a push notification to one specific user - [Add Smart Banner to your website](https://docs.starti.app/en/academy/manager/app-downloads/smart-banner.mdx): Show a download prompt at the top of your website when visitors open it on a mobile phone — and send them directly to App Store or Google Play - [Create and manage API keys](https://docs.starti.app/en/academy/manager/development-setup/api-keys.mdx): Create API keys to send push notifications from your own system or automation tool — without logging in to starti.app Manager - [App icon](https://docs.starti.app/en/academy/manager/development-setup/app-icon.mdx): Upload your app icon, choose a background color, and adjust how it looks on iOS and Android - [App Links – make links open in the app](https://docs.starti.app/en/academy/manager/development-setup/app-links.mdx): Let an ordinary HTTPS link from your website open directly in the app instead of the browser — choose domains, generate the files, and test the setup - [Download test version of the app](https://docs.starti.app/en/academy/manager/development-setup/download-test-app.mdx): Download the test version of your app on iOS and Android, and control who has access to test it - [Initialization settings](https://docs.starti.app/en/academy/manager/development-setup/initialization-settings.mdx): Control how your app behaves when it loads — gestures, status bar, safe areas, and the loading spinner - [Splash screen](https://docs.starti.app/en/academy/manager/development-setup/splash-screen.mdx): Set up what users see while your app starts up — choose between an icon with a spinner, a Lottie animation, or a fullscreen image - [Integrate your app with your website](https://docs.starti.app/en/academy/manager/development-setup/website-setup.mdx): Copy the HTML snippet you need to add to your website to integrate your app with your site - [Add users to starti.app Manager](https://docs.starti.app/en/academy/manager/getting-started/add-users.mdx): Give colleagues access to starti.app Manager so they can help send push notifications and update content in the app - [Update App Store / Google Play](https://docs.starti.app/en/academy/manager/getting-started/app-store-google-play.mdx): Keep your app name, description, and contact details up to date so starti.app always has the right content ready for the next App Store and Google Play release - [Set up Introflow](https://docs.starti.app/en/academy/manager/getting-started/introflow.mdx): Set up the welcome screen new users see when they open the app for the first time — and increase the likelihood they accept push notifications - [Microsoft login asks for admin approval](https://docs.starti.app/en/academy/manager/getting-started/microsoft-admin-approval.mdx): Understand what Microsoft's 'Approval required' message means and what you or your IT administrator need to do to move forward - [Create push notification categories](https://docs.starti.app/en/academy/manager/getting-started/push-categories.mdx): Create categories so users only receive push notifications that are relevant to them — for example News, Offers, or Order Status - [Add test devices](https://docs.starti.app/en/academy/manager/getting-started/test-devices.mdx): Add test devices and send push notifications or activate Introflow on specific devices before sending to all your users - [About push notifications](https://docs.starti.app/en/academy/manager/push-notifications/about-push-notifications.mdx): Learn what push notifications are, how they appear on the phone, and what makes them one of the most direct tools for reaching your users - [View scheduled push notifications](https://docs.starti.app/en/academy/manager/push-notifications/scheduled-notifications.mdx): See an overview of your upcoming push notifications and delete them before they are sent - [How to send a push notification](https://docs.starti.app/en/academy/manager/push-notifications/send-push-notification.mdx): Create and send a push notification to all your users or to a specific category — or schedule it for a specific time - [View sent push notifications](https://docs.starti.app/en/academy/manager/push-notifications/sent-notifications.mdx): See all previously sent push notifications — when they were sent, who received them, and how many clicked - [How to set up a welcome flow](https://docs.starti.app/en/academy/manager/push-notifications/welcome-flow.mdx): Set up an automatic series of push notifications sent to new users in the days after they install your app - [What's new](https://docs.starti.app/en/academy/news.mdx): The latest updates across the starti.app platform — app, SDK, Factory, Manager and Academy. ## Optional - [Full documentation](https://docs.starti.app/llms-full.txt): every page above concatenated into a single markdown file