diff --git a/app/(main)/layout.tsx b/app/(main)/layout.tsx index fece978..435f0bb 100644 --- a/app/(main)/layout.tsx +++ b/app/(main)/layout.tsx @@ -19,7 +19,7 @@ export default function MainLayout({ const pathname = usePathname() // Check if current page should use full-width layout (no sidebars) - const isFullWidth = pathname === '/submit' || pathname === '/signin' || pathname === '/signup' + const isFullWidth = pathname === '/submit' || pathname === '/signin' || pathname === '/signup' || pathname === '/privacy' // Check if current page is a threads page const isThreadsPage = pathname.startsWith('/threads/') diff --git a/app/(main)/privacy/page.tsx b/app/(main)/privacy/page.tsx new file mode 100644 index 0000000..19d179a --- /dev/null +++ b/app/(main)/privacy/page.tsx @@ -0,0 +1,200 @@ +import type { Metadata } from "next" +import { PolicySection, PolicyList } from "./policy-section" + +const LAST_UPDATED = "August 20, 2026" + +export const metadata: Metadata = { + title: "Privacy Policy - Refetch", + description: "How Refetch collects, uses, and stores your data.", + openGraph: { + title: "Privacy Policy - Refetch", + description: "How Refetch collects, uses, and stores your data.", + type: "website", + url: "https://refetch.io/privacy", + images: [ + { + url: "https://refetch.io/og.png", + width: 1200, + height: 630, + alt: "Privacy Policy - Refetch", + }, + ], + siteName: "Refetch", + }, + twitter: { + card: "summary_large_image", + title: "Privacy Policy - Refetch", + description: "How Refetch collects, uses, and stores your data.", + images: ["https://refetch.io/og.png"], + }, +} + +export default function PrivacyPage() { + return ( +
+
+

Privacy Policy

+

Last updated: {LAST_UPDATED}

+ +

+ Refetch is an open-source, community-run tech news reader. We keep the amount of data we + hold about you as small as the product allows, and this page explains exactly what that + is. It covers the website at{" "} + + refetch.io + {" "} + and the Refetch mobile and desktop apps. +

+ + +

+ Account details. If you create + an account we store the name, email address, and password you provide. Passwords are + hashed by our authentication provider and are never visible to us. +

+

+ What you post. Submissions, + comments, and votes are stored and linked to your account. Submissions and comments are + public by design. Votes are not shown next to your name, but they are stored with your + account id so that each person votes once. +

+

+ Push notification tokens. If + you enable notifications in the mobile app, the device sends us a push token so our + servers can deliver a notification to that device. Turning notifications off removes it. +

+

+ Aggregate usage statistics. We + use Plausible Analytics, which is cookie-free and does not collect personal data or + build profiles across sites. It tells us how many people read a page, not who they are. +

+
+ + + + + + + +

+ We do not use your content to train machine learning models. Refetch uses AI to + summarise and rank linked news articles; that process reads the third-party + article, not your account or your comments. +

+
+ + +

+ Accounts and content are stored with{" "} + + Appwrite Cloud + {" "} + on infrastructure hosted in the European Union, and are handled under{" "} + + Appwrite's privacy policy + + . Aggregate statistics are held by{" "} + + Plausible + + , also in the EU. We keep your account data for as long as your account exists. +

+
+ + +

+ We use a single session cookie to keep you signed in. There are no advertising, + marketing, or third-party tracking cookies. Signing out clears the session. +

+
+ + + +

+ Depending on where you live you may also have the right to access, correct, export, or + object to our use of your data. Email us and we will help. +

+
+ + +

+ Refetch is not directed at children under 13, and we do not knowingly collect their + personal data. If you believe a child has given us data, contact us and we will remove + it. +

+
+ + +

+ If we change how we handle your data we will update this page and its date. Because + Refetch is open source, every change is also visible in the{" "} + + public repository + + . +

+
+ + +

+ Questions, deletion requests, or anything else about your data: open an issue on{" "} + + GitHub + {" "} + or email{" "} + + privacy@refetch.io + + . +

+
+
+
+ ) +} diff --git a/app/(main)/privacy/policy-section.tsx b/app/(main)/privacy/policy-section.tsx new file mode 100644 index 0000000..d694d4e --- /dev/null +++ b/app/(main)/privacy/policy-section.tsx @@ -0,0 +1,24 @@ +export function PolicySection({ + title, + children, +}: { + title: string + children: React.ReactNode +}) { + return ( +
+

{title}

+
{children}
+
+ ) +} + +export function PolicyList({ items }: { items: string[] }) { + return ( + + ) +} diff --git a/components/footer.tsx b/components/footer.tsx index bd23a0a..14d1348 100644 --- a/components/footer.tsx +++ b/components/footer.tsx @@ -36,7 +36,7 @@ export function Footer({ variant = 'sidebar', bottomPadding }: FooterProps) { Terms - + Privacy