Creative, offline.
The LLM planner suggests the next candidates within your registered vocabulary. New ideas, not new runtime code.
Server-driven native UI + Bayesian optimization. Ship contracts, not code — and let your paywall converge on what actually converts.
p95 delivery at 10× pilot load · staging
of downloaded code · by design
fixed holdout for unbiased uplift
Same native components. Different hypotheses. One continuous learning loop.
stride.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.
24 approved compositions · 90% adaptive traffic · 10% fixed holdout · Nothing generated at request time
You define what can change. ONLang learns what should.
Bring your native components. Define their props and safe boundaries.
Explicit candidates in code. CTA copy, value props, flow order — not infinite guesses.
Composition IR becomes DivKit JSON. Validated, with telemetry injected.
The iOS, Android or React Native SDK renders with your components and records scroll depth, timing, dead clicks and drop-offs.
The optimizer learns. The offline planner proposes. Your team approves.
The LLM planner suggests the next candidates within your registered vocabulary. New ideas, not new runtime code.
Bayesian Thompson sampling balances exploration with exploitation. Real conversions determine traffic, not a model’s opinion.
The compiler enforces contracts and guardrails. Your team approves before a new candidate ever reaches a user.
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 lintSafety and compliance are constraints, not settings you turn off.
Only discrete, human-approved hypotheses. A finite space of valid compositions — never an unbounded generator.
Prominent price, billing period and trial terms. Restore Purchases on iOS. Terms and Privacy. No dark patterns or hidden close buttons.
A fixed, unchanged baseline measures uplift, reported with a 95% credible interval. A/A checks and expected-loss rules help keep false winners out.
Time on screen, scroll depth, rage clicks and dead clicks protect the experience. Conversion is the reward — not engagement proxies.
No PII. No IDFA. Until the user consents, events stay on the device; declining deletes them.
Validation error or delivery failure? Render the cached flow or your own screen. Prices always come from StoreKit or Play Billing.
One command takes a placement, or the whole app, off ONLang. SDKs show your own screen, even offline, until you switch it back on.
Publishable SDK keys and per-install rate limits on every request. Store credentials encrypted at rest. Every token can be revoked.
Kill switches, experiment decisions and accepted proposals record who, when and why. Nothing reaches users without a person deciding it.
Designed to prove uplift against a holdout with a credible interval.
Against an unchanged holdout
Uncertainty, not a vanity metric
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.
Early access is open to a small group of apps.
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.
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.
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.
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.
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.
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.
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.
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.