UseThatApp Logo

    UseThatApp Documentation

    Add software licensing to your web application in minutes. UseThatApp lets you gate content behind license tiers so you can ship free, Pro, and Enterprise experiences from a single codebase.

    How It Works

    UseThatApp uses a two-phase server-to-server webhook handoff. No iframes, no client-side JavaScript, no shared secrets — just two backend calls:

    1. Launch. When a user clicks Launch app on usethatapp.com, the marketplace POSTs an encrypted, signed envelope to your app's launch URL. Your backend calls get_user (Python) or getUser (JavaScript) to verify and decrypt it, and gets back an opaque user_key to persist against its own session.
    2. Query. Whenever your app needs the user's current tier, it calls get_version / getVersion. The SDK signs the request with your private key, hits https://usethatapp.com/licensing/getversion/, and returns the product name (e.g. "Pro") or null.

    Quick Example

    Two server-side calls — verify the launch envelope, then look up the live tier whenever you need it:

    Python

    app.py
    from usethatapp import get_user, get_version
    
    # In your launch route — your framework's request shape may vary:
    uta_user = get_user(request.form["uta_payload"])
    session["uta_user_key"] = uta_user.user_key
    
    # Anywhere else:
    version = get_version(session["uta_user_key"])
    if version == "Pro":
        ...  # serve paid content

    JavaScript

    server.mjs
    import { getUser, getVersion } from "usethatapp";
    
    // In your launch route:
    const user = getUser(req.body.uta_payload);
    req.session.utaUserKey = user.user_key;
    
    // Anywhere else:
    const version = await getVersion(req.session.utaUserKey);
    if (version === "Pro") {
      // serve paid content
    }

    Why UseThatApp?

    Two Calls to Integrate

    Verify the launch envelope, then call get_version when you need the tier. No client-side SDK to wire up.

    Secure by Design

    Hybrid envelope crypto (RSA-OAEP + AES-GCM + RSA-PSS) and signed server-to-server queries. Your private key never leaves your backend.

    Any Framework

    Tested examples for Flask, Django, FastAPI, Dash, Streamlit, Express, Fastify, Next.js, Nuxt, and plain Node.

    Supported Frameworks

    Choose your language to see the full list of framework guides, or jump straight to the Quick Start.