From 658feef895692934b755a2fa555c7ad23ec28c60 Mon Sep 17 00:00:00 2001 From: arsam Date: Fri, 18 Sep 2026 23:15:05 +0330 Subject: [PATCH] Import source: cshare-app/src/pages/PrivacyPage Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality. --- cshare-app/src/pages/PrivacyPage.jsx | 142 +++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 cshare-app/src/pages/PrivacyPage.jsx diff --git a/cshare-app/src/pages/PrivacyPage.jsx b/cshare-app/src/pages/PrivacyPage.jsx new file mode 100644 index 0000000..db2ea02 --- /dev/null +++ b/cshare-app/src/pages/PrivacyPage.jsx @@ -0,0 +1,142 @@ +const SECTIONS = [ + { + id: 'overview', + title: 'Overview', + content: `CShare ("we", "us", "our") operates the file-sharing service available at cshare.app. This Privacy Policy explains what data we collect, why we collect it, how we use it, and what rights you have over it. + +We believe in plain language. If anything in this document is unclear, email us at privacy@cshare.app.`, + }, + { + id: 'collect', + title: 'What We Collect', + content: `When you upload a file: +• The file itself (binary content, filename, file size, MIME type) +• The timestamp of upload and the expiry time you set +• Your IP address (used for abuse prevention only, not tied to your profile) + +When someone accesses a share link: +• A view event is recorded (timestamp, no personal identifiers) +• A download event is recorded when a transfer completes (timestamp, file ID) +• We do not fingerprint or identify recipients + +We do not use analytics SDKs, tracking pixels, or third-party behavioral tracking of any kind.`, + }, + { + id: 'use', + title: 'How We Use Your Data', + content: `We use the data we collect for the following purposes only: + +• Serving your uploaded files to people with the share link +• Displaying view and download counts on your dashboard +• Automatically deleting files and links when they expire +• Preventing abuse and enforcing rate limits (IP-based, not stored long-term) +• Diagnosing errors in our infrastructure + +We do not sell data. We do not share data with advertisers. We do not build profiles.`, + }, + { + id: 'storage', + title: 'Data Storage and Retention', + content: `Files are stored on encrypted infrastructure (AES-256 at rest, TLS 1.3 in transit). Storage is located in the EU. + +Retention periods: +• Uploaded files: deleted immediately upon link expiry or manual deletion +• View/download logs: retained for 90 days, then permanently deleted +• IP addresses used for abuse prevention: retained for 30 days +• Account data (Pro/Team): retained for the life of the account plus 30 days after deletion + +When a file is deleted — whether by expiry, user action, or account deletion — it is removed from primary storage within minutes and from all backups within 7 days.`, + }, + { + id: 'sharing', + title: 'Data Sharing', + content: `We do not sell, rent, or trade your data. + +We share data with: +• Cloud infrastructure providers (storage, compute) under strict data processing agreements +• Payment processors (for Pro/Team plans) — they receive only what's necessary to process a transaction + +We may disclose data if required by law, but we will notify you before doing so unless legally prohibited.`, + }, + { + id: 'cookies', + title: 'Cookies', + content: `We use a single session cookie to maintain your logged-in state on Pro/Team plans. We do not use tracking cookies, advertising cookies, or third-party cookies. + +If you use the Free tier without creating an account, no cookies are set.`, + }, + { + id: 'rights', + title: 'Your Rights', + content: `You have the right to: +• Access the data we hold about you — email privacy@cshare.app +• Correct inaccurate data +• Delete your account and all associated data +• Export your data in a machine-readable format +• Object to processing +• Lodge a complaint with a supervisory authority (for EU residents, your national DPA) + +To exercise any of these rights, email privacy@cshare.app. We will respond within 30 days.`, + }, + { + id: 'changes', + title: 'Changes to This Policy', + content: `We will notify you of material changes to this policy via email (for registered users) and by updating the "Last updated" date below. Continued use of the service after changes constitutes acceptance.`, + }, + { + id: 'contact', + title: 'Contact', + content: `For privacy-related questions: privacy@cshare.app +For general questions: hello@cshare.app +Mailing address: CShare, [Address to be added upon incorporation]`, + }, +]; + +export default function PrivacyPage() { + return ( +
+
+
+ // + Legal +
+

Privacy Policy

+

Last updated: May 28, 2026

+
+ + {/* TOC */} +
+
Contents
+
+ {SECTIONS.map((s, i) => ( + document.getElementById(s.id)?.scrollIntoView({ behavior: 'smooth' })} + style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '6px 8px', borderRadius: 'var(--radius-sm)', color: 'var(--text-secondary)', fontSize: '0.875rem', cursor: 'pointer', textDecoration: 'none', transition: 'all var(--transition-fast)' }} + onMouseEnter={(e) => { e.currentTarget.style.color = 'var(--accent)'; e.currentTarget.style.background = 'var(--accent-muted)'; }} + onMouseLeave={(e) => { e.currentTarget.style.color = 'var(--text-secondary)'; e.currentTarget.style.background = 'transparent'; }} + > + {String(i + 1).padStart(2, '0')} + {s.title} + + ))} +
+
+ + {/* Sections */} +
+ {SECTIONS.map((s, i) => ( +
+
+ + {String(i + 1).padStart(2, '0')} + +

{s.title}

+
+
{s.content}
+
+ ))} +
+
+ ); +}