From 4cd8ad3c4cd63623b9d3007dc0df4345307cfa89 Mon Sep 17 00:00:00 2001 From: Sean O'Connor Date: Thu, 18 Jun 2026 02:44:43 -0400 Subject: [PATCH] Redesign legal pages with readable paragraph layout and updated contact info. Privacy Policy and Terms now share a document layout with table of contents, plain-paragraph copy, and beenvoice.soconnor.dev contact details for App Store review. Co-authored-by: Cursor --- src/app/(legal)/privacy/page.tsx | 5 +- src/app/(legal)/terms/page.tsx | 5 +- src/components/legal/legal-document.tsx | 101 ++++ src/components/legal/legal-page-shell.tsx | 41 +- .../legal/privacy-policy-content.tsx | 549 ++++++------------ .../legal/terms-of-service-content.tsx | 504 +++++++--------- src/lib/legal.ts | 6 +- 7 files changed, 546 insertions(+), 665 deletions(-) create mode 100644 src/components/legal/legal-document.tsx diff --git a/src/app/(legal)/privacy/page.tsx b/src/app/(legal)/privacy/page.tsx index 966107d..024c3a5 100644 --- a/src/app/(legal)/privacy/page.tsx +++ b/src/app/(legal)/privacy/page.tsx @@ -11,7 +11,10 @@ export const metadata: Metadata = { export default function PrivacyPolicyPage() { return ( - + ); diff --git a/src/app/(legal)/terms/page.tsx b/src/app/(legal)/terms/page.tsx index ed1ecd7..0cb133d 100644 --- a/src/app/(legal)/terms/page.tsx +++ b/src/app/(legal)/terms/page.tsx @@ -11,7 +11,10 @@ export const metadata: Metadata = { export default function TermsOfServicePage() { return ( - + ); diff --git a/src/components/legal/legal-document.tsx b/src/components/legal/legal-document.tsx new file mode 100644 index 0000000..6a83e2f --- /dev/null +++ b/src/components/legal/legal-document.tsx @@ -0,0 +1,101 @@ +import Link from "next/link"; + +import { cn } from "~/lib/utils"; + +export type LegalSection = { + id: string; + title: string; + children: React.ReactNode; +}; + +/** Body copy for legal pages — explicit styles (no typography plugin). */ +export function LegalParagraph({ + className, + children, +}: { + className?: string; + children: React.ReactNode; +}) { + return ( +

+ {children} +

