Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 5 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@

Source for the [openadapt.ai](https://openadapt.ai) marketing site.

OpenAdapt is a governed demonstration compiler for GUI workflows: record a task
once, compile it, and replay it deterministically with zero model calls on the
healthy path. When replay cannot verify what it is about to do, it halts instead
of guessing. Every execution substrate is first-class under one governed loop:
browser, Windows, macOS, Linux, RDP, and Citrix/VDI. OpenAdapt is local-first
and open-core (MIT); managed cloud is optional.
OpenAdapt provides verified automation from demonstration. It compiles repeated
GUI work into deterministic programs for browser, Windows, macOS, Linux, RDP,
and Citrix/VDI. Healthy runs make no model calls. OpenAdapt checks the declared
result before it reports `VERIFIED` and stops when the required evidence is
missing. The local runtime is MIT licensed; managed Cloud is optional.

This repository is the public website only. Installers and the unified CLI live
in [OpenAdaptAI/OpenAdapt](https://github.com/OpenAdaptAI/OpenAdapt), the
Expand Down
11 changes: 5 additions & 6 deletions components/BusinessDecisionPreview.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,14 @@ export default function BusinessDecisionPreview() {
</figcaption>
</figure>
<div className={styles.copy}>
<p className={styles.eyebrow}>Human judgment capture</p>
<p className={styles.eyebrow}>Human decision</p>
<h2 id="business-decision-title">
Keep institutional judgment inside the workflow.
Ask a person when the workflow reaches a real judgment call.
</h2>
<p>
When a workflow reaches a policy choice, OpenAdapt asks one
authorized person one clear question. The choice selects a
reviewed branch. The runner checks the live state again
before it continues.
OpenAdapt pauses at an approved policy choice and asks one
authorized person one clear question. Before it continues,
the runner checks the live application again.
</p>
<a
className={styles.demoLink}
Expand Down
15 changes: 8 additions & 7 deletions components/CommercialOffer.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ export default function CommercialOffer({ hostedOffer }) {
<div className="mx-auto max-w-5xl">
<p className="eyebrow text-center">Commercial offer</p>
<h2 className="mx-auto mt-2 max-w-3xl text-center font-display text-2xl font-semibold tracking-tight text-ink md:text-3xl">
Qualify the workflow before scaling the deployment
Start with one workflow
</h2>
<div className="mt-8 flex flex-col gap-5 rounded-2xl border border-hairline bg-panel p-5 sm:flex-row sm:items-center sm:justify-between md:px-7">
<div>
Expand Down Expand Up @@ -50,7 +50,7 @@ export default function CommercialOffer({ hostedOffer }) {
From $15,000
</h3>
<p className="mt-3 text-sm leading-relaxed text-ink-2">
In a ten-business-day target, we assess one named
We target a decision within ten business days. We assess one named
workflow, application, environment, identity contract,
effect verifier, failure boundary, deployment path,
and ROI. You receive a qualified prototype and a signed
Expand All @@ -76,18 +76,19 @@ export default function CommercialOffer({ hostedOffer }) {
<p className="mt-2 text-sm font-semibold text-ink">{runCap}</p>
)}
<p className="mt-3 text-sm leading-relaxed text-ink-2">
A separate managed subscription for approved workflows,
run history, evidence, and governed updates. Enterprise
qualification, regulated deployment, and SLAs are scoped
separately.
Run approved browser workflows with managed runners,
run history, evidence, and controlled updates. We scope
enterprise qualification, regulated deployment, and
SLAs separately.
</p>
<Link href="/pricing#cloud-preview" className="btn-ghost-ink mt-6 inline-block">
See Cloud and enterprise pricing
</Link>
</article>
</div>
<p className="mt-5 text-center text-sm leading-relaxed text-ink-2">
Building vertical software or operating workflows for clients?{' '}
OpenAdapt Execute gives vertical software and service providers{' '}
a verified last-mile execution API.{' '}
<Link href="/execute" className="font-medium text-accent hover:underline">
Explore OpenAdapt Execute.
</Link>
Expand Down
11 changes: 5 additions & 6 deletions components/DashboardShowcase.js
Original file line number Diff line number Diff line change
Expand Up @@ -179,14 +179,13 @@ export default function DashboardShowcase() {
className={styles.heading}
id="cloud-product-heading"
>
From approved workflow to reviewable outcome.
See every approved workflow, run, and result in one place
</h2>
<p className={styles.summary}>
This is the hosted product running today at
app.openadapt.ai. Workflows, runs, evidence, and
reports stay connected in one reviewable dashboard.
When a run needs a person, the same decision arrives
as one focused mobile handoff.
The hosted product at app.openadapt.ai connects each
workflow version to its runs, evidence, and reports.
When a run needs a person, it sends one focused mobile
request.
</p>
</div>

Expand Down
12 changes: 6 additions & 6 deletions components/FinalQualificationCta.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ export default function FinalQualificationCta() {
return (
<section className="bg-ground px-5 py-20 md:py-28">
<div className="mx-auto max-w-3xl text-center">
<p className="eyebrow">Bring the real workflow</p>
<p className="eyebrow">Workflow fit review</p>
<h2 className="mt-2 font-display text-3xl font-semibold tracking-tight text-ink md:text-4xl">
Qualify one workflow
See if one workflow fits
</h2>
<p className="mx-auto mt-4 max-w-2xl text-sm leading-relaxed text-ink-2 md:text-base">
Bring the actual application, environment, workflow, and
success condition. We will determine whether it should be
automated and what verified production requires.
Tell us the application, environment, repeated task, and
how you confirm the result. We will assess the fit, main
risks, verifier, and deployment path.
</p>
<Link href="/qualify" className="btn-ink mt-7 inline-block">
Start the qualification
Start the fit review
</Link>
</div>
</section>
Expand Down
6 changes: 3 additions & 3 deletions components/Footer.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,9 +151,9 @@ export default function Footer({
<span className="font-semibold">Adapt</span>
</a>
<p className={styles.tagline}>
OpenAdapt compiles demonstrated GUI workflows into
deterministic, locally executable programs, and
halts when it can’t verify the result.
OpenAdapt turns demonstrated GUI work into
deterministic automation and verifies the result
before it reports success.
</p>
<a
href={qualificationHref}
Expand Down
18 changes: 9 additions & 9 deletions components/HowItWorksCondensed.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,21 @@
const steps = [
{
number: '1',
name: 'Demonstrate and qualify',
name: 'Show the task',
description:
'Show one bounded task. Review its program, risks, identities, effects, fault cases, and supported environment before certifying it.',
'Record one bounded workflow in its real application. OpenAdapt retains the actions and the evidence around each step.',
},
{
number: '2',
name: 'Deploy in your boundary',
name: 'Qualify the program',
description:
'Run approved browser workloads in managed execution or keep sensitive desktop, RDP, Citrix, private-network, and restricted-egress work customer-controlled.',
'Review the compiled steps, identities, expected results, failure cases, and target environment before you approve a version.',
},
{
number: '3',
name: 'Execute, verify, and repair',
name: 'Run and verify',
description:
'Healthy runs use no generative-model calls. OpenAdapt proves the declared effect, halts on uncertainty, and subjects every candidate repair to the workflow contract.',
'Replay the approved program. OpenAdapt checks the declared result, stops on uncertainty, and keeps each repair behind the same review gates.',
},
]

Expand All @@ -32,11 +32,11 @@ export default function HowItWorksCondensed() {
<div className="mx-auto max-w-5xl">
<p className="eyebrow text-center">How it works</p>
<h2 className="mx-auto mt-2 max-w-2xl text-center font-display text-2xl font-semibold tracking-tight text-ink md:text-3xl">
From demonstration to verified operation
One demonstrated task becomes one approved program
</h2>
<p className="mx-auto mt-3 max-w-2xl text-center text-sm leading-relaxed text-ink-2 md:text-base">
One lifecycle connects qualification, execution, evidence,
and governed change.
The recording starts the work. Qualification defines what
the program may do and what evidence counts as success.
</p>
<ol className="mt-9 grid gap-4 md:grid-cols-3">
{steps.map((step) => (
Expand Down
69 changes: 23 additions & 46 deletions components/MastHead.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import React from 'react'
import Link from 'next/link'

import ReplayHero from '@components/ReplayHero'
import BusinessDecisionPreview from '@components/BusinessDecisionPreview'
import { track, EVENTS } from 'utils/analytics'
import useLiveRepositoryStats from 'utils/useLiveRepositoryStats'

Expand All @@ -25,7 +23,7 @@ export default function Home({ githubStats: initialGithubStats }) {
</div>
<div className="mb-4 flex flex-wrap items-center justify-center gap-3">
<span className={styles.heroPill}>
FREE TO RUN LOCALLY · MIT OPEN SOURCE
VERIFIED AUTOMATION FROM DEMONSTRATION
</span>
{githubStats && githubStats.stars > 0 && (
<a
Expand Down Expand Up @@ -53,87 +51,66 @@ export default function Home({ githubStats: initialGithubStats }) {
)}
</div>
<h1 className="font-display text-2xl md:text-3xl mt-0 mb-4 font-semibold tracking-tight text-ink">
Automate the UI-only work your APIs can&rsquo;t reach.
Automate the work your systems still make people do.
</h1>
<p className="mt-0 mb-4 mx-auto max-w-2xl font-sans font-normal text-base md:text-lg text-ink-2">
OpenAdapt compiles demonstrations into one
governed loop across browser, desktop, RDP, and
Citrix. Browser runs in production today;
desktop, RDP, and Citrix run through
customer-controlled qualification. It verifies
consequential results and halts when it cannot
prove the intended outcome.
Show OpenAdapt a repeated task. It compiles the
demonstration into a deterministic program for
browser, desktop, RDP, or Citrix, then verifies
the result before it reports success.
</p>
<p className={styles.fitLine}>
Verified business effects · fail-closed execution ·
customer-controlled sensitive data
Healthy runs make no model calls. An unverified
production run stops.
</p>
<div id="register">
<div className="flex flex-wrap items-center justify-center gap-3 mt-0 mb-4">
<Link
className={styles.heroCloud}
href="/qualify"
data-testid="workflow-fit-cta"
onClick={() =>
track(EVENTS.HERO_CTA_CLICK, {
cta: 'qualify_one_workflow',
})
}
>
Qualify one workflow
See if your workflow fits
</Link>
<Link
className="btn-ghost-ink"
href="/book"
data-testid="book-call-cta"
href="#demo"
data-testid="demo-cta"
onClick={() =>
track(EVENTS.HERO_CTA_CLICK, {
cta: 'book_call',
cta: 'watch_demo',
})
}
>
Book a 30-minute call
Watch the 65-second demo
</Link>
</div>
<p className="mb-8 text-sm leading-relaxed text-ink-3">
<code className="rounded border border-hairline bg-panel px-2 py-1 text-ink">
pip install openadapt
</code>
<span aria-hidden="true"> · </span>
<Link
className="btn-ghost-ink"
href="/start"
data-testid="local-quickstart-cta"
onClick={() =>
track(EVENTS.HERO_CTA_CLICK, {
cta: 'run_locally_free',
})
}
className="font-medium text-accent underline"
>
Run locally for free
Run it locally
</Link>
<a
className="btn-ghost-ink"
href="https://app.openadapt.ai/demo"
target="_blank"
rel="noopener noreferrer"
data-testid="cloud-demo-cta"
onClick={() =>
track(EVENTS.HERO_CTA_CLICK, {
cta: 'explore_cloud_demo',
})
}
>
Explore the app
</a>
</div>
<p className="mb-8 text-sm leading-relaxed text-ink-3">
<code className="rounded border border-hairline bg-panel px-2 py-1 text-ink">
pip install openadapt
</code>
<span aria-hidden="true"> · </span>
MIT licensed
<span aria-hidden="true"> · </span>
No account or Cloud required
MIT licensed · no account required
</p>
</div>
<div className="flex flex-col align-center justify-center px-4 min-w-0 max-w-full overflow-hidden">
<ReplayHero />
<BusinessDecisionPreview />
</div>
</div>
</div>
</div>
Expand Down
6 changes: 3 additions & 3 deletions components/MastHead.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
color: var(--ink-3);
}

/* Primary enterprise CTA. The adjacent ghost action is the equally direct
local/open-source path, while the install command below carries the
no-account trust contract without adding a third competing button. */
/* Primary workflow-fit CTA. The adjacent action jumps to the evidence demo.
The compact install line keeps the local, no-account path available without
adding a third competing button. */
.heroCloud {
display: inline-flex;
align-items: center;
Expand Down
Loading
Loading