Skip to content

Paywalls that rewrite themselves toward conversion.

Server-driven native UI + Bayesian optimization. Ship contracts, not code — and let your paywall converge on what actually converts.

Built for growth, product and mobile teams
BUILT ON THE STACK YOU TRUST
DivKitStoreKit 2Play BillingRevenueCatReact Native
<5 ms

p95 delivery at 10× pilot load · staging

0 lines

of downloaded code · by design

10%

fixed holdout for unbiased uplift

LESS GUESSWORK. MORE EVIDENCE.

Watch the UI fit itself to conversion.

Same native components. Different hypotheses. One continuous learning loop.

NATIVE PAYWALL EXPLORING
9:41
Runner training on a coastal roadstride.
Unlock Premium

A plan that meets you where you are. A stronger you, one run at a time.

7 days free, then $6.99/month. Auto-renews. Cancel anytime.
Illustrative USD prices. Real prices resolved on-device.

Conversion uplift
Learning…
Collecting evidence · 50 holdout sessions needed
REPLAY
ONLang adaptiveFixed holdout (10%)
Hypothesis allocationTRAFFIC / P(BEST)
CTA copy01
Continue33%100%
Start free week — cancel anytime33%0%
Get my plan33%0%
Value proposition02
Unlock Premium50%100%
Outcome-led50%0%
Social proof03
Off50%100%
On50%0%
Default plan04
Monthly50%100%
Annual50%0%
EXPERIMENT EVENTS0 / 24 retired
›Guardrail: price disclosure visible ✓
›Registry: 24 approved compositions loaded

24 approved compositions · 90% adaptive traffic · 10% fixed holdout · Nothing generated at request time

FROM HYPOTHESIS TO HIGHER CONFIDENCE

Contracts, not code.

You define what can change. ONLang learns what should.

01 / REGISTRY

Register once

Bring your native components. Define their props and safe boundaries.

02 / HYPOTHESES

Define hypotheses

Explicit candidates in code. CTA copy, value props, flow order — not infinite guesses.

03 / COMPILER

Compile contracts

Composition IR becomes DivKit JSON. Validated, with telemetry injected.

04 / SDK + EVENTS

Render natively

The iOS, Android or React Native SDK renders with your components and records scroll depth, timing, dead clicks and drop-offs.

05 / LEARNING LOOP

Learn. Review. Repeat.

The optimizer learns. The offline planner proposes. Your team approves.

Client teamCLI + compilerControl planeDelivery APISDKs · iOS / Android / React NativeEvent ingestOptimizerPlanner (LLM)Human review ↺
INTELLIGENCE WITH BOUNDARIES

The LLM proposes. The optimizer decides. The validator gates.

01 / PROPOSE

Creative, offline.

The LLM planner suggests the next candidates within your registered vocabulary. New ideas, not new runtime code.

02 / DECIDE

Evidence over intuition.

Bayesian Thompson sampling balances exploration with exploitation. Real conversions determine traffic, not a model’s opinion.

03 / VALIDATE

No shortcuts to production.

The compiler enforces contracts and guardrails. Your team approves before a new candidate ever reaches a user.

Never in the request pathNever emits raw UINever publishes without validation + approval
BUILT FOR YOUR STACK

A small contract. A powerful loop.

Hypotheses as code. SDKs for iOS, Android and React Native. Full control over what ships.

// onlang/hypotheses/paywall.cta.copy.ts — written by `onlang hypothesis create`
import { defineHypothesis } from "@onlang/cli";

export default defineHypothesis({
  id: "paywall.cta.copy",
  module: "paywall.cta",
  kind: "tokens",
  screen: "paywall",
  rationale: "Risk-free framing reduces trial anxiety",
  variants: [
    { id: "control", tokens: { "cta.title": { en: "Continue" } } },
    { id: "risk_free", tokens: { "cta.title": {
      en: "Start free week", de: "Gratiswoche starten" } } },
    { id: "outcome", tokens: { "cta.title": { en: "Get my plan" } } },
  ],
});
// Lengths, price disclosure and legal links are checked by the compiler: onlang lint
TRUST IS NOT AN EXPERIMENT

