Skip to content

Commit e6b6b63

Browse files
committed
update privacy and cookie policies
1 parent 3d56a82 commit e6b6b63

File tree

3 files changed

+146
-38
lines changed

3 files changed

+146
-38
lines changed

src/app/legal/cookie-policy/page.tsx

Lines changed: 62 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,57 @@
1-
'use client';
1+
import type { Metadata } from 'next';
2+
import BackButton from '@/components/back-button';
23

3-
import { useRouter } from 'next/navigation';
4-
5-
import { Button } from '@/components/ui/button';
6-
import { ArrowLeft } from 'lucide-react';
4+
export const metadata: Metadata = {
5+
title: 'Cookie Policy - RepoTree',
6+
description:
7+
'RepoTree Cookie Policy: We do not use cookies, tracking technologies, or third-party trackers. Full details here.',
8+
robots: { index: true, follow: true },
9+
alternates: {
10+
canonical: 'https://ascii-repotree.vercel.app/legal/cookie-policy',
11+
},
12+
};
713

814
const CookiePolicy = () => {
9-
const router = useRouter();
15+
const lastUpdated = '2025-07-21';
16+
17+
const structuredData = {
18+
'@context': 'https://schema.org',
19+
'@type': 'WebPage',
20+
name: 'RepoTree Cookie Policy',
21+
url: 'https://ascii-repotree.vercel.app/legal/cookie-policy',
22+
dateModified: lastUpdated,
23+
publisher: {
24+
'@type': 'Organization',
25+
name: 'RepoTree',
26+
url: 'https://ascii-repotree.vercel.app',
27+
},
28+
description:
29+
'RepoTree does not use cookies or tracking technologies. We do not place any cookies, including essential, functional, analytical, or advertising cookies.',
30+
};
1031

1132
return (
12-
<div className="min-h-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white transition-colors duration-300 py-12 px-4 sm:px-6 lg:px-8">
33+
<div className="min-h-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white py-12 px-4 sm:px-6 lg:px-8">
34+
{/* JSON-LD Structured Data */}
35+
<script
36+
type="application/ld+json"
37+
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
38+
/>
39+
1340
<div className="max-w-3xl mx-auto">
14-
<Button
15-
onClick={() => router.back()}
16-
className="mb-8 flex items-center text-white rounded-full bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600 transition-colors duration-300"
17-
>
18-
<ArrowLeft className="h-4 w-4" />
19-
Go back
20-
</Button>
41+
<BackButton />
2142

22-
<h1 className="text-3xl font-bold mb-6">Cookie Policy</h1>
43+
<h1 className="text-3xl font-bold mb-2">Cookie Policy</h1>
44+
<p className="mb-6 text-sm text-gray-500 dark:text-gray-400">
45+
Last updated: July 21, 2025
46+
</p>
2347

24-
<div className="p-6 space-y-4 transition-colors duration-300">
48+
<div className="p-6 space-y-4">
2549
<p>
26-
RepoTree does <strong>not use cookies</strong> or any similar tracking technologies on our website (https://ascii-repotree.vercel.app).
50+
RepoTree does <strong>not use cookies</strong> or any similar tracking technologies on our website (
51+
<a href="https://ascii-repotree.vercel.app" className="text-blue-500 hover:underline">
52+
https://ascii-repotree.vercel.app
53+
</a>
54+
).
2755
</p>
2856

2957
<h2 className="text-xl font-semibold">No Use of Cookies</h2>
@@ -38,11 +66,26 @@ const CookiePolicy = () => {
3866

3967
<h2 className="text-xl font-semibold">Your Privacy Matters</h2>
4068
<p>
41-
Since we do not use cookies, there&apos;s no need to manage or opt out of cookie settings. RepoTree was built with privacy by design.
69+
RepoTree was built with simplicity and privacy by design. Since we do not use cookies, there&apos;s no need to manage or opt out of cookie settings.
70+
</p>
71+
72+
<h2 className="text-xl font-semibold">Policy Changes</h2>
73+
<p>
74+
If our cookie practices change in the future, we will update this policy and notify users accordingly.
75+
</p>
76+
77+
<p>
78+
If you have any questions about our Cookie Policy, feel free to contact us at{' '}
79+
<a href="mailto:privacy@repotree.com" className="text-blue-500 hover:underline">
80+
privacy@repotree.com
81+
</a>.
4282
</p>
4383

4484
<p>
45-
If you have any questions about our Cookie Policy, feel free to contact us at <a href="mailto:privacy@repotree.com" className="text-blue-500 hover:underline">privacy@repotree.com</a>.
85+
You can also read our{' '}
86+
<a href="/legal/privacy-policy" className="text-blue-500 hover:underline">
87+
Privacy Policy
88+
</a>.
4689
</p>
4790
</div>
4891
</div>

src/app/legal/privacy-policy/page.tsx

Lines changed: 62 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,57 @@
1-
'use client';
1+
import type { Metadata } from 'next';
2+
import BackButton from '@/components/back-button';
23

3-
import { useRouter } from 'next/navigation';
4-
5-
import { Button } from '@/components/ui/button';
6-
import { ArrowLeft } from 'lucide-react';
4+
export const metadata: Metadata = {
5+
title: 'Privacy Policy - RepoTree',
6+
description:
7+
'RepoTree Privacy Policy: We do not collect personal data, use cookies, or track users. Read more about our privacy practices.',
8+
robots: { index: true, follow: true },
9+
alternates: {
10+
canonical: 'https://ascii-repotree.vercel.app/legal/privacy-policy',
11+
},
12+
};
713

814
const PrivacyPolicy = () => {
9-
const router = useRouter();
15+
const lastUpdated = '2025-07-21';
16+
17+
const structuredData = {
18+
'@context': 'https://schema.org',
19+
'@type': 'PrivacyPolicy',
20+
name: 'RepoTree Privacy Policy',
21+
url: 'https://ascii-repotree.vercel.app/legal/privacy-policy',
22+
dateModified: lastUpdated,
23+
publisher: {
24+
'@type': 'Organization',
25+
name: 'RepoTree',
26+
url: 'https://ascii-repotree.vercel.app',
27+
},
28+
description:
29+
'RepoTree does not collect, store, or share any personal data. No cookies or tracking technologies are used.',
30+
};
1031

1132
return (
12-
<div className="min-h-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white transition-colors duration-300 py-12 px-4 sm:px-6 lg:px-8">
33+
<div className="min-h-screen bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white py-12 px-4 sm:px-6 lg:px-8">
34+
{/* JSON-LD Structured Data */}
35+
<script
36+
type="application/ld+json"
37+
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
38+
/>
39+
1340
<div className="max-w-3xl mx-auto">
14-
<Button
15-
onClick={() => router.back()}
16-
className="mb-8 flex items-center text-white rounded-full bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600 transition-colors duration-300"
17-
>
18-
<ArrowLeft className="h-4 w-4" />
19-
Go back
20-
</Button>
41+
<BackButton />
2142

22-
<h1 className="text-3xl font-bold mb-6">Privacy Policy</h1>
43+
<h1 className="text-3xl font-bold mb-2">Privacy Policy</h1>
44+
<p className="mb-6 text-sm text-gray-500 dark:text-gray-400">
45+
Last updated: July 21, 2025
46+
</p>
2347

24-
<div className="p-6 space-y-4 transition-colors duration-300">
48+
<div className="p-6 space-y-4">
2549
<p>
26-
This Privacy Policy outlines RepoTree&apos;s approach to your privacy when using our website (https://ascii-repotree.vercel.app).
50+
This Privacy Policy outlines RepoTree&apos;s approach to your privacy when using our website (
51+
<a href="https://ascii-repotree.vercel.app" className="text-blue-500 hover:underline">
52+
https://ascii-repotree.vercel.app
53+
</a>
54+
).
2755
</p>
2856

2957
<h2 className="text-xl font-semibold">No Data Collection</h2>
@@ -38,11 +66,26 @@ const PrivacyPolicy = () => {
3866

3967
<h2 className="text-xl font-semibold">Security and Transparency</h2>
4068
<p>
41-
Since we do not collect any data, there is no personal information to secure. RepoTree is designed with simplicity and user privacy as a core principle.
69+
RepoTree was built with simplicity and privacy by design. Since we do not collect any data, there is no personal information to secure.
70+
</p>
71+
72+
<h2 className="text-xl font-semibold">Policy Changes</h2>
73+
<p>
74+
If our privacy practices change in the future, we will update this policy and notify users accordingly.
75+
</p>
76+
77+
<p>
78+
If you have any questions about this Privacy Policy, feel free to reach out to us at{' '}
79+
<a href="mailto:privacy@repotree.com" className="text-blue-500 hover:underline">
80+
privacy@repotree.com
81+
</a>.
4282
</p>
4383

4484
<p>
45-
If you have any questions about this Privacy Policy, feel free to reach out to us at <a href="mailto:privacy@repotree.com" className="text-blue-500 hover:underline">privacy@repotree.com</a>.
85+
You can also read our{' '}
86+
<a href="/legal/cookie-policy" className="text-blue-500 hover:underline">
87+
Cookie Policy
88+
</a>.
4689
</p>
4790
</div>
4891
</div>

src/components/back-button.tsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
'use client';
2+
3+
import { useRouter } from 'next/navigation';
4+
import { Button } from '@/components/ui/button';
5+
import { ArrowLeft } from 'lucide-react';
6+
7+
const BackButton = () => {
8+
const router = useRouter();
9+
10+
return (
11+
// Privacy Policy and Cookie Policy Arrow button
12+
<Button
13+
onClick={() => router.back()}
14+
className="mb-8 flex items-center text-white rounded-full bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600"
15+
>
16+
<ArrowLeft className="h-4 w-4 mr-2" />
17+
Go back
18+
</Button>
19+
);
20+
};
21+
22+
export default BackButton;

0 commit comments

Comments
 (0)