+ ); +} + +export function LegalSectionBody({ children }: { children: React.ReactNode }) { + return ( +
+ {children} +
+ ); +} + +export function LegalTableOfContents({ sections }: { sections: LegalSection[] }) { + return ( + + ); +} + +function LegalSectionBlock({ + section, + isLast, +}: { + section: LegalSection; + isLast: boolean; +}) { + return ( +
+
+

+ {section.title} +

+
+
+ {section.children} +
+
+ ); +} + +export function LegalDocument({ sections }: { sections: LegalSection[] }) { + return ( +
+ + +
+ {sections.map((section, index) => ( + + ))} +
+
+ ); +} diff --git a/src/components/legal/legal-page-shell.tsx b/src/components/legal/legal-page-shell.tsx index 0f97486..caa7992 100644 --- a/src/components/legal/legal-page-shell.tsx +++ b/src/components/legal/legal-page-shell.tsx @@ -2,38 +2,49 @@ import Link from "next/link"; import { ArrowLeft } from "lucide-react"; import { Button } from "~/components/ui/button"; +import { Logo } from "~/components/branding/logo"; import { LEGAL_LAST_UPDATED } from "~/lib/legal"; type LegalPageShellProps = { title: string; + description?: string; children: React.ReactNode; }; -export function LegalPageShell({ title, children }: LegalPageShellProps) { +export function LegalPageShell({ + title, + description, + children, +}: LegalPageShellProps) { return (
-
-
-
+
+
+
+ -
-

{title}

-

- Last updated: {LEGAL_LAST_UPDATED} -

-
+
+ +
+

{title}

+ {description ? ( +

{description}

+ ) : null} +

+ Last updated {LEGAL_LAST_UPDATED} +

-
+ -
-
{children}
-
+
+ {children} +
); } diff --git a/src/components/legal/privacy-policy-content.tsx b/src/components/legal/privacy-policy-content.tsx index 6a9b427..1cf4b7e 100644 --- a/src/components/legal/privacy-policy-content.tsx +++ b/src/components/legal/privacy-policy-content.tsx @@ -1,373 +1,192 @@ -import Link from "next/link"; - -import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card"; import { LEGAL_PRIVACY_EMAIL, - LEGAL_TERMS_EMAIL, LEGAL_WEBSITE, } from "~/lib/legal"; import { brand } from "~/lib/branding"; +import { + LegalDocument, + LegalParagraph, + type LegalSection, +} from "~/components/legal/legal-document"; + +const sections: LegalSection[] = [ + { + id: "introduction", + title: "Introduction", + children: ( + <> + + This Privacy Policy explains how {brand.name} collects, uses, and protects + information when you use our invoicing platform, including the web app and mobile + app (the “Service”). + + + If you have questions about this policy, email us at{" "} + {LEGAL_PRIVACY_EMAIL}. + + + ), + }, + { + id: "information-we-collect", + title: "Information we collect", + children: ( + <> + + When you create an account and use the Service, you provide information such as + your name, email address, business details, client records, invoice content, and + time entries. This is the data you enter to run your invoicing workflow. + + + You may also add payment instructions that appear on invoices, such as bank + transfer details. We do not process card payments on your behalf. + + + We also collect some technical information automatically so the Service stays + secure and reliable. This can include your IP address, device and browser or app + details, log and diagnostic data, and session cookies that keep you signed in. + Some deployments may use optional, privacy-focused analytics. + + + ), + }, + { + id: "how-we-use-information", + title: "How we use information", + children: ( + <> + + We use your information to provide and operate the Service, authenticate your + account, send transactional messages such as password resets, respond to support + requests, monitor security and performance, and meet legal obligations. + + + ), + }, + { + id: "how-we-share", + title: "How we share information", + children: ( + <> + + We do not sell your personal information. We share it only when needed to run the + Service or when the law requires it. + + + We work with service providers that host our infrastructure, deliver transactional + email, support single sign-on when enabled on your instance, and optionally provide + privacy-focused analytics. These vendors may process your information only to + perform services for us. + + + We may disclose information if we believe it is reasonably necessary to comply with + law, respond to a valid legal request, or protect the security and integrity of the + Service. + + + If we are involved in a merger, acquisition, or sale of assets, your information + may be transferred as part of that transaction, subject to continued protection + consistent with this policy. + + + ), + }, + { + id: "security-retention", + title: "Security and retention", + children: ( + <> + + We use reasonable safeguards to protect information, including encryption in + transit, access controls, and secure authentication. No method of transmission or + storage is completely secure. + + + We retain information for as long as you have an account or as needed to provide + the Service. We may keep certain records longer when required by law or for + legitimate purposes such as fraud prevention or dispute resolution. + + + ), + }, + { + id: "your-rights", + title: "Your rights", + children: ( + <> + + Depending on where you live, you may have the right to access, correct, delete, or + export your personal information, or to object to or restrict certain processing. + + + To exercise these rights, contact us at{" "} + {LEGAL_PRIVACY_EMAIL}. We will + respond within a reasonable timeframe and as required by applicable law. + + + ), + }, + { + id: "cookies", + title: "Cookies", + children: ( + <> + + We use cookies and similar technologies to keep you signed in, remember + preferences such as theme, and, when enabled on a deployment, measure usage with + privacy-focused analytics. + + + You can control cookies through your browser settings. If you disable essential + cookies, some parts of the Service may not work correctly. + + + ), + }, + { + id: "other", + title: "Other disclosures", + children: ( + <> + + The Service may link to third-party websites or integrate with services you + configure, such as single sign-on. Those services have their own privacy policies, + and we are not responsible for their practices. + + + The Service is not intended for children under 13. If you believe a child has + provided us personal information, contact us and we will delete it. + + + Your information may be processed in countries other than your own. Where required, + we use appropriate safeguards for international transfers. + + + We may update this policy from time to time. If we make material changes, we will + post the updated policy on the Service and may notify you by email. Continued use + after changes take effect means you accept the updated policy. + + + ), + }, + { + id: "contact", + title: "Contact", + children: ( + <> + + For privacy questions or requests, email{" "} + {LEGAL_PRIVACY_EMAIL} or visit{" "} + + {LEGAL_WEBSITE.replace(/^https?:\/\//, "")} + + . + + + ), + }, +]; export function PrivacyPolicyContent() { - return ( - <> - - - Introduction - - -

- {brand.name} ("we", "our", or "us") is - committed to protecting your privacy. This Privacy Policy explains - how we collect, use, disclose, and safeguard your information when - you use our invoicing platform and services. -

-

- Please read this Privacy Policy carefully. If you do not agree with - the terms of this Privacy Policy, please do not access or use our - Service. -

-
-
- - - - Information We Collect - - -

Personal Information

-

- We may collect personal information that you voluntarily provide to - us when you: -

-
    -
  • Register for an account
  • -
  • Create invoices or manage client information
  • -
  • Track time entries and billing activity
  • -
  • Contact us for support
  • -
  • Subscribe to our newsletters or communications
  • -
- -

This personal information may include:

-
    -
  • Name and contact information (email, phone, address)
  • -
  • Business information and tax details
  • -
  • Client information you input into the system
  • -
  • Financial information related to your invoices
  • -
  • - Payment information (processed securely by third-party providers) -
  • -
- -

Automatically Collected Information

-

- We may automatically collect certain information when you visit our - Service: -

-
    -
  • - Device information (IP address, browser type, operating system) -
  • -
  • Usage data (pages visited, time spent, features used)
  • -
  • Log files and analytics data
  • -
  • Cookies and similar tracking technologies
  • -
-
-
- - - - How We Use Your Information - - -

We use the information we collect to:

-
    -
  • Provide, operate, and maintain our Service
  • -
  • Process your transactions and manage your account
  • -
  • Improve and personalize your experience
  • -
  • Communicate with you about your account and our services
  • -
  • Send you technical notices and support messages
  • -
  • Respond to your comments, questions, and requests
  • -
  • Monitor usage and analyze trends
  • -
  • - Detect, prevent, and address technical issues and security - breaches -
  • -
  • Comply with legal obligations
  • -
-
-
- - - - How We Share Your Information - - -

- We do not sell, trade, or rent your personal information to third - parties. We may share your information in the following - circumstances: -

- -

Service Providers

-

- We may share your information with trusted third-party service - providers who assist us in operating our Service, such as: -

-
    -
  • Cloud hosting and storage providers
  • -
  • Payment processors
  • -
  • Email service providers
  • -
  • Analytics and monitoring services
  • -
- -

Legal Requirements

-

- We may disclose your information if required to do so by law or in - response to: -

-
    -
  • Legal processes (subpoenas, court orders)
  • -
  • Government requests
  • -
  • Law enforcement investigations
  • -
  • Protection of our rights, property, or safety
  • -
- -

Business Transfers

-

- In the event of a merger, acquisition, or sale of assets, your - information may be transferred as part of that transaction. -

-
-
- - - - Data Security - - -

- We implement appropriate technical and organizational security - measures to protect your information: -

-
    -
  • Encryption of data in transit and at rest
  • -
  • Secure access controls and authentication
  • -
  • Regular security assessments and updates
  • -
  • Employee training on data protection
  • -
  • Incident response procedures
  • -
-

- However, no method of transmission over the internet or electronic - storage is 100% secure. While we strive to protect your information, - we cannot guarantee absolute security. -

-
-
- - - - Data Retention - - -

- We retain your personal information only for as long as necessary to - fulfill the purposes outlined in this Privacy Policy, unless a - longer retention period is required by law. -

-

- Factors we consider when determining retention periods include: -

-
    -
  • The nature and sensitivity of the information
  • -
  • Legal and regulatory requirements
  • -
  • Business and operational needs
  • -
  • Your account status and activity
  • -
-
-
- - - - Your Rights and Choices - - -

- Depending on your location, you may have the following rights - regarding your personal information: -

- -

Access and Portability

-
    -
  • Request access to your personal information
  • -
  • Receive a copy of your data in a portable format
  • -
- -

Correction and Updates

-
    -
  • Correct inaccurate or incomplete information
  • -
  • Update your account information at any time
  • -
- -

Deletion

-
    -
  • Request deletion of your personal information
  • -
  • Close your account and remove your data
  • -
- -

Restriction and Objection

-
    -
  • Restrict the processing of your information
  • -
  • Object to certain uses of your data
  • -
- -

- To exercise these rights, please contact us using the information - provided in the "Contact Us" section below. -

-
-
- - - - Cookies and Tracking Technologies - - -

We use cookies and similar technologies to:

-
    -
  • Remember your preferences and settings
  • -
  • Authenticate your account
  • -
  • Analyze usage patterns and improve our Service
  • -
  • Provide personalized content and features
  • -
- -

- You can control cookies through your browser settings. However, - disabling cookies may affect the functionality of our Service. -

- -

Types of Cookies We Use

-
    -
  • - Essential Cookies: Required for the Service to - function properly -
  • -
  • - Analytics Cookies: Help us understand how you use - our Service -
  • -
  • - Preference Cookies: Remember your settings and - preferences -
  • -
-
-
- - - - Third-Party Links and Services - - -

- Our Service may contain links to third-party websites or integrate - with third-party services. We are not responsible for the privacy - practices of these third parties. -

-

- We encourage you to read the privacy policies of any third-party - services you use in connection with our Service. -

-
-
- - - - Children's Privacy - - -

- Our Service is not intended for children under the age of 13. We do - not knowingly collect personal information from children under 13. -

-

- If you are a parent or guardian and believe your child has provided - us with personal information, please contact us immediately so we - can remove such information. -

-
-
- - - - International Data Transfers - - -

- Your information may be transferred to and processed in countries - other than your own. We ensure that such transfers comply with - applicable data protection laws. -

-

- When we transfer your information internationally, we implement - appropriate safeguards to protect your data, including: -

-
    -
  • Standard contractual clauses
  • -
  • Adequacy decisions by relevant authorities
  • -
  • Certified privacy frameworks
  • -
-
-
- - - - Changes to This Privacy Policy - - -

- We may update this Privacy Policy from time to time. We will notify - you of any material changes by: -

-
    -
  • Posting the updated policy on our Service
  • -
  • Sending you an email notification
  • -
  • Displaying a prominent notice on our Service
  • -
-

- Your continued use of our Service after any changes indicates your - acceptance of the updated Privacy Policy. -

-
-
- - - - Contact Us - - -

- If you have questions about this Privacy Policy or our privacy - practices, please contact us at: -

- -

- We will respond to your inquiries within a reasonable timeframe and - in accordance with applicable law. -

-
-
- - ); + return ; } diff --git a/src/components/legal/terms-of-service-content.tsx b/src/components/legal/terms-of-service-content.tsx index aee8e58..673b66c 100644 --- a/src/components/legal/terms-of-service-content.tsx +++ b/src/components/legal/terms-of-service-content.tsx @@ -1,291 +1,235 @@ import Link from "next/link"; -import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card"; import { LEGAL_PRIVACY_EMAIL, LEGAL_TERMS_EMAIL, LEGAL_WEBSITE, } from "~/lib/legal"; import { brand } from "~/lib/branding"; +import { + LegalDocument, + LegalParagraph, + type LegalSection, +} from "~/components/legal/legal-document"; + +const sections: LegalSection[] = [ + { + id: "agreement", + title: "Agreement to these terms", + children: ( + <> + + These Terms of Service (“Terms”) govern your use of the {brand.name}{" "} + platform, including the web app and mobile app (the “Service”). + + + By accessing or using the Service, you agree to these Terms. If you do + not agree, do not use the Service. + + + ), + }, + { + id: "service", + title: "The Service", + children: ( + <> + + {brand.name} helps you create and manage invoices, track clients and + businesses, record billable time, and review basic financial summaries. + You may use the official hosted Service or connect the mobile app to a + self-hosted {brand.name} server you control. + + + The Service is a tool for your business records. We do not provide + legal, tax, or accounting advice, and you are responsible for the + accuracy of invoices and compliance with laws that apply to you. + + + ), + }, + { + id: "accounts", + title: "Accounts and security", + children: ( + <> + + When you create an account, you agree to provide accurate information + and keep it up to date. You are responsible for activity under your + account and for keeping your credentials secure. + + + Notify us promptly if you suspect unauthorized access to your account. + We may suspend or restrict access if we believe your account is + compromised or used in violation of these Terms. + + + ), + }, + { + id: "acceptable-use", + title: "Acceptable use", + children: ( + <> + + You agree to use the Service lawfully and only for its intended + purpose. You may not use the Service to break the law, infringe + others’ rights, transmit malware, attempt to gain unauthorized access, + interfere with the Service’s operation, or harass or harm others. + + + You may not use the Service to send spam, publish false or misleading + information, or scrape or overload our systems without permission. + + + ), + }, + { + id: "data-privacy", + title: "Your data and privacy", + children: ( + <> + + Your privacy matters to us. Our{" "} + Privacy Policy explains how we collect + and use information and is incorporated into these Terms. + + + You retain ownership of the content you enter into the Service, such as + clients, invoices, and time entries. We do not sell your personal + information. We may process your data as described in the Privacy + Policy to provide and secure the Service. + + + You are responsible for maintaining your own backups of important + business records. While we take reasonable steps to protect data, you + should not rely on the Service as your only copy of critical + information. + + + ), + }, + { + id: "fees", + title: "Fees", + children: ( + <> + + Access to the Service may be offered without charge today, but we + reserve the right to introduce fees for certain features or hosted + plans in the future. If we do, we will provide reasonable notice + before any new fees apply to you. + + + The mobile app does not offer in-app purchases. If you run a + self-hosted instance, you are responsible for the costs and + administration of that environment. + + + ), + }, + { + id: "intellectual-property", + title: "Intellectual property", + children: ( + <> + + The Service, including its software, design, and branding, is owned by{" "} + {brand.name} and its licensors and is protected by applicable + intellectual property laws. + + + You may not copy, modify, or reverse engineer the Service except where + the law expressly allows. Our name and marks may not be used without + our prior written permission. + + + ), + }, + { + id: "termination", + title: "Termination", + children: ( + <> + + You may stop using the Service at any time. You may also contact us to + request account deletion. + + + We may suspend or terminate your access if you violate these Terms, if + required by law, or if we discontinue the Service. Upon termination, + your right to use the Service ends immediately, subject to any legal + obligations that require us to retain certain data. + + + ), + }, + { + id: "disclaimers", + title: "Disclaimers and limitation of liability", + children: ( + <> + + The Service is provided “as is” and “as available.” To the fullest + extent permitted by law, we disclaim warranties of merchantability, + fitness for a particular purpose, and non-infringement. We do not + guarantee that the Service will be uninterrupted or error-free. + + + To the fullest extent permitted by law, {brand.name} and its + affiliates will not be liable for indirect, incidental, special, + consequential, or punitive damages, or for loss of profits, data, or + goodwill, arising from your use of the Service. + + + Nothing in these Terms limits liability that cannot be limited under + applicable law, including liability for fraud or for death or personal + injury caused by negligence. + + + ), + }, + { + id: "general", + title: "General", + children: ( + <> + + These Terms are governed by the laws applicable where {brand.name}{" "} + operates, without regard to conflict-of-law rules. If we do not + enforce a provision, that does not waive our right to enforce it + later. + + + We may update these Terms from time to time. If we make material + changes, we will post the updated Terms on the Service and may notify + you by email. Continued use after changes take effect means you accept + the revised Terms. + + + ), + }, + { + id: "contact", + title: "Contact", + children: ( + <> + + Questions about these Terms:{" "} + {LEGAL_TERMS_EMAIL}. + Privacy questions:{" "} + {LEGAL_PRIVACY_EMAIL}. + Website:{" "} + + {LEGAL_WEBSITE.replace(/^https?:\/\//, "")} + + . + + + ), + }, +]; export function TermsOfServiceContent() { - return ( - <> - - - Agreement to Terms - - -

