starti.app

Introduction

Learn how to build native mobile apps with web technologies using the starti.app SDK

starti.app SDK

starti.app lets you ship a native iOS and Android app that wraps your existing web application. Your web code runs inside a native container, and the SDK gives your JavaScript access to native device features — push notifications, biometrics, storage, authentication, and more.

You write normal web code. When you need a native capability, you call an SDK method, and the native layer handles the rest.

What you can do

  • Authenticate users with Google, Apple, Microsoft, and MitID
  • Send push notifications with topic-based subscriptions
  • Access device hardware — camera, NFC, biometrics, GPS, accelerometer
  • Scan QR codes and barcodes with the built-in scanner
  • Store data persistently on the device
  • Handle in-app purchases on iOS and Android
  • Share files and text through the native share sheet
  • Control the app UI — status bar, spinner, navigation, screen rotation

Add the SDK to your page

Load the SDK by adding these two tags to your HTML <head>. Replace {BRAND_NAME} with your brand name from the starti.app manager or find the exact lines here.

<script src="https://cdn.starti.app/c/{BRAND_NAME}/main.js"></script>
<link rel="stylesheet" href="https://cdn.starti.app/c/{BRAND_NAME}/main.css" />

The script creates a global startiapp object on window - no import or npm install needed.

Quick start

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1.0"
    />
    <title>My starti.app</title>

    <!-- Load the starti.app SDK -->
    <script src="https://cdn.starti.app/c/{BRAND_NAME}/main.js"></script>
    <link rel="stylesheet" href="https://cdn.starti.app/c/{BRAND_NAME}/main.css" />
  </head>
  <body>
    <p class="startiapp-show-in-app">You are using the native app!</p>
    <p class="startiapp-show-in-browser">
      Download our app for the best experience.
    </p>

    <script>
      startiapp.addEventListener("ready", async function () {
        startiapp.initialize();

        // Check if running inside the app
        if (startiapp.isRunningInApp()) {
          console.log("Running in starti.app!");

          // Get the device platform
          const platform = startiapp.App.platform; // "ios" or "android"
          console.log("Platform:", platform);
        }
      });
    </script>
  </body>
</html>

Documentation structure

On this page