diff --git a/.gitignore b/.gitignore index 2d9d3709b..21d0773aa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.turbo/ node_modules/ packages/*/node_modules/ apps/*/node_modules/ diff --git a/ee/apps/landing/app/globals.css b/ee/apps/landing/app/globals.css index e378aaac5..9d63ae61c 100644 --- a/ee/apps/landing/app/globals.css +++ b/ee/apps/landing/app/globals.css @@ -43,6 +43,78 @@ body { text-rendering: optimizeSpeed; } +/* Legal page prose — styles MDX-rendered markdown for privacy/terms pages */ +.legal-prose h1 { + font-size: 2.25rem; + font-weight: 500; + line-height: 1.05; + letter-spacing: -0.025em; + margin-bottom: 1rem; +} +@media (min-width: 768px) { + .legal-prose h1 { font-size: 3rem; } +} +@media (min-width: 1024px) { + .legal-prose h1 { font-size: 3.75rem; } +} +.legal-prose h1 + p:first-of-type { + color: #6b7280; + margin-bottom: 3rem; +} +.legal-prose h2 { + font-size: 1.25rem; + font-weight: 600; + letter-spacing: -0.025em; + color: #011627; + margin-top: 2.5rem; + margin-bottom: 0.75rem; +} +.legal-prose h3 { + font-size: 1rem; + font-weight: 600; + color: #011627; + margin-top: 1.5rem; + margin-bottom: 0.5rem; +} +.legal-prose p { + font-size: 15px; + line-height: 1.7; + color: #374151; + margin-bottom: 1rem; +} +.legal-prose ul, +.legal-prose ol { + font-size: 15px; + line-height: 1.7; + color: #374151; + padding-left: 1.25rem; + margin-bottom: 1rem; + list-style-type: disc; +} +.legal-prose ol { list-style-type: decimal; } +.legal-prose li { margin-bottom: 0.375rem; } +.legal-prose li strong { color: #011627; } +.legal-prose a { + color: #011627; + text-decoration: underline; + text-underline-offset: 2px; +} +.legal-prose a:hover { opacity: 0.7; } +.legal-prose blockquote { + border-left: 3px solid #cbd5e1; + padding-left: 1rem; + margin: 1rem 0; + color: #4b5563; + font-size: 15px; + line-height: 1.7; +} +.legal-prose strong { font-weight: 600; } +.legal-prose hr { + border: 0; + border-top: 1px solid rgba(148, 163, 184, 0.2); + margin: 2.5rem 0; +} + .content-max-width { max-width: 64rem; /* matches Tailwind max-w-5xl used by the nav */ margin-left: auto; diff --git a/ee/apps/landing/app/privacy/page.tsx b/ee/apps/landing/app/privacy/page.tsx index c19dba070..9a074e1d0 100644 --- a/ee/apps/landing/app/privacy/page.tsx +++ b/ee/apps/landing/app/privacy/page.tsx @@ -1,185 +1,10 @@ -import fs from "fs"; -import path from "path"; -import { LandingBackground } from "../../components/landing-background"; import { LegalPage } from "../../components/legal-page"; -import { SiteFooter } from "../../components/site-footer"; -import { SiteNav } from "../../components/site-nav"; -import { getGithubData } from "../../lib/github"; export const metadata = { title: "OpenWork — Privacy Policy", - description: - "Privacy policy for Different AI, doing business as OpenWorkLabs." + description: "Privacy policy for Different AI, doing business as OpenWork." }; -/** Parse the plain-text privacy policy into renderable blocks. */ -function parsePolicy(raw: string) { - const lines = raw.split("\n"); - const title = lines[0]?.trim() ?? ""; - - // Extract "Updated at YYYY-MM-DD" - const dateLine = lines.find((l) => l.startsWith("Updated at")); - const lastUpdated = dateLine?.replace("Updated at ", "").trim() ?? ""; - - // Everything after the date line is body content. - const dateIdx = lines.indexOf(dateLine ?? ""); - const bodyLines = lines.slice(dateIdx + 1); - - // Split into blocks separated by blank lines. - const blocks: string[][] = []; - let current: string[] = []; - for (const line of bodyLines) { - if (line.trim() === "") { - if (current.length > 0) { - blocks.push(current); - current = []; - } - } else { - current.push(line); - } - } - if (current.length > 0) blocks.push(current); - - // Classify each block as a heading, subheading, list, or paragraph. - type Block = - | { type: "heading"; text: string } - | { type: "subheading"; text: string } - | { type: "paragraph"; text: string } - | { type: "list"; items: string[] }; - - const classified: Block[] = []; - - for (const block of blocks) { - const joined = block.join(" ").trim(); - const allList = block.every((l) => l.trimStart().startsWith("-")); - - if (allList) { - const items = block.map((l) => l.replace(/^\s*-/, "").trim()); - // Single-item short lists are subheadings (e.g. "Cookies", "Local Storage") - if (items.length === 1 && items[0].length < 50) { - classified.push({ type: "subheading", text: items[0] }); - } else { - classified.push({ type: "list", items }); - } - } else if ( - block.length === 1 && - joined.length < 120 && - !joined.startsWith("-") && - !joined.endsWith(".") - ) { - // Short single-line blocks that don't end with a period are headings. - classified.push({ type: "heading", text: joined }); - } else { - classified.push({ type: "paragraph", text: joined }); - } - } - - return { title, lastUpdated, blocks: classified }; -} - -/** Turn email addresses into clickable links. */ -function formatText(text: string) { - const emailRegex = /([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g; - const parts = text.split(emailRegex); - if (parts.length === 1) return text; - return parts.map((part, i) => - emailRegex.test(part) ? ( - - {part} - - ) : ( - part - ) - ); -} - -export default async function PrivacyPage() { - const github = await getGithubData(); - const callUrl = process.env.NEXT_PUBLIC_CAL_URL || "/enterprise#book"; - - const raw = fs.readFileSync( - path.join(process.cwd(), "app/privacy/privacy-policy.txt"), - "utf-8" - ); - const policy = parsePolicy(raw); - - return ( -
- - -
-
- -
- -
- - {policy.blocks.map((block, i) => { - switch (block.type) { - case "heading": - return ( -

- {block.text} -

- ); - case "subheading": - return ( -

- {block.text} -

- ); - case "list": - return ( -
    - {block.items.map((item, j) => { - const colonIdx = item.indexOf(":"); - if (colonIdx > 0 && colonIdx < 40) { - return ( -
  • - - {item.slice(0, colonIdx)} - - :{formatText(item.slice(colonIdx + 1))} -
  • - ); - } - return
  • {formatText(item)}
  • ; - })} -
- ); - case "paragraph": - return ( -

- {formatText(block.text)} -

- ); - } - })} -
- - -
-
-
- ); +export default function PrivacyPage() { + return ; } diff --git a/ee/apps/landing/app/privacy/privacy-policy.md b/ee/apps/landing/app/privacy/privacy-policy.md new file mode 100644 index 000000000..03992af64 --- /dev/null +++ b/ee/apps/landing/app/privacy/privacy-policy.md @@ -0,0 +1,323 @@ +# Privacy Policy + +Effective date: April 4, 2026 + +DIFFERENT AI, INC., doing business as OpenWork ("we," "our," or "us"), is committed to protecting your privacy. This Privacy Policy explains how your personal information is collected, used, and disclosed by OpenWork. + +This Privacy Policy applies to our website ([openworklabs.com](https://openworklabs.com) and its associated subdomains), our Desktop App, and our Cloud Service (collectively, our "Service"). By accessing or using our Service, you signify that you have read, understood, and agree to our collection, storage, use, and disclosure of your personal information as described in this Privacy Policy and our [Terms of Use](/terms). + +## Definitions and key terms + +To help explain things as clearly as possible in this Privacy Policy, every time any of these terms are referenced, are strictly defined as: + +- **Cookie:** small amount of data generated by a website and saved by your web browser. It is used to identify your browser, provide analytics, remember information about you such as your language preference or login information. +- **Company:** when this policy mentions "Company," "we," "us," or "our," it refers to Different AI, (700 Alabama St, San Francisco, CA 94110, USA) that is responsible for your information under this Privacy Policy. +- **Country:** where OpenWork or the owners/founders of OpenWork are based, in this case is United States. +- **Customer:** refers to the company, organization or person that signs up to use the OpenWork Service to manage the relationships with your consumers or service users. +- **Device:** any internet connected device such as a phone, tablet, computer or any other device that can be used to visit OpenWork and use the services. +- **IP address:** Every device connected to the Internet is assigned a number known as an Internet protocol (IP) address. These numbers are usually assigned in geographic blocks. An IP address can often be used to identify the location from which a device is connecting to the Internet. +- **Personnel:** refers to those individuals who are employed by OpenWork or are under contract to perform a service on behalf of one of the parties. +- **Personal Data:** any information that directly, indirectly, or in connection with other information — including a personal identification number — allows for the identification or identifiability of a natural person. +- **Service:** refers to the service provided by OpenWork as described in the relative terms (if available) and on this platform. +- **Third-party service:** refers to service providers, partners, and others who provide content, functionality, or services in connection with our Service, including analytics providers, payment processors, and authentication providers. +- **Website:** OpenWork's marketing website, which can be accessed via this URL: [openworklabs.com](https://openworklabs.com). +- **Desktop App:** the OpenWork desktop application, distributed for macOS, Windows, and Linux. +- **Cloud Service:** the OpenWork cloud-hosted web application, accessible via a web browser and providing functionality similar to the Desktop App. +- **You:** a person or entity that accesses or uses the Service. + +## What Information Do We Collect? + +The information we collect depends on which part of our Service you use. We distinguish between our Website, our Desktop App, and our Cloud Service. + +### Website + +When you visit our Website, we collect anonymous usage data (such as pages visited, interactions, and general navigation patterns) through PostHog, a third-party analytics platform. When you subscribe to our newsletter, we collect your email address. When you create an account or subscribe to a paid plan, we may collect: + +- Name / Username +- Email address +- Payment information (credit or debit card numbers), processed and stored by our third-party payment processor +- Account authentication data received from third-party providers (Google or GitHub) if you choose to sign in using social login + +### Desktop App + +The Desktop App does not collect, track, or transmit any data during normal use. The only instance in which information is gathered is when you explicitly choose to report a bug. When you initiate a bug report, the following diagnostic information is attached to your submission solely to help us reproduce and resolve the issue: + +- Application version +- OpenCode version +- Operating system name and version +- Platform identifier (e.g., MacIntel) +- Deployment type (e.g., desktop) +- Source and entry point within the App + +This diagnostic data is submitted only with your affirmative action and does not include personal information, file contents, conversation data, or usage history. It is stored temporarily and deleted once the related issue is resolved. + +### Cloud Service + +The Cloud Service does not track or profile user behavior. Like the Desktop App, the Cloud Service supports voluntary bug reporting with the same diagnostic data described above. In addition, the Cloud Service collects limited operational telemetry (such as service availability, error rates, and performance metrics) that is necessary for us to monitor and maintain the reliability and security of the service. This operational telemetry does not contain personal information or user content. + +## Categories of Sources of Personal Data + +We collect Personal Data about you from the following categories of sources: + +- **Directly from you:** when you create an account, subscribe to a paid plan, subscribe to our newsletter, submit a bug report, or otherwise contact us. +- **Automatically:** when you visit our Website, through cookies and similar technologies (PostHog analytics), and through operational telemetry in the Cloud Service. +- **Third-party authentication providers:** when you sign in using Google or GitHub, we receive profile information (name, email, profile identifier) in accordance with the permissions you grant. +- **Third-party payment processors:** when you subscribe to a paid plan, we receive transaction confirmation data from Polar. + +## How Do We Use The Information We Collect? + +Any of the information we collect from you may be used in one of the following ways: + +- To provide, operate, and maintain the Service +- To process transactions and manage your subscription +- To improve our Website based on anonymous analytics data +- To diagnose and resolve software defects using bug report diagnostic data +- To monitor and ensure the reliability, security, and performance of our Cloud Service +- To send newsletter communications to subscribers who have opted in +- To improve customer service (your information helps us to more effectively respond to your customer service requests and support needs) +- To comply with legal obligations + +## Legal Bases for Processing Your Data + +We process personal data only where a valid legal ground applies under each applicable privacy regime: + +- **Performance of a Contract:** We process your data to provide, maintain, and support the Service you have requested under our Terms of Use, including account creation, subscription management, and customer support. +- **Legitimate Interests:** We use personal data to secure the platform, detect fraud, monitor Cloud Service reliability through operational telemetry, and improve our Website based on anonymous analytics, where these interests are not outweighed by your privacy rights. +- **Consent:** We rely on your consent for newsletter subscriptions, non-essential analytics cookies (PostHog), and customer audience targeting on advertising platforms. You may withdraw consent at any time without affecting the lawfulness of prior processing. +- **Legal Obligations:** We retain and disclose information as necessary to comply with applicable laws, regulations, court orders, or other legal duties. + +## When does OpenWork use information from third parties? + +If you choose to authenticate using a third-party provider (Google or GitHub), we receive certain profile information from that provider, such as your name, email address, and profile identifier, in accordance with the permissions you grant during the authentication process. We use this information solely to create and manage your account. You can control what information third-party authentication providers share by reviewing your account settings with those providers. + +We may also receive information from third-party payment processors in connection with subscription transactions, limited to what is necessary to confirm and manage your subscription. + +## Do we share the information we collect with third parties? + +We do not sell, rent, or trade your personal information to third parties for their marketing purposes. + +We engage trusted third-party service providers ("sub-processors") to perform functions and provide services to us. Our current sub-processors are: + +- **PostHog** (analytics): collects anonymous website usage data on our behalf. +- **Polar Software, Inc.** (payments): processes subscription billing and credit card transactions. +- **Google** (authentication): provides OAuth sign-in services. +- **GitHub** (authentication): provides OAuth sign-in services. +- **Daytona** (infrastructure): provides virtual sandbox environments for the Cloud Service. + +We share only the minimum information necessary to enable these providers to perform their services on our behalf and for you. Each sub-processor is contractually obligated to use your information solely for the purposes of providing services to us. + +> **Note:** The Desktop App and Cloud Service allow you to connect your own API keys to third-party AI model providers (such as OpenAI, Anthropic, Google, and others). These providers are not our sub-processors — you interact with them directly using your own credentials and under their own terms of service and privacy policies. We do not transmit your data to these providers on your behalf. + +If we are involved in a merger, acquisition, asset sale, or other business reorganization, we may share or transfer your personal and non-personal information to our successors-in-interest, provided that the receiving party agrees to honor the terms of this Privacy Policy. + +We may also disclose personal and non-personal information about you to government or law enforcement officials or private parties as we, in our sole discretion, believe necessary or appropriate in order to respond to claims, legal process (including subpoenas), to protect our rights and interests or those of a third party, the safety of the public or any person, to prevent or stop any illegal, unethical, or legally actionable activity, or to otherwise comply with applicable court orders, laws, rules and regulations. + +## Where and when is information collected from customers and end users? + +OpenWork will collect personal information that you submit to us. We may also receive personal information about you from third parties as described above. + +## How Do We Use Your Email Address? + +By submitting your email address on this website or by creating an account on our platform, you agree to receive emails from us, including onboarding communications, product updates, and newsletters. By signing up for our platform, we interpret your registration as an expression of interest in receiving additional communications related to the Service. We may send emails directly or through a third-party email service provider acting on our behalf. + +We may, in the future, use your email address for customer audience targeting on third-party advertising platforms, where we would display custom advertising to specific people who have opted in to receive communications from us. If we do so, we will update this Privacy Policy accordingly and, where required by applicable law, obtain your consent prior to such use. + +You can cancel your participation in any of these email lists at any time by clicking on the opt-out link or other unsubscribe option that is included in the respective email. We only send emails to people who have authorized us to contact them, either directly, or through a third party. We do not send unsolicited commercial emails. If, however, you have provided the same email to us through another method, we may use it for any of the purposes stated in this Policy. + +If at any time you would like to unsubscribe from receiving future emails, we include detailed unsubscribe instructions at the bottom of each email. + +## How Long Do We Keep Your Information? + +We retain personal information only as long as necessary to fulfill the purposes outlined in this policy or as required by applicable law. Specific retention periods are as follows: + +- **Customer account data** (name, email, authentication data): retained for the duration of your account. Upon account deletion, personal data is deleted within thirty (30) days, except where retention is required for fraud prevention, legal compliance, or legal defense. +- **Payment information:** retained by our third-party payment processor (Polar) for the duration of your subscription and as required by applicable financial regulations. +- **Bug report diagnostic data:** retained temporarily and deleted once the related issue is resolved. +- **Website analytics data:** retained by PostHog in accordance with PostHog's data retention policies. +- **Cloud Service operational telemetry:** retained only as long as necessary for monitoring and reliability purposes. +- **Backups:** deleted data may persist in backups for up to ninety (90) days before being permanently removed. + +When we no longer need to use your information and there is no need for us to keep it to comply with our legal or regulatory obligations, we will either remove it from our systems or depersonalize it so that we can no longer identify you. + +## How Do We Protect Your Information? + +We implement a variety of security measures to maintain the safety of your personal information when you place an order or enter, submit, or access your personal information. We offer the use of a secure server. All supplied sensitive/credit information is transmitted via Secure Socket Layer (SSL) technology and then encrypted into our payment gateway provider's database only to be accessible by those authorized with special access rights to such systems, and are required to keep the information confidential. If you subscribe to a paid plan, your payment information is stored by our third-party payment processor for the duration of your subscription in order to process recurring charges. We do not directly store your full credit card number on our own servers. We cannot, however, ensure or warrant the absolute security of any information you transmit to OpenWork or guarantee that your information on the Service may not be accessed, disclosed, altered, or destroyed by a breach of any of our physical, technical, or managerial safeguards. + +### Incident Response + +In the event of a confirmed security breach involving your personal data, we will notify affected customers within seventy-two (72) hours of confirming the breach, in accordance with applicable law. Notification will be provided via email to the address associated with your account, and will include a description of the nature of the breach, the categories of data affected, and the measures taken or proposed to address it. + +## Could my information be transferred to other countries? + +OpenWork is incorporated in United States. Information collected via our website, through direct interactions with you, or from use of our help services may be transferred from time to time to our offices or personnel, or to third parties, located throughout the world, and may be viewed and hosted anywhere in the world, including countries that may not have laws of general applicability regulating the use and transfer of such data. To the fullest extent allowed by applicable law, by using any of the above, you voluntarily consent to the trans-border transfer and hosting of such information. + +## Is the information collected through the Service secure? + +We take precautions to protect the security of your information. We have physical, electronic, and managerial procedures to help safeguard, prevent unauthorized access, maintain data security, and correctly use your information. However, neither people nor security systems are foolproof, including encryption systems. In addition, people can commit intentional crimes, make mistakes or fail to follow policies. Therefore, while we use reasonable efforts to protect your personal information, we cannot guarantee its absolute security. If applicable law imposes any non-disclaimable duty to protect your personal information, you agree that intentional misconduct will be the standards used to measure our compliance with that duty. + +## Can I update or correct my information? + +The rights you have to request updates or corrections to the information OpenWork collects depend on your relationship with OpenWork. Personnel may update or correct their information as detailed in our internal company employment policies. + +Customers have the right to request the restriction of certain uses and disclosures of personally identifiable information as follows. You can contact us in order to (1) update or correct your personally identifiable information, (2) change your preferences with respect to communications and other information you receive from us, or (3) delete the personally identifiable information maintained about you on our systems (subject to the following paragraph), by cancelling your account. Such updates, corrections, changes and deletions will have no effect on other information that we maintain, or information that we have provided to third parties in accordance with this Privacy Policy prior to such update, correction, change or deletion. To protect your privacy and security, we may take reasonable steps (such as requesting a unique password) to verify your identity before granting you profile access or making corrections. You are responsible for maintaining the secrecy of your unique password and account information at all times. + +You should be aware that it is not technologically possible to remove each and every record of the information you have provided to us from our system. The need to back up our systems to protect information from inadvertent loss means that a copy of your information may exist in a non-erasable form that will be difficult or impossible for us to locate. Promptly after receiving your request, all personal information stored in databases we actively use, and other readily searchable media will be updated, corrected, changed or deleted, as appropriate, as soon as and to the extent reasonably and technically practicable. + +If you are an end user and wish to update, delete, or receive any information we have about you, you may do so by contacting the organization of which you are a customer. + +## Personnel + +If you are an OpenWork worker or applicant, we collect information you voluntarily provide to us. We use the information collected for Human Resources purposes in order to administer benefits to workers and screen applicants. + +You may contact us in order to (1) update or correct your information, (2) change your preferences with respect to communications and other information you receive from us, or (3) receive a record of the information we have relating to you. Such updates, corrections, changes and deletions will have no effect on other information that we maintain, or information that we have provided to third parties in accordance with this Privacy Policy prior to such update, correction, change or deletion. + +## Sale of Business + +We reserve the right to transfer information to a third party in the event of a sale, merger or other transfer of all or substantially all of the assets of OpenWork or any of its Corporate Affiliates (as defined herein), or that portion of OpenWork or any of its Corporate Affiliates to which the Service relates, or in the event that we discontinue our business or file a petition or have filed against us a petition in bankruptcy, reorganization or similar proceeding, provided that the third party agrees to adhere to the terms of this Privacy Policy. + +## Affiliates + +We may disclose information (including personal information) about you to our Corporate Affiliates. For purposes of this Privacy Policy, "Corporate Affiliate" means any person or entity which directly or indirectly controls, is controlled by or is under common control with OpenWork, whether by ownership or otherwise. Any information relating to you that we provide to our Corporate Affiliates will be treated by those Corporate Affiliates in accordance with the terms of this Privacy Policy. + +## Governing Law + +This Privacy Policy is governed by the laws of United States without regard to its conflict of laws provision. You consent to the exclusive jurisdiction of the courts in connection with any action or dispute arising between the parties under or in connection with this Privacy Policy except for those individuals who may have rights to make claims under Privacy Shield, or the Swiss-US framework. + +The laws of United States, excluding its conflicts of law rules, shall govern this Agreement and your use of the website/app. Your use of the website/app may also be subject to other local, state, national, or international laws. + +By using the Service or contacting us directly, you signify your acceptance of this Privacy Policy. If you do not agree to this Privacy Policy, you should not engage with our website, or use our services. Continued use of the website, direct engagement with us, or following the posting of changes to this Privacy Policy that do not significantly affect the use or disclosure of your personal information will mean that you accept those changes. + +## Your Consent + +We've updated our Privacy Policy to provide you with complete transparency into what is being set when you visit our site and how it's being used. By using our website/app, registering an account, or making a purchase, you hereby consent to our Privacy Policy and agree to its terms. + +## Links to Other Websites + +This Privacy Policy applies only to the Services. The Services may contain links to other websites not operated or controlled by OpenWork. We are not responsible for the content, accuracy or opinions expressed in such websites, and such websites are not investigated, monitored or checked for accuracy or completeness by us. Please remember that when you use a link to go from the Services to another website, our Privacy Policy is no longer in effect. Your browsing and interaction on any other website, including those that have a link on our platform, is subject to that website's own rules and policies. Such third parties may use their own cookies or other methods to collect information about you. + +## Cookies + +We use "Cookies" to identify the areas of our Website that you have visited. A Cookie is a small piece of data stored on your computer or mobile device by your web browser. We deploy the following categories of cookies on our Website: + +- **Strictly Necessary Cookies:** These cookies support core functions such as sign-in, session management, and security. They are essential for the Website to function and do not require consent. +- **Analytics and Performance Cookies:** We use PostHog to collect anonymous usage data (pages visited, interactions, navigation patterns) to measure feature adoption, diagnose errors, and improve the Website. These cookies are non-essential. +- **Functional Cookies:** These cookies remember your preferences (such as language or theme settings) to provide a more personalized experience. + +The Desktop App and Cloud Service do not use cookies for tracking or analytics purposes. We never place Personally Identifiable Information in Cookies. + +### Blocking and disabling cookies and similar technologies + +You may set your browser to block cookies and similar technologies, but this action may block essential cookies and prevent our Website from functioning properly. You should also be aware that you may lose some saved information (e.g., saved login details, site preferences) if you block cookies on your browser. Different browsers make different controls available to you. Disabling a cookie or category of cookie does not delete the cookie from your browser; you will need to do this yourself from within your browser. Please visit your browser's help menu for more information. + +### Do Not Track + +Your browser may offer a "Do Not Track" option, which allows you to signal to websites that you do not wish to be tracked. Our Services do not currently support "Do Not Track" requests sent from a browser at this time. + +## Payment Details + +In respect to any credit card or other payment processing details you have provided us, we commit that this confidential information will be stored in the most secure manner possible. + +## Kids' Privacy + +The Services are not intended for individuals under the age of eighteen (18). We do not knowingly collect or solicit personally identifiable information from anyone under the age of eighteen (18). If you are a parent or guardian and you are aware that your child has provided us with Personal Data, please contact us. If we become aware that we have collected Personal Data from anyone under the age of eighteen (18) without verification of parental consent, we will promptly delete that information from our servers. + +## Changes To Our Privacy Policy + +We may change our Service and policies, and we may need to make changes to this Privacy Policy so that they accurately reflect our Service and policies. Unless otherwise required by law, we will notify you (for example, through our Service) before we make changes to this Privacy Policy and give you an opportunity to review them before they go into effect. Then, if you continue to use the Service, you will be bound by the updated Privacy Policy. If you do not want to agree to this or any updated Privacy Policy, you can delete your account. + +## Third-Party Services + +We may display, include or make available third-party content (including data, information, applications and other products services) or provide links to third-party websites or services ("Third-Party Services"). You acknowledge and agree that OpenWork shall not be responsible for any Third-Party Services, including their accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect thereof. OpenWork does not assume and shall not have any liability or responsibility to you or any other person or entity for any Third-Party Services. Third-Party Services and links thereto are provided solely as a convenience to you and you access and use them entirely at your own risk and subject to such third parties' terms and conditions. + +## Tracking Technologies + +### Cookies + +Our Website uses cookies in connection with PostHog analytics to collect anonymous usage data and to enhance the performance and functionality of the Website. These cookies are non-essential to the use of the Website. However, without these cookies, certain functionality may become unavailable or you would be required to enter your login details every time you visit the Website as we would not be able to remember that you had logged in previously. The Desktop App and Cloud Service do not use cookies for tracking or analytics purposes. + +### Local Storage + +Local Storage sometimes known as DOM storage, provides web apps with methods and protocols for storing client-side data. Web storage supports persistent data storage, similar to cookies but with a greatly enhanced capacity and no information stored in the HTTP request header. + +### Sessions + +We use "Sessions" to identify the areas of our Website that you have visited. A Session is a small piece of data stored on your computer or mobile device by your web browser. + +### Operational Telemetry + +The Cloud Service collects limited operational telemetry (such as service availability, error rates, and performance metrics) necessary to monitor and maintain the reliability and security of the service. This telemetry does not contain personal information or user content and is not used for behavioral tracking or profiling. + +## Information about General Data Protection Regulation (GDPR) + +We may be collecting and using information from you if you are from the European Economic Area (EEA), and in this section of our Privacy Policy we are going to explain exactly how and why is this data collected, and how we maintain this data under protection from being replicated or used in the wrong way. + +### What is GDPR? + +GDPR is an EU-wide privacy and data protection law that regulates how EU residents' data is protected by companies and enhances the control the EU residents have, over their personal data. + +The GDPR is relevant to any globally operating company and not just the EU-based businesses and EU residents. Our customers' data is important irrespective of where they are located, which is why we have implemented GDPR controls as our baseline standard for all our operations worldwide. + +### What is personal data? + +Any data that relates to an identifiable or identified individual. GDPR covers a broad spectrum of information that could be used on its own, or in combination with other pieces of information, to identify a person. Personal data extends beyond a person's name or email address. Some examples include financial information, political opinions, genetic data, biometric data, IP addresses, physical address, sexual orientation, and ethnicity. + +### The Data Protection Principles include requirements such as: + +- Personal data collected must be processed in a fair, legal, and transparent way and should only be used in a way that a person would reasonably expect. +- Personal data should only be collected to fulfil a specific purpose and it should only be used for that purpose. Organizations must specify why they need the personal data when they collect it. +- Personal data should be held no longer than necessary to fulfil its purpose. +- People covered by the GDPR have the right to access their own personal data. They can also request a copy of their data, and that their data be updated, deleted, restricted, or moved to another organization. + +### Why is GDPR important? + +GDPR adds some new requirements regarding how companies should protect individuals' personal data that they collect and process. It also raises the stakes for compliance by increasing enforcement and imposing greater fines for breach. Beyond these facts it's simply the right thing to do. At OpenWork we strongly believe that your data privacy is very important and we already have solid security and privacy practices in place that go beyond the requirements of this new regulation. + +### Individual Data Subject's Rights — Data Access, Portability and Deletion + +We are committed to helping our customers meet the data subject rights requirements of GDPR. OpenWork processes or stores all personal data in fully vetted, DPA compliant vendors. Upon account deletion, we dispose of all personal data in accordance with our Terms of Use and this Privacy Policy within thirty (30) days. Backups may retain data for up to ninety (90) days before permanent removal. + +You have the right to access, update, retrieve, and remove your personal data at any time. To exercise these rights, please contact us at [team@openworklabs.com](mailto:team@openworklabs.com). + +## United States Resident Rights + +This section applies to residents of states with applicable consumer privacy laws, including but not limited to California (CCPA/CPRA), Colorado (CPA), Connecticut (CTDPA), Delaware (DPDPA), Iowa (ICDPA), Montana (MCDPA), Nebraska (NDPA), New Hampshire (NHPA), New Jersey (NJPA), Oregon (OCPA), Texas (TDPSA), Utah (UCPA), and Virginia (VCDPA). Where the specific rights afforded by these laws vary, we will apply the provision that is most protective of your Personal Data, to the extent reasonably practicable and not in conflict with applicable law in your jurisdiction. + +Depending on where you live, you may have some or all of the following rights, subject to applicable legal exceptions and limitations: + +- **Right to Know and Access.** You may submit a verifiable request for information regarding: (1) the categories of Personal Data we collect, use, or disclose; (2) the purposes for which we collect or use your Personal Data; (3) the categories of sources from which we collect Personal Data; and (4) the specific pieces of Personal Data we have collected about you. Where required by law, we will provide a copy of your Personal Data in a portable, machine-readable format. +- **Right to Delete.** You may submit a verifiable request to delete Personal Data that we have collected about you, subject to certain exceptions permitted by law (for example, data required for legal compliance or to complete a transaction you requested). +- **Right to Correct.** You may request that we correct inaccurate Personal Data we have collected about you. +- **Right to Opt Out.** You may opt out of the sale or sharing of your Personal Data, the processing of your Personal Data for targeted advertising, or profiling in furtherance of decisions that produce legal or similarly significant effects. We do not sell or share your Personal Data as defined under applicable state privacy laws, and we do not process your Personal Data for targeted advertising or profiling purposes. +- **Right to Equal Service.** We will not discriminate against you for exercising your privacy rights. We will not deny you our services, charge you different prices, or provide you a lower quality of service if you exercise your rights. + +We do not sell the Personal Information of our users. We do not collect or process Sensitive Personal Information as defined under applicable state privacy laws. + +### Exercising Your Rights + +To exercise any of the rights described above, you or your authorized agent must send us a request that (1) provides sufficient information to allow us to verify that you are the person about whom we collected Personal Data, and (2) describes your request in sufficient detail to allow us to understand, evaluate, and respond to it. We will respond to your request within the time period required by applicable law (generally thirty (30) days, with extensions as permitted by law). We will not charge you a fee for making a request unless it is excessive, repetitive, or manifestly unfounded. + +### Authorized Agent + +If you are a resident of a state that permits it, you may authorize an agent to exercise your privacy rights on your behalf. To do so, you must provide your authorized agent with written permission, and we may request a copy of this written permission when verifying the agent's authority. + +### Appeal Process + +If we deny your privacy rights request, you may appeal our decision by emailing us at [team@openworklabs.com](mailto:team@openworklabs.com) within sixty (60) days of receiving the denial. Your appeal must include sufficient information to identify the original request and a description of the basis for your appeal. We will respond to your appeal within the time period required by applicable law. If we deny your appeal, you have the right to contact the Attorney General of your state. + +## No Coding Advice + +Our Services provide AI-assisted tools that can generate or suggest code, but they are not a substitute for professional software engineering judgment. You remain solely responsible for reviewing, testing, and validating any code or configuration produced by the Service. Reliance on AI-generated output is at your own risk. Intellectual property ownership, license terms, and usage restrictions are detailed in our [Terms of Use](/terms). + +## Severability + +If any provision of this Privacy Policy is found by a court of competent jurisdiction to be unlawful, void, or unenforceable for any reason, that provision shall be interpreted to achieve its intent as closely as possible under applicable law, or if that is not possible, shall be deemed severed from this Privacy Policy. The invalidity or unenforceability of any provision shall not affect the validity or enforceability of any other provision, and the remaining provisions shall continue in full force and effect. + +## Entire Agreement + +This Privacy Policy, together with our Terms of Use and any applicable supplemental terms, constitutes the entire agreement between you and OpenWork regarding privacy and data protection in connection with the Service. In the event of a conflict between this Privacy Policy and the Terms of Use on matters of data privacy or data protection, this Privacy Policy shall control. + +## Contact Us + +Don't hesitate to contact us if you have any questions. + +- Via Email: [team@openworklabs.com](mailto:team@openworklabs.com) diff --git a/ee/apps/landing/app/privacy/privacy-policy.txt b/ee/apps/landing/app/privacy/privacy-policy.txt deleted file mode 100644 index 785438ac0..000000000 --- a/ee/apps/landing/app/privacy/privacy-policy.txt +++ /dev/null @@ -1,284 +0,0 @@ -Privacy Policy - -Updated at 2026-04-04 - -Different AI, doing business as OpenWork ("we," "our," or "us"), is committed to protecting your privacy. This Privacy Policy explains how your personal information is collected, used, and disclosed by Different AI. - -This Privacy Policy applies to our website (openworklabs.com and its associated subdomains), our Desktop App, and our Cloud Service (collectively, our "Service"). By accessing or using our Service, you signify that you have read, understood, and agree to our collection, storage, use, and disclosure of your personal information as described in this Privacy Policy and our Terms of Service. - -Definitions and key terms - -To help explain things as clearly as possible in this Privacy Policy, every time any of these terms are referenced, are strictly defined as: - - -Cookie: small amount of data generated by a website and saved by your web browser. It is used to identify your browser, provide analytics, remember information about you such as your language preference or login information. - -Company: when this policy mentions "Company," "we," "us," or "our," it refers to Different AI, (700 Alabama St, San Francisco, CA 94110, USA) that is responsible for your information under this Privacy Policy. - -Country: where Different AI or the owners/founders of Different AI are based, in this case is United States - -Customer: refers to the company, organization or person that signs up to use the OpenWorkLabs Service to manage the relationships with your consumers or service users. - -Device: any internet connected device such as a phone, tablet, computer or any other device that can be used to visit OpenWorkLabs and use the services. - -IP address: Every device connected to the Internet is assigned a number known as an Internet protocol (IP) address. These numbers are usually assigned in geographic blocks. An IP address can often be used to identify the location from which a device is connecting to the Internet. - -Personnel: refers to those individuals who are employed by Different AI or are under contract to perform a service on behalf of one of the parties. - -Personal Data: any information that directly, indirectly, or in connection with other information - including a personal identification number - allows for the identification or identifiability of a natural person. - -Service: refers to the service provided by OpenWorkLabs as described in the relative terms (if available) and on this platform. - -Third-party service: refers to service providers, partners, and others who provide content, functionality, or services in connection with our Service, including analytics providers, payment processors, and authentication providers. - -Website: OpenWorkLabs's marketing website, which can be accessed via this URL: openworklabs.com - -Desktop App: the OpenWork desktop application, distributed for macOS, Windows, and Linux. - -Cloud Service: the OpenWork cloud-hosted web application, accessible via a web browser and providing functionality similar to the Desktop App. - -You: a person or entity that accesses or uses the Service. - - -What Information Do We Collect? - -The information we collect depends on which part of our Service you use. We distinguish between our Website, our Desktop App, and our Cloud Service. - -Website - -When you visit our Website, we collect anonymous usage data (such as pages visited, interactions, and general navigation patterns) through PostHog, a third-party analytics platform. When you subscribe to our newsletter, we collect your email address. When you create an account or subscribe to a paid plan, we may collect: - - -Name / Username - -Email address - -Payment information (credit or debit card numbers), processed and stored by our third-party payment processor - -Account authentication data received from third-party providers (Google or GitHub) if you choose to sign in using social login - -Desktop App - -The Desktop App does not collect, track, or transmit any data during normal use. The only instance in which information is gathered is when you explicitly choose to report a bug. When you initiate a bug report, the following diagnostic information is attached to your submission solely to help us reproduce and resolve the issue: - - -Application version - -OpenCode version - -Operating system name and version - -Platform identifier (e.g., MacIntel) - -Deployment type (e.g., desktop) - -Source and entry point within the App - -This diagnostic data is submitted only with your affirmative action and does not include personal information, file contents, conversation data, or usage history. It is stored temporarily and deleted once the related issue is resolved. - -Cloud Service - -The Cloud Service does not track or profile user behavior. Like the Desktop App, the Cloud Service supports voluntary bug reporting with the same diagnostic data described above. In addition, the Cloud Service collects limited operational telemetry (such as service availability, error rates, and performance metrics) that is necessary for us to monitor and maintain the reliability and security of the service. This operational telemetry does not contain personal information or user content. - - -How Do We Use The Information We Collect? - -Any of the information we collect from you may be used in one of the following ways: - - -To provide, operate, and maintain the Service - -To process transactions and manage your subscription - -To improve our Website based on anonymous analytics data - -To diagnose and resolve software defects using bug report diagnostic data - -To monitor and ensure the reliability, security, and performance of our Cloud Service - -To send newsletter communications to subscribers who have opted in - -To improve customer service (your information helps us to more effectively respond to your customer service requests and support needs) - -To comply with legal obligations - - -When does Different AI use information from third parties? - -If you choose to authenticate using a third-party provider (Google or GitHub), we receive certain profile information from that provider, such as your name, email address, and profile identifier, in accordance with the permissions you grant during the authentication process. We use this information solely to create and manage your account. You can control what information third-party authentication providers share by reviewing your account settings with those providers. - -We may also receive information from third-party payment processors in connection with subscription transactions, limited to what is necessary to confirm and manage your subscription. - - -Do we share the information we collect with third parties? - -We do not sell, rent, or trade your personal information to third parties for their marketing purposes. - -We engage trusted third-party service providers to perform functions and provide services to us. These include: - - -PostHog for website analytics - -Payment processors for subscription billing and credit card processing - -Google and GitHub for authentication services - -Infrastructure and hosting providers for operating the Cloud Service - -We share only the minimum information necessary to enable these providers to perform their services on our behalf and for you. Each provider is contractually obligated to use your information solely for the purposes of providing services to us. - -If we are involved in a merger, acquisition, asset sale, or other business reorganization, we may share or transfer your personal and non-personal information to our successors-in-interest, provided that the receiving party agrees to honor the terms of this Privacy Policy. - -We may also disclose personal and non-personal information about you to government or law enforcement officials or private parties as we, in our sole discretion, believe necessary or appropriate in order to respond to claims, legal process (including subpoenas), to protect our rights and interests or those of a third party, the safety of the public or any person, to prevent or stop any illegal, unethical, or legally actionable activity, or to otherwise comply with applicable court orders, laws, rules and regulations. - - -Where and when is information collected from customers and end users? - -Different AI will collect personal information that you submit to us. We may also receive personal information about you from third parties as described above. - - -How Do We Use Your Email Address? - -By submitting your email address on this website or by creating an account on our platform, you agree to receive emails from us, including onboarding communications, product updates, and newsletters. By signing up for our platform, we interpret your registration as an expression of interest in receiving additional communications related to the Service. We may send emails directly or through a third-party email service provider acting on our behalf. By submitting your email address, you also agree to allow us to use your email address for customer audience targeting on sites like Facebook, Google, X (formerly Twitter), Instagram, and YouTube, where we display custom advertising to specific people who have opted-in to receive communications from us. You can cancel your participation in any of these email lists at any time by clicking on the opt-out link or other unsubscribe option that is included in the respective email. We only send emails to people who have authorized us to contact them, either directly, or through a third party. We do not send unsolicited commercial emails. If, however, you have provided the same email to us through another method, we may use it for any of the purposes stated in this Policy. Note: If at any time you would like to unsubscribe from receiving future emails, we include detailed unsubscribe instructions at the bottom of each email. - - -How Long Do We Keep Your Information? - -We keep your information only so long as we need it to provide the Service to you and fulfill the purposes described in this policy. This is also the case for anyone that we share your information with and who carries out services on our behalf. When we no longer need to use your information and there is no need for us to keep it to comply with our legal or regulatory obligations, we'll either remove it from our systems or depersonalize it so that we can't identify you. - - -How Do We Protect Your Information? - -We implement a variety of security measures to maintain the safety of your personal information when you place an order or enter, submit, or access your personal information. We offer the use of a secure server. All supplied sensitive/credit information is transmitted via Secure Socket Layer (SSL) technology and then encrypted into our payment gateway provider's database only to be accessible by those authorized with special access rights to such systems, and are required to keep the information confidential. If you subscribe to a paid plan, your payment information is stored by our third-party payment processor for the duration of your subscription in order to process recurring charges. We do not directly store your full credit card number on our own servers. We cannot, however, ensure or warrant the absolute security of any information you transmit to Different AI or guarantee that your information on the Service may not be accessed, disclosed, altered, or destroyed by a breach of any of our physical, technical, or managerial safeguards. - - -Could my information be transferred to other countries? - -Different AI is incorporated in United States. Information collected via our website, through direct interactions with you, or from use of our help services may be transferred from time to time to our offices or personnel, or to third parties, located throughout the world, and may be viewed and hosted anywhere in the world, including countries that may not have laws of general applicability regulating the use and transfer of such data. To the fullest extent allowed by applicable law, by using any of the above, you voluntarily consent to the trans-border transfer and hosting of such information. - - -Is the information collected through the Service secure? - -We take precautions to protect the security of your information. We have physical, electronic, and managerial procedures to help safeguard, prevent unauthorized access, maintain data security, and correctly use your information. However, neither people nor security systems are foolproof, including encryption systems. In addition, people can commit intentional crimes, make mistakes or fail to follow policies. Therefore, while we use reasonable efforts to protect your personal information, we cannot guarantee its absolute security. If applicable law imposes any non-disclaimable duty to protect your personal information, you agree that intentional misconduct will be the standards used to measure our compliance with that duty. - - -Can I update or correct my information? - -The rights you have to request updates or corrections to the information Different AI collects depend on your relationship with Different AI. Personnel may update or correct their information as detailed in our internal company employment policies. - -Customers have the right to request the restriction of certain uses and disclosures of personally identifiable information as follows. You can contact us in order to (1) update or correct your personally identifiable information, (2) change your preferences with respect to communications and other information you receive from us, or (3) delete the personally identifiable information maintained about you on our systems (subject to the following paragraph), by cancelling your account. Such updates, corrections, changes and deletions will have no effect on other information that we maintain, or information that we have provided to third parties in accordance with this Privacy Policy prior to such update, correction, change or deletion. To protect your privacy and security, we may take reasonable steps (such as requesting a unique password) to verify your identity before granting you profile access or making corrections. You are responsible for maintaining the secrecy of your unique password and account information at all times. - -You should be aware that it is not technologically possible to remove each and every record of the information you have provided to us from our system. The need to back up our systems to protect information from inadvertent loss means that a copy of your information may exist in a non-erasable form that will be difficult or impossible for us to locate. Promptly after receiving your request, all personal information stored in databases we actively use, and other readily searchable media will be updated, corrected, changed or deleted, as appropriate, as soon as and to the extent reasonably and technically practicable. - -If you are an end user and wish to update, delete, or receive any information we have about you, you may do so by contacting the organization of which you are a customer. - - -Personnel - -If you are a Different AI worker or applicant, we collect information you voluntarily provide to us. We use the information collected for Human Resources purposes in order to administer benefits to workers and screen applicants. - -You may contact us in order to (1) update or correct your information, (2) change your preferences with respect to communications and other information you receive from us, or (3) receive a record of the information we have relating to you. Such updates, corrections, changes and deletions will have no effect on other information that we maintain, or information that we have provided to third parties in accordance with this Privacy Policy prior to such update, correction, change or deletion. - - -Sale of Business - -We reserve the right to transfer information to a third party in the event of a sale, merger or other transfer of all or substantially all of the assets of Different AI or any of its Corporate Affiliates (as defined herein), or that portion of Different AI or any of its Corporate Affiliates to which the Service relates, or in the event that we discontinue our business or file a petition or have filed against us a petition in bankruptcy, reorganization or similar proceeding, provided that the third party agrees to adhere to the terms of this Privacy Policy. - - -Affiliates - -We may disclose information (including personal information) about you to our Corporate Affiliates. For purposes of this Privacy Policy, "Corporate Affiliate" means any person or entity which directly or indirectly controls, is controlled by or is under common control with Different AI, whether by ownership or otherwise. Any information relating to you that we provide to our Corporate Affiliates will be treated by those Corporate Affiliates in accordance with the terms of this Privacy Policy. - - -Governing Law - -This Privacy Policy is governed by the laws of United States without regard to its conflict of laws provision. You consent to the exclusive jurisdiction of the courts in connection with any action or dispute arising between the parties under or in connection with this Privacy Policy except for those individuals who may have rights to make claims under Privacy Shield, or the Swiss-US framework. - -The laws of United States, excluding its conflicts of law rules, shall govern this Agreement and your use of the website/app. Your use of the website/app may also be subject to other local, state, national, or international laws. - -By using the Service or contacting us directly, you signify your acceptance of this Privacy Policy. If you do not agree to this Privacy Policy, you should not engage with our website, or use our services. Continued use of the website, direct engagement with us, or following the posting of changes to this Privacy Policy that do not significantly affect the use or disclosure of your personal information will mean that you accept those changes. - - -Your Consent - -We've updated our Privacy Policy to provide you with complete transparency into what is being set when you visit our site and how it's being used. By using our website/app, registering an account, or making a purchase, you hereby consent to our Privacy Policy and agree to its terms. - - -Links to Other Websites - -This Privacy Policy applies only to the Services. The Services may contain links to other websites not operated or controlled by OpenWorkLabs. We are not responsible for the content, accuracy or opinions expressed in such websites, and such websites are not investigated, monitored or checked for accuracy or completeness by us. Please remember that when you use a link to go from the Services to another website, our Privacy Policy is no longer in effect. Your browsing and interaction on any other website, including those that have a link on our platform, is subject to that website's own rules and policies. Such third parties may use their own cookies or other methods to collect information about you. - - -Cookies - -We use "Cookies" to identify the areas of our Website that you have visited. A Cookie is a small piece of data stored on your computer or mobile device by your web browser. We use Cookies to enhance the performance and functionality of our Website but are non-essential to their use. However, without these cookies, certain functionality like videos may become unavailable or you would be required to enter your login details every time you visit the website/app as we would not be able to remember that you had logged in previously. Most web browsers can be set to disable the use of Cookies. However, if you disable Cookies, you may not be able to access functionality on our website correctly or at all. We never place Personally Identifiable Information in Cookies. - - -Blocking and disabling cookies and similar technologies - -Wherever you're located you may also set your browser to block cookies and similar technologies, but this action may block our essential cookies and prevent our website from functioning properly, and you may not be able to fully utilize all of its features and services. You should also be aware that you may also lose some saved information (e.g. saved login details, site preferences) if you block cookies on your browser. Different browsers make different controls available to you. Disabling a cookie or category of cookie does not delete the cookie from your browser, you will need to do this yourself from within your browser, you should visit your browser's help menu for more information. - - -Payment Details - -In respect to any credit card or other payment processing details you have provided us, we commit that this confidential information will be stored in the most secure manner possible. - - -Kids' Privacy - -We do not address anyone under the age of 13. We do not knowingly collect personally identifiable information from anyone under the age of 13. If You are a parent or guardian and You are aware that Your child has provided Us with Personal Data, please contact Us. If We become aware that We have collected Personal Data from anyone under the age of 13 without verification of parental consent, We take steps to remove that information from Our servers. - - -Changes To Our Privacy Policy - -We may change our Service and policies, and we may need to make changes to this Privacy Policy so that they accurately reflect our Service and policies. Unless otherwise required by law, we will notify you (for example, through our Service) before we make changes to this Privacy Policy and give you an opportunity to review them before they go into effect. Then, if you continue to use the Service, you will be bound by the updated Privacy Policy. If you do not want to agree to this or any updated Privacy Policy, you can delete your account. - - -Third-Party Services - -We may display, include or make available third-party content (including data, information, applications and other products services) or provide links to third-party websites or services ("Third- Party Services"). -You acknowledge and agree that Different AI shall not be responsible for any Third-Party Services, including their accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality or any other aspect thereof. Different AI does not assume and shall not have any liability or responsibility to you or any other person or entity for any Third-Party Services. -Third-Party Services and links thereto are provided solely as a convenience to you and you access and use them entirely at your own risk and subject to such third parties' terms and conditions. - - -Tracking Technologies - - -Cookies - - Our Website uses cookies in connection with PostHog analytics to collect anonymous usage data and to enhance the performance and functionality of the Website. These cookies are non-essential to the use of the Website. However, without these cookies, certain functionality may become unavailable or you would be required to enter your login details every time you visit the Website as we would not be able to remember that you had logged in previously. The Desktop App and Cloud Service do not use cookies for tracking or analytics purposes. - - -Local Storage - - Local Storage sometimes known as DOM storage, provides web apps with methods and protocols for storing client-side data. Web storage supports persistent data storage, similar to cookies but with a greatly enhanced capacity and no information stored in the HTTP request header. - - -Sessions - - We use "Sessions" to identify the areas of our Website that you have visited. A Session is a small piece of data stored on your computer or mobile device by your web browser. - - -Operational Telemetry - - The Cloud Service collects limited operational telemetry (such as service availability, error rates, and performance metrics) necessary to monitor and maintain the reliability and security of the service. This telemetry does not contain personal information or user content and is not used for behavioral tracking or profiling. - - -Information about General Data Protection Regulation (GDPR) - -We may be collecting and using information from you if you are from the European Economic Area (EEA), and in this section of our Privacy Policy we are going to explain exactly how and why is this data collected, and how we maintain this data under protection from being replicated or used in the wrong way. - - -What is GDPR? - -GDPR is an EU-wide privacy and data protection law that regulates how EU residents' data is protected by companies and enhances the control the EU residents have, over their personal data. - -The GDPR is relevant to any globally operating company and not just the EU-based businesses and EU residents. Our customers' data is important irrespective of where they are located, which is why we have implemented GDPR controls as our baseline standard for all our operations worldwide. - - -What is personal data? - -Any data that relates to an identifiable or identified individual. GDPR covers a broad spectrum of information that could be used on its own, or in combination with other pieces of information, to identify a person. Personal data extends beyond a person's name or email address. Some examples include financial information, political opinions, genetic data, biometric data, IP addresses, physical address, sexual orientation, and ethnicity. - - -The Data Protection Principles include requirements such as: - - -Personal data collected must be processed in a fair, legal, and transparent way and should only be used in a way that a person would reasonably expect. - -Personal data should only be collected to fulfil a specific purpose and it should only be used for that purpose. Organizations must specify why they need the personal data when they collect it. - -Personal data should be held no longer than necessary to fulfil its purpose. - -People covered by the GDPR have the right to access their own personal data. They can also request a copy of their data, and that their data be updated, deleted, restricted, or moved to another organization. - - -Why is GDPR important? - -GDPR adds some new requirements regarding how companies should protect individuals' personal data that they collect and process. It also raises the stakes for compliance by increasing enforcement and imposing greater fines for breach. Beyond these facts it's simply the right thing to do. At Different AI we strongly believe that your data privacy is very important and we already have solid security and privacy practices in place that go beyond the requirements of this new regulation. - - -Individual Data Subject's Rights - Data Access, Portability and Deletion - -We are committed to helping our customers meet the data subject rights requirements of GDPR. Different AI processes or stores all personal data in fully vetted, DPA compliant vendors. We do store all conversation and personal data for up to 6 years unless your account is deleted. In which case, we dispose of all data in accordance with our Terms of Service and Privacy Policy, but we will not hold it longer than 60 days. - -We are aware that if you are working with EU customers, you need to be able to provide them with the ability to access, update, retrieve and remove personal data. We got you! We've been set up as self service from the start and have always given you access to your data and your customers data. Our customer support team is here for you to answer any questions you might have about working with the API. - - -California Residents - -The California Consumer Privacy Act (CCPA) requires us to disclose categories of Personal Information we collect and how we use it, the categories of sources from whom we collect Personal Information, and the third parties with whom we share it, which we have explained above. - -We are also required to communicate information about rights California residents have under California law. You may exercise the following rights: - - -Right to Know and Access. You may submit a verifiable request for information regarding the: (1) categories of Personal Information we collect, use, or share; (2) purposes for which categories of Personal Information are collected or used by us; (3) categories of sources from which we collect Personal Information; and (4) specific pieces of Personal Information we have collected about you. - -Right to Equal Service. We will not discriminate against you if you exercise your privacy rights. - -Right to Delete. You may submit a verifiable request to close your account and we will delete Personal Information about you that we have collected. - -Request that a business that sells a consumer's personal data, not sell the consumer's personal data. - -If you make a request, we have one month to respond to you. If you would like to exercise any of these rights, please contact us. -We do not sell the Personal Information of our users. -For more information about these rights, please contact us. - - -Contact Us - -Don't hesitate to contact us if you have any questions. - - -Via Email: team@openworklabs.com diff --git a/ee/apps/landing/app/terms/page.tsx b/ee/apps/landing/app/terms/page.tsx new file mode 100644 index 000000000..4ab10b1de --- /dev/null +++ b/ee/apps/landing/app/terms/page.tsx @@ -0,0 +1,10 @@ +import { LegalPage } from "../../components/legal-page"; + +export const metadata = { + title: "OpenWork — Terms of Use", + description: "Terms of use for Different AI, doing business as OpenWork." +}; + +export default function TermsPage() { + return ; +} diff --git a/ee/apps/landing/app/terms/terms-of-use.md b/ee/apps/landing/app/terms/terms-of-use.md new file mode 100644 index 000000000..ad6a9372e --- /dev/null +++ b/ee/apps/landing/app/terms/terms-of-use.md @@ -0,0 +1,235 @@ +# Terms of Use + +Effective date: April 4, 2026 + +Welcome to OpenWork. Please read on to learn the rules and restrictions that govern your use of OpenWork's website, desktop application, cloud service, and hosted software offering (the "Services"). If you have any questions, comments, or concerns regarding these terms or the Services, please contact us at: + +Email: [team@openworklabs.com](mailto:team@openworklabs.com) + +These Terms of Use (the "Terms") are a binding contract between you and DIFFERENT AI, INC. (DBA as "OpenWork," "we" and "us"). Your use of the Services in any way means that you agree to all of these Terms, and these Terms will remain in effect while you use the Services. These Terms include the provisions in this document as well as those in the [Privacy Policy](/privacy). Your use of or participation in certain Services may also be subject to additional policies, rules and/or conditions ("Additional Terms"), which are incorporated herein by reference, and you understand and agree that by using or participating in any such Services, you agree to also comply with these Additional Terms. For clarity, our open source software that is not provided to you on a hosted basis is subject to the open source license and terms set forth on the applicable repository where you access such open source software, and such license and terms will exclusively govern your use of such open source software. + +Please read these Terms carefully. They cover important information about Services provided to you and any charges, taxes, and fees we bill you. These Terms include information about future changes to these Terms, automatic renewals, limitations of liability, a class action waiver and resolution of disputes by arbitration instead of in court. **PLEASE NOTE THAT YOUR USE OF AND ACCESS TO OUR SERVICES ARE SUBJECT TO THE FOLLOWING TERMS; IF YOU DO NOT AGREE TO ALL OF THE FOLLOWING, YOU MAY NOT USE OR ACCESS THE SERVICES IN ANY MANNER.** + +**ARBITRATION NOTICE AND CLASS ACTION WAIVER: EXCEPT FOR CERTAIN TYPES OF DISPUTES DESCRIBED IN THE ARBITRATION AGREEMENT SECTION BELOW, YOU AGREE THAT DISPUTES BETWEEN YOU AND US WILL BE RESOLVED BY BINDING, INDIVIDUAL ARBITRATION IN THE STATE OF DELAWARE AND YOU WAIVE YOUR RIGHT TO PARTICIPATE IN A CLASS ACTION LAWSUIT OR CLASS-WIDE ARBITRATION.** + +## Definitions + +When we use the following terms in these Terms, here is what we mean: + +- **"AI Output"** means any code, content, text, suggestions, or other output generated by artificial intelligence models through the Services, whether such models are provided by us or by Third Party Model providers. +- **"Content"** means Input and Output collectively. +- **"Customer Data"** means any content, code, text, files, or other data that you input, upload, submit, or generate through the Services. Customer Data does not include Usage Data. +- **"Input"** means any content, instructions, prompts, code, or other data you provide to the Services. +- **"Output"** means any content generated by the Services based on your Input. +- **"Paid Services"** means any Services that are subject to fees, as described on the Site. +- **"Payment Processor"** means the third-party payment processor we use to bill you for the Paid Services. +- **"Personally Identifiable Information" or "PII"** means any information that identifies, relates to, describes, or could reasonably be linked to a specific individual. +- **"Services"** means the OpenWork website ([openworklabs.com](https://openworklabs.com)), desktop application, cloud service, and all related features, tools, and support services made available to you under these Terms. +- **"Site"** means [openworklabs.com](https://openworklabs.com) and any associated domains or subdomains we control. +- **"Third Party Models"** means third-party artificial intelligence models or related services that you can access through the Services. +- **"Usage Data"** means telemetry, logs, performance data, usage metrics, and other technical data generated by or in connection with your use of the Services. Usage Data does not include Customer Data or PII. + +## What is OpenWork? + +OpenWork is an AI-powered desktop application and related hosted services that let individuals and teams run, manage, and share agentic workflows using large language models. Certain of these large language models are provided by third parties ("Third Party Models"), and certain models or hosted runtime capabilities may be provided directly by us if you use a paid offering. Depending on how you use the Services, OpenWork may run locally on your device, connect to remote workers or servers, and enable you to access model functionality across your projects and connected tools. + +## Will these Terms ever change? + +We are constantly trying to improve our Services, so these Terms may need to change along with our Services. We reserve the right to change the Terms at any time, but if we do, we will place a notice on our site located at [openworklabs.com](https://openworklabs.com), send you an email, and/or notify you by some other means. + +If you don't agree with the new Terms, you are free to reject them; unfortunately, that means you will no longer be able to use the Services. If you use the Services in any way after a change to the Terms is effective, that means you agree to all of the changes. + +Except for changes by us as described here, no other amendment or modification of these Terms will be effective unless in writing and signed by both you and us. + +## What about my privacy? + +OpenWork takes the privacy of its users very seriously. For the current OpenWork Privacy Policy, please [click here](/privacy). + +## Eligibility + +The Services are not intended for individuals under the age of eighteen (18). You may use the Services only if you are at least eighteen (18) years old or the age of majority in your jurisdiction, whichever is greater, and have the legal capacity to enter into a binding contract. We do not knowingly collect or solicit personally identifiable information from anyone under the age of eighteen (18). If we discover that we have collected personal data from an individual under this age without verifiable parental consent, we will promptly delete that information. If you believe we may have collected such data, please contact us at [team@openworklabs.com](mailto:team@openworklabs.com). + +## What are the basics of using OpenWork? + +You represent and warrant that you are at least eighteen (18) years old or the age of majority in your jurisdiction, whichever is greater, and have the legal capacity to form a binding contract. If you're agreeing to these Terms on behalf of an organization or entity, you represent and warrant that you are authorized to agree to these Terms on that organization's or entity's behalf and bind them to these Terms (in which case, the references to "you" and "your" in these Terms, except for in this sentence, refer to that organization or entity). + +You will only use the Services for your own internal use, and not on behalf of or for the benefit of any third party, and only in a manner that complies with all laws that apply to you. If your use of the Services is prohibited by applicable laws, then you aren't authorized to use the Services. We can't and won't be responsible for your using the Services in a way that breaks the law. + +## Are there restrictions in how I can use the Services? + +You represent, warrant, and agree that you will not provide or contribute anything, including any Content, to the Services, or otherwise use or interact with the Services, in a manner that: + +- infringes or violates the intellectual property rights or any other rights of anyone else (including OpenWork); +- violates any law or regulation, including, without limitation, any applicable export control laws, privacy laws or any other purpose not reasonably intended by OpenWork; +- is dangerous, harmful, fraudulent, deceptive, threatening, harassing, defamatory, obscene, or otherwise objectionable; +- automatically or programmatically extracts data or Output; +- represents that the Output was human-generated when it was not; +- uses Output to develop artificial intelligence models that compete with the Services or any Third Party Models; +- attempts, in any manner, to obtain the password, account, or other security information from any other user; +- violates the security of any computer network, or cracks any passwords or security encryption codes; +- runs Maillist, Listserv, any form of auto-responder or "spam" on the Services, or any processes that run or are activated while you are not logged into the Services, or that otherwise interfere with the proper working of the Services (including by placing an unreasonable load on the Services' infrastructure); +- "crawls," "scrapes," or "spiders" any page, data, or portion of or relating to the Services or Content (through use of manual or automated means); +- copies or stores any significant portion of the Content; or +- decompiles, reverse engineers, or otherwise attempts to obtain the source code or underlying ideas or information of or relating to the Services. + +A violation of any of the foregoing is grounds for termination of your right to use or access the Services. + +### Export Controls and Sanctions + +You may not use the Services if you are located in, or acting on behalf of a person or entity located in, a country or territory that is subject to U.S. government embargoes or sanctions, or if you are on any U.S. government list of restricted or prohibited parties. You represent and warrant that you are not subject to such restrictions and that your use of the Services will comply with all applicable export control laws, sanctions, and regulations. + +## Who Owns the Services and Content? + +### Our IP + +We retain all right, title and interest in and to the Services. Except as expressly set forth herein, no rights to the Services or Third Party Models are granted to you. + +### Your IP + +You may provide input to the Services ("Input"), and receive output from the Services based on the Input ("Output"). Input and Output are collectively "Content." You are responsible for Content, including ensuring that it does not violate any applicable law or these Terms. You represent and warrant that you have all rights, licenses, and permissions needed to provide Input to our Services. + +As between you and us, and to the extent permitted by applicable law, you (a) retain your ownership rights in Input and (b) own the Output. We hereby assign to you all our right, title, and interest, if any, in and to Output. + +Due to the nature of our Services and artificial intelligence generally, output may not be unique and other users may receive similar output from our Services. Our assignment above does not extend to other users' output. + +We use Content to provide our Services, comply with applicable law, enforce our terms and policies, and keep our Services safe. We do not retain your Content after it has been processed. + +If you use OpenWork with Third Party Models, then your Content will be subject to the data retention policies of the providers of such Third Party Models. We cannot and do not control the retention practices of Third Party Model providers. You should review the terms and conditions applicable to any Third Party Model for more information about the data use and retention policies applicable to such Third Party Models. + +### Usage Data + +We do not collect analytics or telemetry data during normal use of the Desktop App. The Cloud Service collects limited operational telemetry (such as service availability, error rates, and performance metrics) solely to monitor and maintain the reliability and security of the service. This operational telemetry does not contain Customer Data or Personally Identifiable Information. Diagnostic data submitted through voluntary bug reports is used exclusively to reproduce and resolve software issues and is deleted once the related issue is resolved. + +## What about Third Party Models? + +The Services enable you to access and use Third Party Models, which are not owned or controlled by OpenWork. Your ability to access Third Party Models is contingent on you having API keys or otherwise having the right to access such Third Party Models. + +OpenWork has no control over, and assumes no responsibility for, the content, accuracy, privacy policies, or practices of any providers of Third Party Models. We encourage you to read the terms and conditions and privacy policy of each provider of a Third Party Model that you choose to utilize. By using the Services, you release and hold us harmless from any and all liability arising from your use of any Third Party Model. + +### AI Output Disclaimer + +The Services use artificial intelligence models to generate code, content, and other AI Output. AI Output may contain errors, inaccuracies, security vulnerabilities, or other issues and should not be relied upon without independent review and testing. You are solely responsible for reviewing, validating, testing, and using any AI Output, whether it is generated through our own models or through Third Party Models you access via the Services. You assume full responsibility for your use of AI Output and agree not to rely on it for critical or high-risk functions — including medical, legal, financial, or safety-related purposes — without appropriate independent safeguards and human review. AI Output may be similar or identical to content generated for other users who submit similar prompts. We do not guarantee that AI Output will be unique, free of third-party intellectual property rights, accurate, complete, or suitable for any particular purpose. + +### No Sensitive Data + +You agree not to upload, input, or otherwise provide through the Services any protected health information subject to HIPAA, or any other sensitive categories of data such as financial account numbers, government-issued identification numbers, or biometric data. The Services are not designed or intended to process, store, or handle such data, and we disclaim all responsibility and liability if you choose to submit it. + +## Will OpenWork ever change the Services? + +We're always trying to improve our Services, so they may change over time. We may suspend or discontinue any part of the Services, or we may introduce new features or impose limits on certain features or restrict access to parts or all of the Services. + +### Beta and Experimental Features + +From time to time, we may make features available that are identified as beta, preview, or experimental. Such features may be incomplete, may change at any time, and may be discontinued without notice. They are provided "as is," without warranties of any kind, and may be subject to additional terms. We shall have no liability for any harm or damage arising out of or in connection with any beta or experimental feature. + +## Do the Services cost anything? + +The Services may be free or we may charge a fee for using the Services. If you are using a free version of the Services, we will notify you before any Services you are then using begin carrying a fee, and if you wish to continue using such Services, you must pay all applicable fees for such Services. Any and all such charges, fees or costs are your sole responsibility. + +### Paid Services + +Certain of our Services may be subject to payments now or in the future (the "Paid Services"). Please see our [pricing page](/pricing) for a description of the current Paid Services. Please note that any payment terms presented to you in the process of using or signing up for a Paid Service are deemed part of these Terms. + +### Billing + +We use a third-party payment processor (the "Payment Processor") to bill you through a payment account linked to your account on the Services (your "Billing Account") for use of the Paid Services. The processing of payments will be subject to the terms, conditions and privacy policies of the Payment Processor in addition to these Terms. Currently, we use Polar Software, Inc. as our Payment Processor. You can access [Polar's Terms of Service](https://polar.sh/legal/master-services-terms) and their [Privacy Policy](https://polar.sh/legal/privacy-policy). We are not responsible for any error by, or other acts or omissions of, the Payment Processor. By choosing to use Paid Services, you agree to pay us, through the Payment Processor, all charges at the prices then in effect for any use of such Paid Services in accordance with the applicable payment terms, and you authorize us, through the Payment Processor, to charge your chosen payment provider (your "Payment Method"). You agree to make payment using that selected Payment Method. We reserve the right to correct any errors or mistakes that the Payment Processor makes even if it has already requested or received payment. + +### Payment Method + +The terms of your payment will be based on your Payment Method and may be determined by agreements between you and the financial institution, credit card issuer or other provider of your chosen Payment Method. If we, through the Payment Processor, do not receive payment from you, you agree to pay all amounts due on your Billing Account upon demand. + +### Recurring Billing + +Some of the Paid Services may consist of an initial period, for which there is a one-time charge, followed by recurring period charges as agreed to by you. By choosing a recurring payment plan, you acknowledge that such Services have an initial and recurring payment feature and you accept responsibility for all recurring charges prior to cancellation. **WE MAY SUBMIT PERIODIC CHARGES (E.G., MONTHLY) WITHOUT FURTHER AUTHORIZATION FROM YOU, UNTIL YOU PROVIDE PRIOR NOTICE (RECEIPT OF WHICH IS CONFIRMED BY US) THAT YOU HAVE TERMINATED THIS AUTHORIZATION OR WISH TO CHANGE YOUR PAYMENT METHOD. SUCH NOTICE WILL NOT AFFECT CHARGES SUBMITTED BEFORE WE REASONABLY COULD ACT. YOU MAY TERMINATE YOUR AUTHORIZATION OR CHANGE YOUR PAYMENT METHOD AT ANY TIME THROUGH YOUR ACCOUNT SETTINGS. IF YOU ARE UNABLE TO TERMINATE YOUR SUBSCRIPTION THROUGH THE APPLICATION, YOU MAY CONTACT US AT [TEAM@OPENWORKLABS.COM](mailto:team@openworklabs.com) AND WE WILL PROCESS YOUR REQUEST. IF YOUR CANCELLATION REQUEST IS SUBMITTED AFTER THE CURRENT BILLING PERIOD HAS ALREADY BEEN CHARGED, ANY REFUND OR CREDIT SHALL BE GRANTED OR DENIED AT OUR SOLE DISCRETION.** + +### Free Trials and Other Promotions + +Any free trial or other promotion that provides access to a Paid Service must be used within the specified time of the trial. You must stop using a Paid Service before the end of the trial period in order to avoid being charged for that Paid Service. If you cancel prior to the end of the trial period and are inadvertently charged for a Paid Service, please contact us at [team@openworklabs.com](mailto:team@openworklabs.com). + +### Feedback + +If you provide us with any feedback, suggestions, ideas, bug reports, or other information relating to the Services or our business ("Feedback"), you agree that we may use, copy, modify, distribute, publish, or otherwise exploit that Feedback for any purpose, in any form, and through any medium, without restriction or compensation to you. You also agree that we have no obligation to keep Feedback confidential or to attribute it to you. + +### Publicity Rights + +If you are a business entity, you grant us a non-exclusive, worldwide, royalty-free license to use your name, logo, and trademarks ("Marks") to identify you as a customer on our website, in customer lists, pitch materials, investor presentations, and other marketing and promotional materials. You may revoke this license at any time by giving us written notice at [team@openworklabs.com](mailto:team@openworklabs.com). After we receive your notice, we will make commercially reasonable efforts to stop using your Marks in new materials, but we are not required to recall or destroy materials already in use. You represent and warrant that you have all necessary rights to grant this license and that our use of your Marks as permitted here will not infringe or misappropriate any third-party rights. + +## What if I want to stop using the Services? + +You're free to do that at any time; please refer to our [Privacy Policy](/privacy), as well as the licenses above, to understand how we treat information you provide to us after you have stopped using our Services. + +OpenWork is also free to terminate (or suspend access to) your use of the Services for any reason in our discretion, including your breach of these Terms. OpenWork has the sole right to decide whether you are in violation of any of the restrictions set forth in these Terms. + +Provisions that, by their nature, should survive termination of these Terms shall survive termination. By way of example, all of the following will survive termination: any obligation you have to pay us or indemnify us, any limitations on our liability, any terms regarding ownership or intellectual property rights, and terms regarding disputes between us, including without limitation the arbitration agreement. + +## What else do I need to know? + +### Warranty Disclaimer + +OpenWork and its licensors, suppliers, partners, parent, subsidiaries or affiliated entities, and each of their respective officers, directors, members, employees, consultants, contract employees, representatives and agents, and each of their respective successors and assigns (OpenWork and all such parties together, the "OpenWork Parties") make no representations or warranties concerning the Services, including without limitation regarding any Content contained in or accessed through the Services, and the OpenWork Parties will not be responsible or liable for the accuracy, copyright compliance, legality, or decency of material contained in or accessed through the Services or any claims, actions, suits procedures, costs, expenses, damages or liabilities arising out of use of, or in any way related to your participation in, the Services. The OpenWork Parties make no representations or warranties regarding suggestions or recommendations of services or products offered or purchased through or in connection with the Services. **THE SERVICES AND CONTENT ARE PROVIDED BY OPENWORK (AND ITS LICENSORS AND SUPPLIERS) ON AN "AS-IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR THAT USE OF THE SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE. SOME STATES DO NOT ALLOW LIMITATIONS ON HOW LONG AN IMPLIED WARRANTY LASTS, SO THE ABOVE LIMITATIONS MAY NOT APPLY TO YOU.** + +### Limitation of Liability + +**TO THE FULLEST EXTENT ALLOWED BY APPLICABLE LAW, UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE) SHALL ANY OF THE OPENWORK PARTIES BE LIABLE TO YOU OR TO ANY OTHER PERSON FOR (A) ANY INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING DAMAGES FOR LOST PROFITS, BUSINESS INTERRUPTION, LOSS OF DATA, LOSS OF GOODWILL, WORK STOPPAGE, ACCURACY OF RESULTS, OR COMPUTER FAILURE OR MALFUNCTION, (B) ANY SUBSTITUTE GOODS, SERVICES OR TECHNOLOGY, (C) ANY AMOUNT, IN THE AGGREGATE, IN EXCESS OF THE GREATER OF (I) ONE-HUNDRED ($100) DOLLARS OR (II) THE AMOUNTS PAID AND/OR PAYABLE BY YOU TO OPENWORK IN CONNECTION WITH THE SERVICES IN THE TWELVE (12) MONTH PERIOD PRECEDING THIS APPLICABLE CLAIM OR (D) ANY MATTER BEYOND OUR REASONABLE CONTROL. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL OR CERTAIN OTHER DAMAGES, SO THE ABOVE LIMITATION AND EXCLUSIONS MAY NOT APPLY TO YOU.** + +### Indemnity + +You agree to indemnify and hold the OpenWork Parties harmless from and against any and all claims, liabilities, damages (actual and consequential), losses and expenses (including attorneys' fees) arising from or in any way related to any claims relating to (a) your use of the Services, and (b) your violation of these Terms. In the event of such a claim, suit, or action ("Claim"), we will attempt to provide notice of the Claim to the contact information we have for your account (provided that failure to deliver such notice shall not eliminate or reduce your indemnification obligations hereunder). + +### Assignment + +You may not assign, delegate or transfer these Terms or your rights or obligations hereunder, or your Services account, in any way (by operation of law or otherwise) without OpenWork's prior written consent. We may transfer, assign, or delegate these Terms and our rights and obligations without consent. + +### Choice of Law + +These Terms are governed by and will be construed under the Federal Arbitration Act, applicable federal law, and the laws of the State of Delaware, without regard to the conflicts of laws provisions thereof. + +## Arbitration Agreement + +Please read the following **ARBITRATION AGREEMENT** carefully because it requires you to arbitrate certain disputes and claims with OpenWork and limits the manner in which you can seek relief from OpenWork. Both you and OpenWork acknowledge and agree that for the purposes of any dispute arising out of or relating to the subject matter of these Terms, OpenWork's officers, directors, employees and independent contractors ("Personnel") are third-party beneficiaries of these Terms, and that upon your acceptance of these Terms, Personnel will have the right (and will be deemed to have accepted the right) to enforce these Terms against you as the third-party beneficiary hereof. + +### Arbitration Rules; Applicability of Arbitration Agreement + +The parties shall use their best efforts to settle any dispute, claim, question, or disagreement arising out of or relating to the subject matter of these Terms directly through good-faith negotiations, which shall be a precondition to either party initiating arbitration. If such negotiations do not resolve the dispute, it shall be finally settled by binding arbitration in New Castle County, Delaware. The arbitration will proceed in the English language, in accordance with the JAMS Streamlined Arbitration Rules and Procedures (the "Rules") then in effect, by one commercial arbitrator with substantial experience in resolving intellectual property and commercial contract disputes. The arbitrator shall be selected from the appropriate list of JAMS arbitrators in accordance with such Rules. Judgment upon the award rendered by such arbitrator may be entered in any court of competent jurisdiction. + +### Costs of Arbitration + +Each party shall bear its own arbitration fees and costs as determined by the Rules, unless the arbitrator allocates fees differently in accordance with applicable law. OpenWork will not seek its attorneys' fees and costs in arbitration unless the arbitrator determines that your claim is frivolous. + +### Small Claims Court; Infringement + +Either you or OpenWork may assert claims, if they qualify, in small claims court in New Castle County, Delaware or any United States county where you live or work. Furthermore, notwithstanding the foregoing obligation to arbitrate disputes, each party shall have the right to pursue injunctive or other equitable relief at any time, from any court of competent jurisdiction, to prevent the actual or threatened infringement, misappropriation or violation of a party's copyrights, trademarks, trade secrets, patents or other intellectual property rights. + +### Waiver of Jury Trial + +**YOU AND OPENWORK WAIVE ANY CONSTITUTIONAL AND STATUTORY RIGHTS TO GO TO COURT AND HAVE A TRIAL IN FRONT OF A JUDGE OR JURY.** You and OpenWork are instead choosing to have claims and disputes resolved by arbitration. Arbitration procedures are typically more limited, more efficient, and less costly than rules applicable in court and are subject to very limited review by a court. In any litigation between you and OpenWork over whether to vacate or enforce an arbitration award, **YOU AND OPENWORK WAIVE ALL RIGHTS TO A JURY TRIAL**, and elect instead to have the dispute be resolved by a judge. + +### Waiver of Class or Consolidated Actions + +**ALL CLAIMS AND DISPUTES WITHIN THE SCOPE OF THIS ARBITRATION AGREEMENT MUST BE ARBITRATED OR LITIGATED ON AN INDIVIDUAL BASIS AND NOT ON A CLASS BASIS. CLAIMS OF MORE THAN ONE CUSTOMER OR USER CANNOT BE ARBITRATED OR LITIGATED JOINTLY OR CONSOLIDATED WITH THOSE OF ANY OTHER CUSTOMER OR USER.** If however, this waiver of class or consolidated actions is deemed invalid or unenforceable, neither you nor OpenWork is entitled to arbitration; instead all claims and disputes will be resolved in a court as set forth in (g) below. + +### Opt-out + +You have the right to opt out of the provisions of this Section by sending written notice of your decision to opt out to the following address: 700 Alabama St, San Francisco, CA 94110, United States postmarked within thirty (30) days of first accepting these Terms. You must include (i) your name and residence address, (ii) the email address and/or telephone number associated with your account, and (iii) a clear statement that you want to opt out of these Terms' arbitration agreement. + +### Exclusive Venue + +If you send the opt-out notice in (f), and/or in any circumstances where the foregoing arbitration agreement permits either you or OpenWork to litigate any dispute arising out of or relating to the subject matter of these Terms in court, then the foregoing arbitration agreement will not apply to either party, and both you and OpenWork agree that any judicial proceeding (other than small claims actions) will be brought in the state or federal courts located in, respectively, New Castle County, Delaware, or the federal district in which that county falls. + +### Severability + +If the prohibition against class actions and other claims brought on behalf of third parties contained above is found to be unenforceable, then all of the preceding language in this Arbitration Agreement section will be null and void. This arbitration agreement will survive the termination of your relationship with OpenWork. + +## Miscellaneous + +You will be responsible for paying, withholding, filing, and reporting all taxes, duties, and other governmental assessments associated with your activity in connection with the Services, provided that OpenWork may, in its sole discretion, do any of the foregoing on your behalf or for itself as it sees fit. The failure of either you or us to exercise, in any way, any right herein shall not be deemed a waiver of any further rights hereunder. You and OpenWork agree that these Terms are the complete and exclusive statement of the mutual understanding between you and OpenWork, and that these Terms supersede and cancel all previous written and oral agreements, communications and other understandings relating to the subject matter of these Terms. You hereby acknowledge and agree that you are not an employee, agent, partner, or joint venture of OpenWork, and you do not have any authority of any kind to bind OpenWork in any respect whatsoever. + +Except as expressly set forth in the section above regarding the arbitration agreement, you and OpenWork agree there are no third-party beneficiaries intended under these Terms. + +## Severability + +If any provision of these Terms is found by a court of competent jurisdiction or arbitrator to be unlawful, void, or unenforceable for any reason, that provision shall be enforced to the maximum extent permissible so as to give effect to its intent, or if that is not possible, shall be deemed severed from these Terms. The invalidity or unenforceability of any provision shall not affect the validity or enforceability of any other provision of these Terms, and the remaining provisions shall continue in full force and effect. No waiver, amendment, or modification of any provision shall be deemed a waiver, amendment, or modification of any other provision. + +## Entire Agreement + +These Terms, together with the [Privacy Policy](/privacy) and any applicable Additional Terms, constitute the entire agreement between you and OpenWork regarding the Services and supersede all prior or contemporaneous agreements, communications, and understandings (whether written or oral) relating to the Services. In the event of a conflict between these Terms and the Privacy Policy, these Terms shall control except with respect to matters of data privacy and data protection, for which the Privacy Policy shall control. diff --git a/ee/apps/landing/components/legal-page.tsx b/ee/apps/landing/components/legal-page.tsx index 57862f9ee..22e7bcc75 100644 --- a/ee/apps/landing/components/legal-page.tsx +++ b/ee/apps/landing/components/legal-page.tsx @@ -1,44 +1,50 @@ -import { ReactNode } from "react"; +import fs from "fs"; +import path from "path"; +import { LandingBackground } from "./landing-background"; +import { SiteFooter } from "./site-footer"; +import { SiteNav } from "./site-nav"; +import { getGithubData } from "../lib/github"; +import { renderMarkdown } from "../lib/render-markdown"; interface LegalPageProps { - title: string; - lastUpdated: string; - children: ReactNode; + /** Path to the .md file relative to the app directory (e.g. "privacy/privacy-policy.md") */ + file: string; } /** - * Reusable layout for legal pages (privacy policy, terms of service, etc.). - * Wrap parsed content in this component for consistent styling. + * Full-page layout for legal pages. Reads a markdown file at build time + * and renders it with nav, footer, and prose styling. No external dependencies. */ -export function LegalPage({ title, lastUpdated, children }: LegalPageProps) { - return ( -
-
-

