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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 0 additions & 33 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,39 +16,6 @@ Or you can manually add to your commit message:
Signed-off-by: Random Developer <random@developer.example.org>
```

## Developer Certificate of Origin

The sign-off certifies the following:

```text
Developer Certificate of Origin
Version 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or

(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or

(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.

(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```

## Quick Guide for Contributors

### First-Time Setup
Expand Down
16 changes: 16 additions & 0 deletions apps/web/src/app/(legal)/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { SiteFooter } from "@/app/components/site-footer";
import { SiteHeader } from "@/app/components/site-header";

export default function LegalLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<div className="flex min-h-svh flex-col">
<SiteHeader />
<main className="flex-1">{children}</main>
<SiteFooter />
</div>
);
}
26 changes: 26 additions & 0 deletions apps/web/src/app/(legal)/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { PrivacyContent } from "@/app/components/legal/privacy-content";
import type { Metadata } from "next";
import Balancer from "react-wrap-balancer";

export const metadata: Metadata = {
title: "Privacy Policy - Comp AI",
description: "Privacy policy and data handling practices for Comp AI",
};

export default function PrivacyPage() {
return (
<section>
<div className="container mx-auto px-4">
<div className="flex flex-col items-center py-16 md:py-24">
<h1 className="text-4xl md:text-5xl font-bold leading-tight tracking-tighter lg:leading-[1.1] max-w-[800px] mx-auto text-center bg-gradient-to-r from-foreground to-foreground/70 bg-clip-text text-transparent mb-16">
<Balancer>Privacy Policy</Balancer>
</h1>

<div className="w-full max-w-[800px]">
<PrivacyContent />
</div>
</div>
</div>
</section>
);
}
26 changes: 26 additions & 0 deletions apps/web/src/app/(legal)/terms/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { TermsContent } from "@/app/components/legal/terms-content";
import type { Metadata } from "next";
import Balancer from "react-wrap-balancer";

export const metadata: Metadata = {
title: "Terms of Service - Comp AI",
description: "Terms of service and usage agreement for Comp AI",
};

export default function TermsPage() {
return (
<section>
<div className="container mx-auto px-4">
<div className="flex flex-col items-center py-16 md:py-24">
<h1 className="text-4xl md:text-5xl font-bold leading-tight tracking-tighter lg:leading-[1.1] max-w-[800px] mx-auto text-center bg-gradient-to-r from-foreground to-foreground/70 bg-clip-text text-transparent mb-16">
<Balancer>Terms of Service</Balancer>
</h1>

<div className="w-full max-w-[800px]">
<TermsContent />
</div>
</div>
</div>
</section>
);
}
90 changes: 90 additions & 0 deletions apps/web/src/app/components/legal/privacy-content.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
export function PrivacyContent() {
return (
<div className="prose prose-gray dark:prose-invert max-w-none">
<p className="text-lg text-muted-foreground">
Last updated: February 1, 2025
</p>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">1. Introduction</h2>
<p className="text-lg text-muted-foreground">
At Bubba AI, Inc. ("we," "our," or "us"), we take your privacy
seriously. This Privacy Policy explains how we collect, use, disclose,
and safeguard your information when you use our compliance automation
platform and related services.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">
2. Information We Collect
</h2>
<h3 className="text-2xl font-medium mb-4">
2.1 Information You Provide
</h3>
<ul className="space-y-2 list-disc pl-6 text-lg text-muted-foreground">
<li>Account information (name, email, company details)</li>
<li>Compliance-related documentation and data</li>
<li>Communication preferences</li>
<li>Customer support interactions</li>
</ul>

<h3 className="text-2xl font-medium mb-4">
2.2 Automatically Collected Information
</h3>
<ul className="space-y-2 list-disc pl-6 text-lg text-muted-foreground">
<li>Usage data and analytics</li>
<li>Device and browser information</li>
<li>IP address and location data</li>
<li>Cookies and similar technologies</li>
</ul>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">
3. How We Use Your Information
</h2>
<ul className="space-y-2 list-disc pl-6 text-lg text-muted-foreground">
<li>To provide and improve our services</li>
<li>To maintain security and prevent fraud</li>
<li>To communicate with you about our services</li>
<li>To comply with legal obligations</li>
</ul>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">4. Data Security</h2>
<p className="text-lg text-muted-foreground">
We implement appropriate technical and organizational measures to
protect your information. However, no method of transmission over the
Internet or electronic storage is 100% secure.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">5. Your Rights</h2>
<p className="text-lg text-muted-foreground">You have the right to:</p>
<ul className="space-y-2 list-disc pl-6 text-lg text-muted-foreground">
<li>Access your personal data</li>
<li>Correct inaccurate data</li>
<li>Request deletion of your data</li>
<li>Object to processing of your data</li>
<li>Data portability</li>
</ul>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">6. Contact Us</h2>
<p className="text-lg text-muted-foreground">
If you have questions about this Privacy Policy, please contact us at{" "}
<a
href="mailto:hello@trycomp.ai"
className="text-primary hover:underline"
>
hello@trycomp.ai
</a>
</p>
</section>
</div>
);
}
101 changes: 101 additions & 0 deletions apps/web/src/app/components/legal/terms-content.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
export function TermsContent() {
return (
<div className="prose prose-gray dark:prose-invert max-w-none">
<p className="text-lg text-muted-foreground">
Last updated: February 1, 2025
</p>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">1. Agreement to Terms</h2>
<p className="text-lg text-muted-foreground">
By accessing or using Bubba AI, Inc.'s services, you agree to be bound
by these Terms of Service and all applicable laws and regulations. If
you do not agree with any of these terms, you are prohibited from
using or accessing our services.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">2. Use License</h2>
<p className="text-lg text-muted-foreground">
Subject to these Terms of Service, we grant you a limited,
non-exclusive, non-transferable license to use our services for your
organization's internal business purposes.
</p>
<h3 className="text-2xl font-medium mb-4">2.1 Restrictions</h3>
<p className="text-lg text-muted-foreground">You may not:</p>
<ul className="space-y-2 list-disc pl-6 text-lg text-muted-foreground">
<li>Modify or copy our materials without explicit permission</li>
<li>Use the materials for commercial purposes</li>
<li>Remove any copyright or proprietary notations</li>
<li>Transfer the materials to another person or organization</li>
</ul>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">
3. Service Availability and Support
</h2>
<p className="text-lg text-muted-foreground">
We strive to provide uninterrupted service but do not guarantee that
our services will be available at all times. We may occasionally need
to suspend services for maintenance or updates.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">4. User Obligations</h2>
<p className="text-lg text-muted-foreground">You must:</p>
<ul className="space-y-2 list-disc pl-6 text-lg text-muted-foreground">
<li>Provide accurate and complete information</li>
<li>Maintain the security of your account credentials</li>
<li>Comply with all applicable laws and regulations</li>
<li>Use the services in good faith and as intended</li>
</ul>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">
5. Intellectual Property
</h2>
<p className="text-lg text-muted-foreground">
The services and all related materials are protected by intellectual
property laws. Our open-source components are licensed under their
respective licenses.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">
6. Limitation of Liability
</h2>
<p className="text-lg text-muted-foreground">
To the fullest extent permitted by law, Comp AI shall not be liable
for any indirect, incidental, special, consequential, or punitive
damages resulting from your use of our services.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">7. Changes to Terms</h2>
<p className="text-lg text-muted-foreground">
We reserve the right to modify these terms at any time. We will notify
users of any material changes via email or through our services.
</p>
</section>

<section className="mt-12">
<h2 className="text-3xl font-semibold mb-6">8. Contact Information</h2>
<p className="text-lg text-muted-foreground">
Questions about the Terms of Service should be sent to{" "}
<a
href="mailto:hello@trycomp.ai"
className="text-primary hover:underline"
>
hello@trycomp.ai
</a>
</p>
</section>
</div>
);
}
47 changes: 38 additions & 9 deletions apps/web/src/app/components/site-footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,44 @@ import Link from "next/link";

export function SiteFooter() {
return (
<footer className="border-grid border-t py-6 md:px-8 md:py-0">
<div className="container-wrapper">
<div className="container py-4">
<div className="text-balance text-center text-sm leading-loose text-muted-foreground md:text-left">
&copy; {new Date().getFullYear()} &bull; Comp AI &bull;{" "}
<Link href="/pitch">Pitch Deck</Link> &bull;{" "}
<Link href="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/trycompai/comp">Contribute</Link>{" "}
&bull; 2261 Market Street, San Francisco, CA 94114
</div>
<footer className="border-t py-6 md:py-0">
<div className="container flex flex-col items-center justify-between gap-4 md:h-16 md:flex-row">
<div className="flex flex-col items-center gap-4 px-8 md:flex-row md:gap-2 md:px-0">
<p className="text-center text-sm leading-loose text-muted-foreground md:text-left">
Built by{" "}
<Link
href="https://trycomp.ai"
target="_blank"
rel="noreferrer"
className="font-medium underline underline-offset-4"
>
Comp AI
</Link>
. The source code is available on{" "}
<Link
href="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/trycomp/comp"
target="_blank"
rel="noreferrer"
className="font-medium underline underline-offset-4"
>
GitHub
</Link>
.
</p>
</div>
<div className="flex gap-4">
<Link
href="/privacy"
className="text-sm text-muted-foreground hover:underline"
>
Privacy
</Link>
<Link
href="/terms"
className="text-sm text-muted-foreground hover:underline"
>
Terms
</Link>
</div>
</div>
</footer>
Expand Down