- These Terms of Service ("Terms") govern your use of the{" "} - {brand.name} platform and services (the "Service") operated - by {brand.name} ("us", "we", or "our"). -

-

- By accessing or using our Service, you agree to be bound by these - Terms. If you disagree with any part of these terms, then you may not - access the Service. -

-
-
- - - - Description of Service - - -

- {brand.name} is a web-based invoicing platform that allows users to: -

-
    -
  • Create and manage professional invoices
  • -
  • Track client information and billing details
  • -
  • Clock time and convert entries into billable work
  • -
  • Monitor payment status and financial metrics
  • -
  • Generate reports and analytics
  • -
  • Manage business profiles and settings
  • -
-
-
- - - - User Accounts - - -

- When you create an account with us, you must provide information that - is accurate, complete, and current at all times. You are responsible - for safeguarding the password and for all activities that occur - under your account. -

-

- You agree not to disclose your password to any third party. You must - notify us immediately upon becoming aware of any breach of security - or unauthorized use of your account. -

-
-
- - - - Acceptable Use - - -

You agree not to use the Service:

-
    -
  • - For any unlawful purpose or to solicit others to perform unlawful - acts -
  • -
  • - To violate any international, federal, provincial, or state - regulations, rules, laws, or local ordinances -
  • -
  • - To infringe upon or violate our intellectual property rights or - the intellectual property rights of others -
  • -
  • - To harass, abuse, insult, harm, defame, slander, disparage, - intimidate, or discriminate -
  • -
  • To submit false or misleading information
  • -
  • - To upload or transmit viruses or any other type of malicious code -
  • -
  • To spam, phish, pharm, pretext, spider, crawl, or scrape
  • -
  • For any obscene or immoral purpose
  • -
  • - To interfere with or circumvent the security features of the - Service -
  • -