- {title} -

-

Last updated {lastUpdated}

-
+export async function LegalPage({ file }: LegalPageProps) { + const github = await getGithubData(); + const callUrl = process.env.NEXT_PUBLIC_CAL_URL || "/enterprise#book"; -
{children}
-
+ const raw = fs.readFileSync( + path.join(process.cwd(), "app", file), + "utf-8" ); -} - -interface LegalSectionProps { - heading?: string; - children: ReactNode; -} -export function LegalSection({ heading, children }: LegalSectionProps) { return ( -
- {heading && ( -

- {heading} -

- )} - {children} -
+
+ + +
+
+ +
+ +
+
+ {renderMarkdown(raw)} +
+ + +
+
+
); } diff --git a/ee/apps/landing/components/site-footer.tsx b/ee/apps/landing/components/site-footer.tsx index 4216c1b39..2eae090d5 100644 --- a/ee/apps/landing/components/site-footer.tsx +++ b/ee/apps/landing/components/site-footer.tsx @@ -36,6 +36,9 @@ export function SiteFooter() { Privacy + + Terms +
© 2026 OpenWork Project.
diff --git a/ee/apps/landing/lib/render-markdown.tsx b/ee/apps/landing/lib/render-markdown.tsx new file mode 100644 index 000000000..641eb76a5 --- /dev/null +++ b/ee/apps/landing/lib/render-markdown.tsx @@ -0,0 +1,159 @@ +import { ReactNode } from "react"; + +/** + * Minimal markdown-to-JSX renderer for legal pages. + * Supports: headings, bold, links, lists, blockquotes, horizontal rules, paragraphs. + * No external dependencies. + */ + +/** Render inline markdown (bold, links) within a text string. */ +function renderInline(text: string): ReactNode { + // Split on **bold**, [text](url), and bare URLs + const parts: ReactNode[] = []; + const regex = + /(\*\*(.+?)\*\*)|(\[([^\]]+)\]\(([^)]+)\))|(https?:\/\/[^\s,)<>]+[^\s,)<>.;:])|([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g; + let lastIndex = 0; + let match; + + while ((match = regex.exec(text)) !== null) { + if (match.index > lastIndex) { + parts.push(text.slice(lastIndex, match.index)); + } + + if (match[1]) { + // **bold** + parts.push( + + {match[2]} + + ); + } else if (match[3]) { + // [text](url) + const href = match[5]; + const isExternal = href.startsWith("http"); + parts.push( + + {match[4]} + + ); + } else if (match[6]) { + // bare URL + parts.push( + + {match[6]} + + ); + } else if (match[7]) { + // email + parts.push( + + {match[7]} + + ); + } + + lastIndex = match.index + match[0].length; + } + + if (lastIndex < text.length) { + parts.push(text.slice(lastIndex)); + } + + return parts.length === 1 ? parts[0] : parts; +} + +/** Parse a markdown string and return React elements. */ +export function renderMarkdown(md: string): ReactNode { + const lines = md.split("\n"); + const elements: ReactNode[] = []; + let i = 0; + let key = 0; + + while (i < lines.length) { + const line = lines[i]; + + // Blank line — skip + if (line.trim() === "") { + i++; + continue; + } + + // Headings + const headingMatch = line.match(/^(#{1,3})\s+(.+)$/); + if (headingMatch) { + const level = headingMatch[1].length; + const text = headingMatch[2]; + if (level === 1) { + elements.push(

{renderInline(text)}

); + } else if (level === 2) { + elements.push(

{renderInline(text)}

); + } else { + elements.push(

{renderInline(text)}

); + } + i++; + continue; + } + + // Horizontal rule + if (/^---+$/.test(line.trim())) { + elements.push(
); + i++; + continue; + } + + // Blockquote — collect consecutive > lines + if (line.startsWith(">")) { + const bqLines: string[] = []; + while (i < lines.length && lines[i].startsWith(">")) { + bqLines.push(lines[i].replace(/^>\s?/, "")); + i++; + } + elements.push( +
+ {renderMarkdown(bqLines.join("\n"))} +
+ ); + continue; + } + + // List — collect consecutive - lines + if (line.match(/^\s*-\s/)) { + const items: string[] = []; + while (i < lines.length && lines[i].match(/^\s*-\s/)) { + items.push(lines[i].replace(/^\s*-\s/, "")); + i++; + } + elements.push( + + ); + continue; + } + + // Paragraph — collect consecutive non-blank, non-special lines + const paraLines: string[] = []; + while ( + i < lines.length && + lines[i].trim() !== "" && + !lines[i].match(/^#{1,3}\s/) && + !lines[i].match(/^\s*-\s/) && + !lines[i].startsWith(">") && + !/^---+$/.test(lines[i].trim()) + ) { + paraLines.push(lines[i]); + i++; + } + if (paraLines.length > 0) { + elements.push(

{renderInline(paraLines.join(" "))}

); + } + } + + return elements; +}