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
267 changes: 132 additions & 135 deletions app/privacy/page.tsx
Original file line number Diff line number Diff line change
@@ -1,167 +1,164 @@
'use client'

import type { Metadata } from 'next'
import { ArrowLeft, Shield, Lock, Eye, FileText, Database, ShieldAlert } from 'lucide-react'
import Link from '../components/ui/Link'
import Link from 'next/link'
import Footer from '../components/landing/Footer'

export const metadata: Metadata = {
title: 'Privacy Policy · DumpIt',
description: 'Learn how DumpIt collects, uses, and protects your personal information.',
}

const sections = [
{
icon: Eye,
title: '1. Information We Collect',
content: (
<>
<p>We collect information to provide, personalize, and improve our AI-powered knowledge vault services. This includes:</p>
<ul>
<li><strong>Account Information:</strong> When you sign up using Google Authentication or email, we receive your email address, name, and profile picture.</li>
<li><strong>User Content (Dumps):</strong> We collect the links, URLs, titles, notes, and tags that you explicitly save ("dump") to your vault.</li>
<li><strong>AI Search Queries:</strong> We store the queries and questions you enter when searching or interacting with your vault via the "Ask DumpIt" interface to retrieve relevant context and generate answers.</li>
<li><strong>Technical Data:</strong> We may collect browser details, IP addresses, cookies, and extension logs required for the Service's security and runtime functionality.</li>
</ul>
</>
),
},
{
icon: Database,
title: '2. How We Use Your Information',
content: (
<>
<p>Your information is used to power the core functionality of DumpIt:</p>
<ul>
<li><strong>Retrieval &amp; Search:</strong> Indexing your saved links, text content, and documents so you can query and retrieve them via semantic search.</li>
<li><strong>AI Generation:</strong> Submitting relevant snippets of your saved sources to third-party AI models to generate cited answers to your questions.</li>
<li><strong>Public Sharing:</strong> Hosting your public sharing pages (e.g., <code>/u/[username]</code>) when you explicitly configure links or profile cards to be publicly accessible.</li>
<li><strong>Security:</strong> Preventing abuse, unauthorized access, or violating the Terms of Service.</li>
</ul>
</>
),
},
{
icon: Lock,
title: '3. Data Sharing &amp; Third-Party Services',
content: (
<>
<p>We do not sell your personal data. We share details with trusted infrastructure providers required to operate the Service:</p>
<ul>
<li><strong>Firebase (Google Cloud):</strong> We use Firebase Authentication and Firestore databases to store user profiles and resource objects.</li>
<li><strong>AI Model Providers (Google Gemini):</strong> When you ask questions, relevant snippets of your saved content are passed as context to AI models. These models do not use your private documents to train public models.</li>
<li><strong>Hosting:</strong> Vercel or similar cloud hosting providers hosting our web servers.</li>
</ul>
</>
),
},
{
icon: ShieldAlert,
title: '4. Data Control &amp; GDPR / CCPA Rights',
content: (
<>
<p>Depending on your location, you may have specific data rights, which DumpIt respects globally:</p>
<ul>
<li><strong>Access &amp; Export:</strong> You can view all your saved resources and notes directly within your DumpIt Dashboard.</li>
<li><strong>Deletion:</strong> You can delete individual resources, notes, or tags at any time. To permanently delete your entire account and all associated data, contact us at <a href="mailto:support@dumpit.app">support@dumpit.app</a>.</li>
<li><strong>Opt-Out of Sharing:</strong> Your links are private by default. They are only shared publicly if you explicitly enable sharing or assign them to a public profile.</li>
</ul>
</>
),
},
{
icon: FileText,
title: '5. Contact Us',
content: (
<>
<p>If you have any questions, concerns, or requests regarding this Privacy Policy or your personal information, please reach out to us:</p>
<p><a href="mailto:support@dumpit.app" className="font-semibold text-blue-600 dark:text-blue-400 hover:underline">support@dumpit.app</a></p>
</>
),
},
]