-
-
- - - - Data and Privacy - - -

- Your privacy is important to us. Please review our{" "} - Privacy Policy, which also governs your - use of the Service, to understand our practices. -

-

- You retain ownership of your data. We will not sell, rent, or share - your personal information with third parties without your explicit - consent, except as described in our Privacy Policy. -

-

- You are responsible for backing up your data. While we implement - regular backups, we recommend you maintain your own copies of - important information. -

-
-
- - - - Payment Terms - - -

- Some aspects of the Service may require payment. You will be charged - according to your subscription plan. All fees are non-refundable - unless otherwise stated. -

-

- We may change our fees at any time. We will provide you with - reasonable notice of any fee changes by posting the new fees on the - Service or sending you email notification. -

-

- If you fail to pay any fees when due, we may suspend or terminate - your access to the Service until payment is made. -

-
-
- - - - Intellectual Property Rights - - -

- The Service and its original content, features, and functionality - are and will remain the exclusive property of {brand.name} and its - licensors. The Service is protected by copyright, trademark, and - other laws. -

-

- Our trademarks and trade dress may not be used in connection with - any product or service without our prior written consent. -

-
-
- - - - Termination - - -

- We may terminate or suspend your account and bar access to the - Service immediately, without prior notice or liability, under our - sole discretion, for any reason whatsoever and without limitation, - including but not limited to a breach of the Terms. -

