diff --git a/components/ContributeSection.js b/components/ContributeSection.js
new file mode 100644
index 0000000..cd30320
--- /dev/null
+++ b/components/ContributeSection.js
@@ -0,0 +1,79 @@
+import Link from 'next/link'
+
+// Contribute-for-credits landing SECTION.
+//
+// Placed after the trust summary (the open-source / trust cluster) because
+// this is a commons / flywheel message, not a pricing gimmick: contributions
+// strengthen the shared hardening corpus that lowers everyone's
+// silent-wrong-effect rate. The full mechanism, expanded guarantees, program
+// status, and FAQ live on /contribute.
+//
+// Framing is binding (see the data-for-credits framing brief): lead with the
+// guarantees, never "sell/monetize your data", no per-record price. The
+// program is EARLY ACCESS (gated on legal terms), so the copy is "request
+// access", never "upload now / available today", and never claims any data has
+// been collected.
+
+const GUARANTEES = [
+ 'Sanitized, de-identified derivatives only. Raw recordings never leave your machine.',
+ 'You approve every byte through hash-bound local review before anything is shared.',
+ 'Opt-in and off by default. You can stop future contributions at any time.',
+ 'Every contribution must meet the named de-identification standard in the versioned terms, and your organization attests before sharing.',
+]
+
+export default function ContributeSection() {
+ return (
+ Strengthen the commons
+ Every sanitized contribution strengthens the shared
+ hardening corpus, the commons that lowers everyone's
+ silent-wrong-effect rate. In return, you earn run credits
+ that extend your usage allowance.
+
+ Contribute data for credits
+
+
+ {GUARANTEES.map((item) => (
+
+
+
+ Thanks. You are on the early-access list for the + contributor program. We will reach out when the + versioned terms are finalized and access opens. +
+Earn credits by contributing
+ + Early access + ++ Contribute a sanitized, de-identified derivative to the + shared hardening corpus and earn run credits that + extend your monthly run cap. Raw recordings never + leave your machine, you approve every byte, and it + stays opt-in; you can stop future contributions at any + time. The program opens once its versioned terms are + finalized.{' '} + + Request access to the contributor program. + +
+{hostedOfferAvailable ? 'The Cloud subscription price comes directly from Stripe and is confirmed again at checkout.' diff --git a/pages/contribute.js b/pages/contribute.js new file mode 100644 index 0000000..b916a2f --- /dev/null +++ b/pages/contribute.js @@ -0,0 +1,350 @@ +import Head from 'next/head' +import Link from 'next/link' + +import ContributorProgramForm from '@components/ContributorProgramForm' +import Footer from '@components/Footer' + +// Dedicated page for the contribute-for-credits program. +// +// EARLY ACCESS (gated on legal terms): copy is "request access", never "upload +// now / available today", and never claims any data has been collected. The +// framing is binding (see the data-for-credits framing brief): lead with the +// guarantees, frame it as strengthening the shared hardening corpus, and never +// say "sell/monetize your data" or attach a per-record price. When target-state +// confidence and legal factuality conflict, factuality wins. +// +// The "Program status" section below is load-bearing: it discloses, on the +// page itself, that the contribution path is versioned-terms-gated and off by +// default until those terms are finalized. That converts the target-state +// promise into disclosed status rather than an implied live capability. + +const GUARANTEES = [ + { + title: 'Sanitized derivatives only', + body: 'You contribute a sanitized, de-identified derivative. Raw recordings never leave your machine or tenant.', + }, + { + title: 'You approve every byte', + body: 'Nothing is shared until you review the exact bytes locally and approve them through hash-bound review.', + }, + { + title: 'Opt-in and under your control', + body: 'The program is opt-in and off by default. You can stop future contributions at any time. Accepted contributions remain governed by the versioned terms you approved.', + }, + { + title: 'De-identification standard', + body: 'Contributions are sanitized to a de-identification standard, and you attest that a contribution meets it.', + }, +] + +const STEPS = [ + { + n: '1', + title: 'Record and compile locally', + body: 'You record and compile a workflow the way you already do. The original recording stays on your machine.', + }, + { + n: '2', + title: 'Sanitize a derivative', + body: 'A derivative is sanitized to a de-identification standard. You review it locally, not us.', + }, + { + n: '3', + title: 'Approve the exact bytes', + body: 'You approve the sanitized derivative through hash-bound local review. Only that approved copy is eligible to contribute.', + }, + { + n: '4', + title: 'Contribute to the corpus', + body: 'The approved, sanitized derivative passes manifest and runtime validation at ingest, then strengthens the shared hardening corpus.', + }, + { + n: '5', + title: 'Earn run credits', + body: 'Your contribution earns run credits that extend your usage allowance. Not cash, and no per-record price.', + }, +] + +const FAQ = [ + { + q: 'Is my raw data ever uploaded?', + a: 'No. Raw recordings never leave your machine. Only a sanitized, de-identified derivative that you have reviewed and approved is eligible to contribute.', + }, + { + q: 'Is this PHI?', + a: 'The program accepts only derivatives that your organization has de-identified to the required named standard and attests are eligible to contribute. Sanitization alone is not a legal determination. If your organization cannot make that attestation, the derivative is not eligible and must not be shared.', + }, + { + q: 'Can I stop?', + a: 'Yes. The program is opt-in and off by default, and you can stop future contributions at any time. A contribution already accepted remains governed by the versioned terms you approved when you submitted it.', + }, + { + q: 'What is the standard?', + a: 'The required de-identification standard is named in the versioned contribution terms before access opens. Your organization attests that each derivative meets it, and you approve the exact bytes through hash-bound local review.', + }, + { + q: 'What do I get?', + a: 'Run credits that extend your monthly run cap. Credits are service credits, not cash, and there is no per-record price.', + }, +] + +const webPageSchema = { + '@context': 'https://schema.org', + '@type': 'WebPage', + name: 'Contribute data for credits', + url: 'https://openadapt.ai/contribute', + description: + 'Early-access contributor program: contribute sanitized, de-identified derivatives to the shared hardening corpus and earn run credits that extend your usage allowance. Raw recordings never leave your machine; you approve every byte; future contributions can stop at any time.', + isPartOf: { + '@type': 'WebSite', + name: 'OpenAdapt.AI', + url: 'https://openadapt.ai', + }, + about: { + '@type': 'SoftwareApplication', + name: 'OpenAdapt', + url: 'https://openadapt.ai', + }, + inLanguage: 'en', +} + +export default function ContributePage() { + return ( +
Contributor program
+ + Early access + ++ Every sanitized contribution strengthens the shared + hardening corpus, the commons that lowers everyone's + silent-wrong-effect rate. In return, you earn run credits + that extend your usage allowance. This program is in early + access while the terms are finalized, so you register + interest and we grant access; there is no upload flow today. +
++ Early access. Opt-in. Sanitized derivatives only. +
+The guarantees
++ {g.body} +
+How it works
++ A contribution references an already-approved sanitized + derivative: the exact bytes that already passed local + review and hash-bound approval. There is no separate + upload of raw data, ever. +
++ {s.body} +
+What you get
++ Contributions earn run credits that extend your monthly + run cap, the same cap shown on the{' '} + + pricing page + + . Credits are service credits that fund usage. They are + not cash, there is no per-record price, and OpenAdapt + does not buy your data. +
+Program status and eligibility
++ + Status: early access. + {' '} + The contribution terms are versioned, and the + contribution path stays off by default until a + finalized terms version is active. The terms name + the required de-identification standard, the + contributor attestation, the jurisdiction scope, + and the curation rules under which a contribution + can be declined. Requesting access today registers + interest only; it does not accept any terms, enable + any upload, or share any workflow data. No customer + or patient data has been collected through this + program. +
++ Eligibility.{' '} + When access opens, contributions are accepted only + from organizations that can attest, under the + versioned terms, that each derivative meets the + required named de-identification standard, that + they have the right to contribute it, and that + contributing does not breach their own downstream + agreements. Sanitization alone is not a legal + determination. Contributions are curated: a + derivative that does not conform can be declined, + and declined contributions earn no credits. +
++ + When you accept a terms version. + {' '} + Your acceptance records the exact terms version and + timestamp. You can stop future contributions at any + time; a contribution already accepted remains + governed by the versioned terms you approved when + you submitted it. +
+FAQ
+Request access
++ Tell us a little about your workflows and we will + reach out as early access opens. Registering does + not enable any upload or share any data. +
+