export default function PrivacyPolicy() {
return (
<div className="min-h-screen bg-stone-50 text-slate-950 dark:bg-slate-950 dark:text-slate-50 flex flex-col justify-between">
{/* Header */}
<header className="border-b border-slate-200 bg-white/80 backdrop-blur sticky top-0 z-50 dark:border-slate-800 dark:bg-slate-950/80">
<div className="mx-auto flex max-w-5xl items-center justify-between px-4 py-4 sm:px-6 lg:px-8">
<Link href="/" className="flex items-center gap-3">
<div className="min-h-screen bg-stone-50 text-slate-950 dark:bg-slate-950 dark:text-slate-50 flex flex-col">
{/* Sticky Header */}
<header className="sticky top-0 z-50 border-b border-slate-200 bg-white/90 backdrop-blur-md dark:border-slate-800 dark:bg-slate-950/90">
<div className="mx-auto flex max-w-5xl items-center justify-between px-4 py-3 sm:px-6 lg:px-8">
<Link href="/" className="flex items-center gap-2.5 group">
<img src="/logo.png" alt="DumpIt" className="h-8 w-8 object-contain" />
<span className="text-lg font-bold text-slate-950 dark:text-white">DumpIt</span>
<span className="text-base font-bold text-slate-900 dark:text-white">DumpIt</span>
</Link>
<Link
href="/"
className="inline-flex items-center gap-2 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-sm font-semibold text-slate-850 shadow-sm hover:bg-slate-50 dark:border-slate-800 dark:bg-slate-900 dark:text-slate-100 dark:hover:bg-slate-800 transition"
className="inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-3 py-1.5 text-sm font-medium text-slate-700 shadow-sm transition hover:bg-slate-50 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-200 dark:hover:bg-slate-800"
>
<ArrowLeft className="h-4 w-4" />
<ArrowLeft className="h-3.5 w-3.5" />
Back to Home
</Link>
</div>
</header>

{/* Hero Section */}
<section className="relative overflow-hidden border-b border-slate-200 bg-white py-12 dark:border-slate-800 dark:bg-slate-900/40">
<div className="absolute inset-0 bg-[linear-gradient(to_right,rgba(15,23,42,0.03)_1px,transparent_1px),linear-gradient(to_bottom,rgba(15,23,42,0.03)_1px,transparent_1px)] bg-[size:32px_32px] opacity-60 dark:bg-[linear-gradient(to_right,rgba(148,163,184,0.04)_1px,transparent_1px),linear-gradient(to_bottom,rgba(148,163,184,0.04)_1px,transparent_1px)]" />
<div className="relative mx-auto max-w-3xl px-4 text-center sm:px-6 lg:px-8">
<div className="mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-blue-50 text-blue-600 dark:bg-blue-950/50 dark:text-blue-400">
{/* Hero */}
<section className="border-b border-slate-200 bg-gradient-to-b from-white to-stone-50 py-10 dark:border-slate-800 dark:from-slate-900 dark:to-slate-950">
<div className="mx-auto max-w-3xl px-4 text-center sm:px-6">
<div className="mx-auto mb-4 flex h-12 w-12 items-center justify-center rounded-2xl bg-blue-100 text-blue-600 dark:bg-blue-950 dark:text-blue-400">
<Shield className="h-6 w-6" />
</div>
<h1 className="text-3xl font-extrabold tracking-tight text-slate-900 dark:text-white sm:text-4xl">
Privacy Policy
</h1>
<p className="mt-3 text-sm text-slate-500 dark:text-slate-400">
Last updated: July 14, 2026
<p className="mt-2 text-sm text-slate-500 dark:text-slate-400">Last updated: July 14, 2026</p>
<p className="mt-4 text-base leading-relaxed text-slate-600 dark:text-slate-400 max-w-xl mx-auto">
At DumpIt, your privacy is a core priority. This policy describes how we collect, use, and protect your personal information when you use our services.
</p>
</div>
</section>

{/* Main Content */}
<main className="mx-auto max-w-3xl px-4 py-12 sm:px-6 lg:px-8 flex-1">
<div className="prose prose-slate dark:prose-invert max-w-none space-y-8 text-sm leading-relaxed text-slate-600 dark:text-slate-350">

<p>
At DumpIt, your privacy is a core priority. This Privacy Policy describes how we collect, use, and share your personal information when you use our web application, extension, and related services (collectively, the <strong>&quot;Service&quot;</strong>). By using DumpIt, you agree to the collection and use of information in accordance with this policy.
</p>

<hr className="border-slate-200 dark:border-slate-800" />

{/* Section 1 */}
<div className="space-y-3">
<h2 className="flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white">
<Eye className="h-5 w-5 text-blue-500" />
1. Information We Collect
</h2>
<p>
We collect information to provide, personalize, and improve our AI-powered knowledge vault services. This includes:
</p>
<ul className="list-disc pl-5 space-y-2">
<li>
<strong>Account Information:</strong> When you sign up using Google Authentication or email, we receive your email address, name, and profile picture.
</li>
<li>
<strong>User Content (Dumps):</strong> We collect the links, URLs, titles, notes, and tags that you explicitly save (&quot;dump&quot;) to your vault.
</li>
<li>
<strong>AI Search Queries:</strong> We store the queries and questions you enter when searching or interacting with your vault via the &quot;Ask DumpIt&quot; interface to retrieve relevant context and generate answers.
</li>
<li>
<strong>Technical Data:</strong> We may collect browser details, IP addresses, cookies, and extension logs required for the Service&apos;s security and runtime functionality.
</li>
</ul>
</div>

{/* Section 2 */}
<div className="space-y-3">
<h2 className="flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white">
<Database className="h-5 w-5 text-blue-500" />
2. How We Use Your Information
</h2>
<p>
Your information is used to power the core functionality of DumpIt:
</p>
<ul className="list-disc pl-5 space-y-2">
<li>
<strong>Retrieval & Search:</strong> Indexing your saved links, text content, and documents so you can query and retrieve them via semantic search.
</li>
<li>
<strong>AI Generation:</strong> Submitting relevant snippets of your saved sources to third-party AI models to generate cited answers to your questions.
</li>
<li>
<strong>Public Sharing:</strong> Hosting your public sharing pages (e.g., <code>/u/[username]</code>) when you explicitly configure links or profile cards to be publicly accessible.
{/* Content */}
<main className="flex-1 mx-auto w-full max-w-3xl px-4 py-12 sm:px-6 lg:px-8">
{/* Quick nav */}
<nav className="mb-10 rounded-xl border border-slate-200 bg-white p-4 dark:border-slate-800 dark:bg-slate-900">
<p className="mb-2.5 text-xs font-semibold uppercase tracking-wider text-slate-400 dark:text-slate-500">On this page</p>
<ol className="space-y-1.5">
{sections.map((s) => (
<li key={s.title}>
<a
href={`#${s.title.replace(/[^a-z0-9]+/gi, '-').toLowerCase()}`}
className="text-sm text-blue-600 hover:underline dark:text-blue-400"
>
{s.title}
</a>
</li>
<li>
<strong>Security:</strong> Preventing abuse, unauthorized access, or violating the Terms of Service.
</li>
</ul>
</div>

{/* Section 3 */}
<div className="space-y-3">
<h2 className="flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white">
<Lock className="h-5 w-5 text-blue-500" />
3. Data Sharing & Third-Party Services
</h2>
<p>
We do not sell your personal data. We share details with trusted infrastructure providers required to operate the Service:
</p>
<ul className="list-disc pl-5 space-y-2">
<li>
<strong>Firebase (Google Cloud):</strong> We use Firebase Authentication and Firestore/Realtime databases to store user profiles and resource objects.
</li>
<li>
<strong>AI Model Providers (OpenAI / Gemini / Anthropic):</strong> When you ask questions, relevant snippets of your saved content are passed as context to AI models. These models do not use your private documents to train public models.
</li>
<li>
<strong>Hosting:</strong> Vercel or similar cloud hosting providers hosting our web servers.
</li>
</ul>
</div>

{/* Section 4 */}
<div className="space-y-3">
<h2 className="flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white">
<ShieldAlert className="h-5 w-5 text-blue-500" />
4. Data Control & GDPR / CCPA Rights
</h2>
<p>
Depending on your location, you may have specific data rights, which DumpIt respects globally:
</p>
<ul className="list-disc pl-5 space-y-2">
<li>
<strong>Access & Export:</strong> You can view all your saved resources and notes directly within your DumpIt Dashboard.
</li>
<li>
<strong>Deletion:</strong> You can delete individual resources, notes, or tags at any time. To permanently delete your entire account and all associated data, you can contact us at support@dumpit.com.
</li>
<li>
<strong>Opt-Out of Sharing:</strong> Your links are private by default. They are only shared publicly if you explicitly enable sharing or assign them to a public profile.
</li>
</ul>
</div>

{/* Section 5 */}
<div className="space-y-3">
<h2 className="flex items-center gap-2 text-lg font-bold text-slate-900 dark:text-white">
<FileText className="h-5 w-5 text-blue-500" />
5. Contact Us
</h2>
<p>
If you have any questions, concerns, or requests regarding this Privacy Policy or your personal information, please feel free to reach out to us at:
</p>
<p className="font-semibold text-slate-950 dark:text-white">
Email: support@dumpit.com
</p>
</div>
))}
</ol>
</nav>

<div className="space-y-10">
{sections.map((section) => {
const Icon = section.icon
const id = section.title.replace(/[^a-z0-9]+/gi, '-').toLowerCase()
return (
<section
key={id}
id={id}
className="scroll-mt-20 rounded-xl border border-slate-200 bg-white p-6 shadow-sm dark:border-slate-800 dark:bg-slate-900 sm:p-8"
>
<h2 className="mb-4 flex items-center gap-2.5 text-lg font-bold text-slate-900 dark:text-white sm:text-xl">
<span className="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-blue-50 text-blue-600 dark:bg-blue-950/60 dark:text-blue-400">
<Icon className="h-4 w-4" />
</span>
<span dangerouslySetInnerHTML={{ __html: section.title }} />
</h2>
<div className="space-y-3 text-[15px] leading-7 text-slate-600 dark:text-slate-400 [&_a]:text-blue-600 [&_a:hover]:underline dark:[&_a]:text-blue-400 [&_code]:rounded [&_code]:bg-slate-100 [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:text-[13px] [&_code]:font-mono [&_code]:text-slate-700 dark:[&_code]:bg-slate-800 dark:[&_code]:text-slate-300 [&_strong]:font-semibold [&_strong]:text-slate-800 dark:[&_strong]:text-slate-200 [&_ul]:mt-2 [&_ul]:space-y-2.5 [&_ul]:pl-5 [&_ul]:list-disc [&_p+p]:mt-2">
{section.content}
</div>
</section>
)
})}
</div>
</main>

{/* Footer */}
<Footer />
</div>
)
Expand Down
Loading
Loading