Optimize conversion. Keep your principles.

Safety and compliance are constraints, not settings you turn off.

Bounded by design

Only discrete, human-approved hypotheses. A finite space of valid compositions — never an unbounded generator.

Compliance is compiled in

Prominent price, billing period and trial terms. Restore Purchases on iOS. Terms and Privacy. No dark patterns or hidden close buttons.

An honest 10% holdout

A fixed, unchanged baseline measures uplift, reported with a 95% credible interval. A/A checks and expected-loss rules help keep false winners out.

Behavior is a guardrail

Time on screen, scroll depth, rage clicks and dead clicks protect the experience. Conversion is the reward — not engagement proxies.

Privacy, not surveillance

No PII. No IDFA. Until the user consents, events stay on the device; declining deletes them.

Fail safe. Stay native.

Validation error or delivery failure? Render the cached flow or your own screen. Prices always come from StoreKit or Play Billing.

Off in under a second

One command takes a placement, or the whole app, off ONLang. SDKs show your own screen, even offline, until you switch it back on.

Locked down by default

Publishable SDK keys and per-install rate limits on every request. Store credentials encrypted at rest. Every token can be revoked.

Every change on the record

Kill switches, experiment decisions and accepted proposals record who, when and why. Nothing reaches users without a person deciding it.

Your billing provider stays the source of truth.
MEASURE WHAT MATTERS

Not another dashboard. A decision.

Designed to prove uplift against a holdout with a credible interval.

ILLUSTRATIVE UPLIFT
+23.4%

Against an unchanged holdout

CREDIBLE INTERVAL
95%

Uncertainty, not a vanity metric

P95 DELIVERY · MEASURED
<5 ms

Staging load test at 10× pilot traffic. No round-trip to an LLM.

Uplift and interval are illustrative. Delivery latency was measured on a staging stack, not in customer production.

A small cohort. A meaningful pilot.

Early access is open to a small group of apps.

Request early access
THE QUESTIONS WORTH ASKING

Clear answers. No black boxes.

Is this allowed by App Store review?

ONLang uses registered native components and delivers data contracts, not executable code or web views. The design is aligned with Guideline 2.5.2 and compiler guardrails address subscription disclosures under 3.1.2. App Store approval is ultimately Apple’s decision; compliance is not a guarantee.

Do you replace RevenueCat or StoreKit?

No. ONLang optimizes the UI, not billing. Purchases, entitlements and locally resolved prices stay with StoreKit 2, Play Billing, or RevenueCat through your purchase handler.

Does the LLM generate UI live?

Never. The LLM planner runs offline and proposes discrete candidates in the registered vocabulary. Validation and human approval happen before any candidate receives traffic. The LLM is never in the request path.

How do you avoid false winners?

A fixed 10% holdout, A/A tests, posterior uncertainty and expected-loss decision rules. Behavior signals act only as guardrails, never as a reward. The demo uses simplified immediate conversion feedback; it is not a production efficacy claim.

What about React Native or Flutter?

React Native is supported: a pure-JavaScript SDK (React Native 0.74+, Expo included) renders the same flows with your own React components, with the same events, kill switch and consent rules as the iOS and Android SDKs. See the React Native guide. Flutter is not supported yet.

What if a flow breaks in production?

Switch it off: one command takes the placement off ONLang within a second, and the SDKs show your own screen, even offline, until you switch it back on. Bad releases roll back the same way; nothing waits for an app update.

What data do you collect?

Impressions, taps, scroll depth, time on screen, rage clicks, dead clicks, plan selections, purchase outcomes and drop-offs, tied to a random install id. No PII or IDFA. Upload waits for consent: until then events stay on the device for up to 30 days. This site’s experiment runs entirely in your browser.

EARLY ACCESS

Get early access.

Put the optimization-native language to work.
Bring your paywall. We’ll bring the learning loop.

Your email is stored with our email provider (Brevo) only to contact you about early access.

No spamNo commitmentNative-first