-

- If you wish to terminate your account, you may discontinue using the - Service and contact us to request account deletion. -

-

- Upon termination, your right to use the Service will cease - immediately. -

-
-
- - - - Disclaimer of Warranties - - -

- The information on this Service is provided on an "as is" - basis. To the fullest extent permitted by law, we exclude all - representations, warranties, and conditions relating to our Service - and the use of this Service. -

-

- Nothing in this disclaimer will limit or exclude our or your - liability for death or personal injury resulting from negligence, - fraud, or fraudulent misrepresentation. -

-
-
- - - - Limitation of Liability - - -

- In no event shall {brand.name}, nor its directors, employees, - partners, agents, suppliers, or affiliates, be liable for any - indirect, incidental, special, consequential, or punitive damages, - including without limitation, loss of profits, data, use, goodwill, or - other intangible losses, resulting from your use of the Service. -

-
-
- - - - Governing Law - - -

- These Terms shall be interpreted and governed by the laws of the - jurisdiction in which {brand.name} operates, without regard to its - conflict of law provisions. -

-

- Our failure to enforce any right or provision of these Terms will - not be considered a waiver of those rights. -

-
-
- - - - Changes to Terms - - -

- We reserve the right, at our sole discretion, to modify or replace - these Terms at any time. If a revision is material, we will provide - at least 30 days notice prior to any new terms taking effect. -

-

- What constitutes a material change will be determined at our sole - discretion. By continuing to access or use our Service after any - revisions become effective, you agree to be bound by the revised - terms. -

-
-
- - - - Contact Information - - -

- If you have any questions about these Terms of Service, please - contact us at: -

- -
-
- - ); + return ; } diff --git a/src/lib/legal.ts b/src/lib/legal.ts index deb8732..907f109 100644 --- a/src/lib/legal.ts +++ b/src/lib/legal.ts @@ -1,5 +1,5 @@ export const LEGAL_LAST_UPDATED = "June 18, 2026"; -export const LEGAL_PRIVACY_EMAIL = "privacy@beenvoice.com"; -export const LEGAL_TERMS_EMAIL = "legal@beenvoice.com"; -export const LEGAL_WEBSITE = "https://beenvoice.com"; +export const LEGAL_PRIVACY_EMAIL = "privacy@soconnor.dev"; +export const LEGAL_TERMS_EMAIL = "legal@soconnor.dev"; +export const LEGAL_WEBSITE = "https://beenvoice.soconnor.dev";