OhMyDitzzy commited on
Commit
3e04e3e
·
1 Parent(s): aeb67ac

terms & policy

Browse files
src/client/App.tsx CHANGED
@@ -5,6 +5,8 @@ import { Loader2 } from "lucide-react";
5
 
6
  const Home = lazy(() => import("./pages/Home"));
7
  const Docs = lazy(() => import("./pages/Docs"));
 
 
8
  const NotFound = lazy(() => import("./pages/not-found"));
9
 
10
  function PageLoader() {
@@ -25,6 +27,8 @@ export default function App() {
25
  <Routes>
26
  <Route path="/" element={<Home />} />
27
  <Route path="/docs" element={<Docs />} />
 
 
28
  <Route path="*" element={<NotFound />} />
29
  </Routes>
30
  </Suspense>
 
5
 
6
  const Home = lazy(() => import("./pages/Home"));
7
  const Docs = lazy(() => import("./pages/Docs"));
8
+ const Privacy = lazy(() => import("./pages/Privacy"));
9
+ const Terms = lazy(() => import("./pages/Terms"));
10
  const NotFound = lazy(() => import("./pages/not-found"));
11
 
12
  function PageLoader() {
 
27
  <Routes>
28
  <Route path="/" element={<Home />} />
29
  <Route path="/docs" element={<Docs />} />
30
+ <Route path="/privacy" element={<Privacy />} />
31
+ <Route path="/terms" element={<Terms />} />
32
  <Route path="*" element={<NotFound />} />
33
  </Routes>
34
  </Suspense>
src/client/pages/Privacy.tsx ADDED
@@ -0,0 +1,203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Footer } from "@/components/Footer";
2
+ import { Button } from "@/components/ui/button";
3
+ import { motion } from "framer-motion";
4
+ import { Shield, Mail, ArrowLeft } from "lucide-react";
5
+ import { Link } from "react-router-dom";
6
+
7
+ export default function Privacy() {
8
+ return (
9
+ <div className="min-h-screen bg-background flex flex-col font-sans selection:bg-primary/30">
10
+ <main className="flex-grow pt-8">
11
+ {/* Hero Section */}
12
+ <section className="relative overflow-hidden py-16 sm:py-24 border-b border-white/5">
13
+ <div className="absolute top-0 left-1/2 -translate-x-1/2 w-[800px] h-[400px] bg-primary/10 blur-[120px] rounded-full opacity-50 pointer-events-none" />
14
+
15
+ <div className="relative max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
16
+ <Link to="/">
17
+ <Button variant="ghost" size="sm" className="mb-8 hover:bg-white/5">
18
+ <ArrowLeft className="w-4 h-4 mr-2" />
19
+ Back to Home
20
+ </Button>
21
+ </Link>
22
+
23
+ <motion.div
24
+ initial={{ opacity: 0, y: 20 }}
25
+ animate={{ opacity: 1, y: 0 }}
26
+ transition={{ duration: 0.5 }}
27
+ className="flex items-center gap-3 mb-6"
28
+ >
29
+ <div className="w-12 h-12 rounded-xl bg-primary/20 flex items-center justify-center">
30
+ <Shield className="w-6 h-6 text-primary" />
31
+ </div>
32
+ <h1 className="text-4xl sm:text-5xl font-display font-bold tracking-tight text-white">
33
+ Privacy Policy
34
+ </h1>
35
+ </motion.div>
36
+
37
+ <motion.p
38
+ initial={{ opacity: 0, y: 20 }}
39
+ animate={{ opacity: 1, y: 0 }}
40
+ transition={{ duration: 0.5, delay: 0.1 }}
41
+ className="text-muted-foreground mb-4"
42
+ >
43
+ <strong>Effective Date:</strong> January 15, 2026<br />
44
+ <strong>Last Updated:</strong> January 15, 2026
45
+ </motion.p>
46
+ </div>
47
+ </section>
48
+
49
+ {/* Content Section */}
50
+ <section className="py-16">
51
+ <div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
52
+ <motion.div
53
+ initial={{ opacity: 0, y: 20 }}
54
+ animate={{ opacity: 1, y: 0 }}
55
+ transition={{ duration: 0.5, delay: 0.2 }}
56
+ className="space-y-8"
57
+ >
58
+ {/* Introduction */}
59
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
60
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
61
+ <span className="text-primary">1.</span> Introduction
62
+ </h2>
63
+ <p className="text-muted-foreground leading-relaxed mb-4">
64
+ Welcome to DitzzyAPI ("we," "our," or "us"). This Privacy Policy explains how we collect, use, and protect information when you use our API services.
65
+ </p>
66
+ <div className="p-4 rounded-lg bg-primary/10 border border-primary/20">
67
+ <p className="text-sm text-white mb-2"><strong>Service Provider:</strong></p>
68
+ <p className="text-sm text-muted-foreground">DitzzyAPI | Aditya Putra Priana</p>
69
+ <p className="text-sm text-muted-foreground">Email: ditzdevs@gmail.com</p>
70
+ <p className="text-sm text-muted-foreground">Jurisdiction: Indonesia</p>
71
+ </div>
72
+ </div>
73
+
74
+ {/* Information We Collect */}
75
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
76
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
77
+ <span className="text-primary">2.</span> Information We Collect
78
+ </h2>
79
+
80
+ <h3 className="text-xl font-semibold text-white mt-6 mb-3">2.1 Automatically Collected Information</h3>
81
+ <p className="text-muted-foreground mb-4">When you use our API services, we automatically collect:</p>
82
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
83
+ <li><strong className="text-white">IP Address:</strong> Collected for rate limiting purposes and security monitoring</li>
84
+ <li><strong className="text-white">API Request Logs:</strong> Including endpoint accessed, timestamp, and response status codes</li>
85
+ <li><strong className="text-white">Usage Statistics:</strong> Aggregated data about API endpoint usage and request patterns</li>
86
+ </ul>
87
+
88
+ <h3 className="text-xl font-semibold text-white mt-6 mb-3">2.2 Information We DO NOT Collect</h3>
89
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
90
+ <li>Personal identification information (name, email, phone number)</li>
91
+ <li>User registration or account information</li>
92
+ <li>API keys or authentication tokens</li>
93
+ <li>Payment information</li>
94
+ <li>Cookies or tracking technologies for marketing</li>
95
+ <li>Content of URLs you submit to our services</li>
96
+ </ul>
97
+ </div>
98
+
99
+ {/* How We Use Your Information */}
100
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
101
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
102
+ <span className="text-primary">3.</span> How We Use Your Information
103
+ </h2>
104
+ <p className="text-muted-foreground mb-4">We use the collected information solely for:</p>
105
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
106
+ <li><strong className="text-white">Rate Limiting:</strong> IP addresses enforce our 25 requests per user limit</li>
107
+ <li><strong className="text-white">Service Improvement:</strong> Analyzing usage patterns to improve performance</li>
108
+ <li><strong className="text-white">Security:</strong> Detecting and preventing abuse or malicious activities</li>
109
+ <li><strong className="text-white">Statistics:</strong> Generating anonymous, aggregated statistics</li>
110
+ </ul>
111
+ </div>
112
+
113
+ {/* Data Retention */}
114
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
115
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
116
+ <span className="text-primary">4.</span> Data Retention
117
+ </h2>
118
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
119
+ <li><strong className="text-white">IP Addresses:</strong> Retained temporarily for rate limiting (cleared periodically)</li>
120
+ <li><strong className="text-white">Request Logs:</strong> Stored for operational purposes and deleted regularly</li>
121
+ <li><strong className="text-white">Aggregated Statistics:</strong> Retained indefinitely in anonymized form</li>
122
+ </ul>
123
+ </div>
124
+
125
+ {/* Data Sharing */}
126
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
127
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
128
+ <span className="text-primary">5.</span> Data Sharing and Disclosure
129
+ </h2>
130
+ <p className="text-muted-foreground mb-4">
131
+ We do NOT sell, trade, or rent your information to third parties. We may disclose information only when:
132
+ </p>
133
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
134
+ <li>Required by Indonesian law or legal process</li>
135
+ <li>Necessary to protect our rights, property, or safety</li>
136
+ <li>To prevent fraud or abuse of our services</li>
137
+ </ul>
138
+ </div>
139
+
140
+ {/* Third-Party Services */}
141
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
142
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
143
+ <span className="text-primary">6.</span> Third-Party Services
144
+ </h2>
145
+ <p className="text-muted-foreground mb-4">
146
+ Our API may retrieve content from third-party services (e.g., TikTok). When you use our downloader services:
147
+ </p>
148
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
149
+ <li>You are subject to the terms and privacy policies of those platforms</li>
150
+ <li>We do not control third-party privacy practices</li>
151
+ <li>Content is fetched in real-time and not stored on our servers</li>
152
+ </ul>
153
+ </div>
154
+
155
+ {/* Your Rights */}
156
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
157
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
158
+ <span className="text-primary">9.</span> Your Rights
159
+ </h2>
160
+ <p className="text-muted-foreground mb-4">
161
+ Under applicable Indonesian data protection laws, you have the right to:
162
+ </p>
163
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
164
+ <li>Request information about data we hold about you</li>
165
+ <li>Request deletion of your data (IP address from rate limit records)</li>
166
+ <li>Object to processing of your data</li>
167
+ <li>Contact us with privacy concerns</li>
168
+ </ul>
169
+ <p className="text-muted-foreground mt-4">
170
+ To exercise these rights, email us at <a href="mailto:ditzdevs@gmail.com" className="text-primary hover:underline">ditzdevs@gmail.com</a>.
171
+ </p>
172
+ </div>
173
+
174
+ {/* Contact */}
175
+ <div className="p-6 rounded-xl bg-gradient-to-br from-primary/20 to-purple-500/10 border border-primary/20">
176
+ <div className="flex items-start gap-4">
177
+ <div className="w-12 h-12 rounded-xl bg-primary/20 flex items-center justify-center flex-shrink-0">
178
+ <Mail className="w-6 h-6 text-primary" />
179
+ </div>
180
+ <div>
181
+ <h2 className="text-xl font-bold text-white mb-2">Contact Us</h2>
182
+ <p className="text-muted-foreground mb-3">
183
+ For privacy-related questions or concerns:
184
+ </p>
185
+ <p className="text-sm text-white"><strong>Email:</strong> ditzdevs@gmail.com</p>
186
+ <p className="text-sm text-muted-foreground"><strong>Service Name:</strong> DitzzyAPI</p>
187
+ <p className="text-sm text-muted-foreground"><strong>Owner:</strong> Aditya Putra Priana</p>
188
+ </div>
189
+ </div>
190
+ </div>
191
+
192
+ <p className="text-sm text-muted-foreground text-center pt-8">
193
+ By using DitzzyAPI, you acknowledge that you have read and understood this Privacy Policy.
194
+ </p>
195
+ </motion.div>
196
+ </div>
197
+ </section>
198
+ </main>
199
+
200
+ <Footer />
201
+ </div>
202
+ );
203
+ }
src/client/pages/Terms.tsx ADDED
@@ -0,0 +1,232 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { Footer } from "@/components/Footer";
2
+ import { Button } from "@/components/ui/button";
3
+ import { motion } from "framer-motion";
4
+ import { FileText, Mail, ArrowLeft } from "lucide-react";
5
+ import { Link } from "react-router-dom";
6
+
7
+ export default function Terms() {
8
+ return (
9
+ <div className="min-h-screen bg-background flex flex-col font-sans selection:bg-primary/30">
10
+ <main className="flex-grow pt-8">
11
+ {/* Hero Section */}
12
+ <section className="relative overflow-hidden py-16 sm:py-24 border-b border-white/5">
13
+ <div className="absolute top-0 left-1/2 -translate-x-1/2 w-[800px] h-[400px] bg-primary/10 blur-[120px] rounded-full opacity-50 pointer-events-none" />
14
+
15
+ <div className="relative max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
16
+ <Link to="/">
17
+ <Button variant="ghost" size="sm" className="mb-8 hover:bg-white/5">
18
+ <ArrowLeft className="w-4 h-4 mr-2" />
19
+ Back to Home
20
+ </Button>
21
+ </Link>
22
+
23
+ <motion.div
24
+ initial={{ opacity: 0, y: 20 }}
25
+ animate={{ opacity: 1, y: 0 }}
26
+ transition={{ duration: 0.5 }}
27
+ className="flex items-center gap-3 mb-6"
28
+ >
29
+ <div className="w-12 h-12 rounded-xl bg-primary/20 flex items-center justify-center">
30
+ <FileText className="w-6 h-6 text-primary" />
31
+ </div>
32
+ <h1 className="text-4xl sm:text-5xl font-display font-bold tracking-tight text-white">
33
+ Terms of Service
34
+ </h1>
35
+ </motion.div>
36
+
37
+ <motion.p
38
+ initial={{ opacity: 0, y: 20 }}
39
+ animate={{ opacity: 1, y: 0 }}
40
+ transition={{ duration: 0.5, delay: 0.1 }}
41
+ className="text-muted-foreground mb-4"
42
+ >
43
+ <strong>Effective Date:</strong> January 15, 2026<br />
44
+ <strong>Last Updated:</strong> January 15, 2026
45
+ </motion.p>
46
+ </div>
47
+ </section>
48
+
49
+ {/* Content Section */}
50
+ <section className="py-16">
51
+ <div className="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
52
+ <motion.div
53
+ initial={{ opacity: 0, y: 20 }}
54
+ animate={{ opacity: 1, y: 0 }}
55
+ transition={{ duration: 0.5, delay: 0.2 }}
56
+ className="space-y-8"
57
+ >
58
+ {/* Agreement to Terms */}
59
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
60
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
61
+ <span className="text-primary">1.</span> Agreement to Terms
62
+ </h2>
63
+ <p className="text-muted-foreground leading-relaxed mb-4">
64
+ By accessing or using DitzzyAPI ("the Service"), you agree to be bound by these Terms of Service ("Terms"). If you do not agree to these Terms, do not use the Service.
65
+ </p>
66
+ <div className="p-4 rounded-lg bg-primary/10 border border-primary/20">
67
+ <p className="text-sm text-white mb-2"><strong>Service Provider:</strong></p>
68
+ <p className="text-sm text-muted-foreground">DitzzyAPI | Aditya Putra Priana</p>
69
+ <p className="text-sm text-muted-foreground">Email: ditzdevs@gmail.com</p>
70
+ <p className="text-sm text-muted-foreground">Jurisdiction: Indonesia</p>
71
+ </div>
72
+ </div>
73
+
74
+ {/* Description of Service */}
75
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
76
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
77
+ <span className="text-primary">2.</span> Description of Service
78
+ </h2>
79
+ <p className="text-muted-foreground mb-4">
80
+ DitzzyAPI is a free, open API service providing various endpoints including:
81
+ </p>
82
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
83
+ <li><strong className="text-white">Downloader Services:</strong> TikTok and other social media content</li>
84
+ <li><strong className="text-white">AI Tools:</strong> Various AI-powered utilities</li>
85
+ <li><strong className="text-white">General Tools:</strong> Miscellaneous utility endpoints</li>
86
+ <li><strong className="text-white">Other Services:</strong> As documented in our API documentation</li>
87
+ </ul>
88
+ <p className="text-muted-foreground mt-4">
89
+ The Service is provided "as-is" without authentication or registration requirements.
90
+ </p>
91
+ </div>
92
+
93
+ {/* Acceptable Use Policy */}
94
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
95
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
96
+ <span className="text-primary">3.</span> Acceptable Use Policy
97
+ </h2>
98
+
99
+ <h3 className="text-xl font-semibold text-white mt-6 mb-3">3.1 Permitted Use</h3>
100
+ <p className="text-muted-foreground mb-3">You may use the Service for:</p>
101
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc mb-6">
102
+ <li>Personal, educational, or commercial projects</li>
103
+ <li>Integration into your applications or websites</li>
104
+ <li>Testing and development purposes</li>
105
+ <li>Any lawful purpose compliant with applicable laws</li>
106
+ </ul>
107
+
108
+ <h3 className="text-xl font-semibold text-white mt-6 mb-3">3.2 Prohibited Use</h3>
109
+ <div className="p-4 rounded-lg bg-red-500/10 border border-red-500/20 mb-4">
110
+ <p className="text-white font-semibold mb-2">⚠️ You may NOT use the Service to:</p>
111
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
112
+ <li>Violate any laws or regulations</li>
113
+ <li>Download copyrighted content without authorization</li>
114
+ <li>Infringe on intellectual property rights</li>
115
+ <li>Distribute malware or harmful code</li>
116
+ <li>Conduct illegal activities or fraud</li>
117
+ <li>Harass, abuse, or harm others</li>
118
+ <li>Bypass rate limiting measures</li>
119
+ <li>Access content involving minors inappropriately</li>
120
+ <li>Resell or redistribute the API as a competing service</li>
121
+ </ul>
122
+ </div>
123
+ </div>
124
+
125
+ {/* Rate Limiting */}
126
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
127
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
128
+ <span className="text-primary">4.</span> Rate Limiting and Usage Restrictions
129
+ </h2>
130
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
131
+ <li>The Service is limited to <strong className="text-white">25 requests per user</strong> (based on IP address)</li>
132
+ <li>Rate limits ensure fair usage for all users</li>
133
+ <li>Excessive use may result in temporary or permanent blocking</li>
134
+ <li>We reserve the right to modify rate limits at any time</li>
135
+ </ul>
136
+ </div>
137
+
138
+ {/* Disclaimers */}
139
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
140
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
141
+ <span className="text-primary">7.</span> Disclaimers and Limitations
142
+ </h2>
143
+
144
+ <h3 className="text-xl font-semibold text-white mt-6 mb-3">7.1 Service Availability</h3>
145
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc mb-6">
146
+ <li>The Service is provided "AS IS" and "AS AVAILABLE"</li>
147
+ <li>We do not guarantee uninterrupted or error-free service</li>
148
+ <li>We may modify, suspend, or discontinue the Service at any time</li>
149
+ <li>No uptime guarantees or SLAs are provided</li>
150
+ </ul>
151
+
152
+ <h3 className="text-xl font-semibold text-white mt-6 mb-3">7.2 No Warranties</h3>
153
+ <div className="p-4 rounded-lg bg-yellow-500/10 border border-yellow-500/20">
154
+ <p className="text-white font-semibold mb-2">WE MAKE NO WARRANTIES, INCLUDING:</p>
155
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
156
+ <li>Warranties of merchantability or fitness for a particular purpose</li>
157
+ <li>That the Service will meet your requirements</li>
158
+ <li>That results obtained will be accurate or reliable</li>
159
+ <li>That errors or bugs will be corrected</li>
160
+ </ul>
161
+ </div>
162
+ </div>
163
+
164
+ {/* Limitation of Liability */}
165
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
166
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
167
+ <span className="text-primary">8.</span> Limitation of Liability
168
+ </h2>
169
+ <div className="p-4 rounded-lg bg-orange-500/10 border border-orange-500/20">
170
+ <p className="text-white font-semibold mb-3">TO THE MAXIMUM EXTENT PERMITTED BY INDONESIAN LAW:</p>
171
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
172
+ <li>We are not liable for any direct, indirect, or consequential damages</li>
173
+ <li>We are not liable for loss of data, profits, or business opportunities</li>
174
+ <li>We are not liable for third-party claims arising from your use</li>
175
+ <li>Our total liability shall not exceed IDR 0 as this is a free service</li>
176
+ </ul>
177
+ </div>
178
+ </div>
179
+
180
+ {/* Governing Law */}
181
+ <div className="p-6 rounded-xl bg-white/5 border border-white/5">
182
+ <h2 className="text-2xl font-bold text-white mb-4 flex items-center gap-2">
183
+ <span className="text-primary">14.</span> Governing Law
184
+ </h2>
185
+ <p className="text-muted-foreground">
186
+ These Terms are governed by the laws of Indonesia. Any disputes shall be resolved in Indonesian courts with jurisdiction in the service provider's location.
187
+ </p>
188
+ </div>
189
+
190
+ {/* Contact */}
191
+ <div className="p-6 rounded-xl bg-gradient-to-br from-primary/20 to-purple-500/10 border border-primary/20">
192
+ <div className="flex items-start gap-4">
193
+ <div className="w-12 h-12 rounded-xl bg-primary/20 flex items-center justify-center flex-shrink-0">
194
+ <Mail className="w-6 h-6 text-primary" />
195
+ </div>
196
+ <div>
197
+ <h2 className="text-xl font-bold text-white mb-2">Contact Information</h2>
198
+ <p className="text-muted-foreground mb-3">
199
+ For questions, concerns, or reports of Terms violations:
200
+ </p>
201
+ <p className="text-sm text-white"><strong>Email:</strong> ditzdevs@gmail.com</p>
202
+ <p className="text-sm text-muted-foreground"><strong>Service Name:</strong> DitzzyAPI</p>
203
+ <p className="text-sm text-muted-foreground"><strong>Owner:</strong> Aditya Putra Priana</p>
204
+ </div>
205
+ </div>
206
+ </div>
207
+
208
+ <div className="p-6 rounded-xl bg-primary/10 border border-primary/20">
209
+ <h3 className="text-xl font-bold text-white mb-3">Acknowledgment</h3>
210
+ <p className="text-muted-foreground mb-3">
211
+ By using DitzzyAPI, you acknowledge that:
212
+ </p>
213
+ <ul className="space-y-2 text-muted-foreground ml-6 list-disc">
214
+ <li>You have read and understood these Terms</li>
215
+ <li>You agree to be bound by these Terms</li>
216
+ <li>You are legally able to enter into this agreement</li>
217
+ <li>You will use the Service responsibly and lawfully</li>
218
+ </ul>
219
+ </div>
220
+
221
+ <p className="text-sm text-muted-foreground text-center pt-8">
222
+ <strong>Last Updated:</strong> January 15, 2026 | <strong>Version:</strong> 1.0
223
+ </p>
224
+ </motion.div>
225
+ </div>
226
+ </section>
227
+ </main>
228
+
229
+ <Footer />
230
+ </div>
231
+ );
232
+ }
src/components/Footer.tsx CHANGED
@@ -23,15 +23,15 @@ export function Footer() {
23
  <h4 className="font-semibold text-white mb-4">Links</h4>
24
  <ul className="space-y-2 text-sm text-muted-foreground">
25
  <li><a href="/docs" className="hover:text-primary transition-colors">Documentation</a></li>
26
- <li><a href="#" className="hover:text-primary transition-colors">Status</a></li>
27
  </ul>
28
  </div>
29
 
30
  <div>
31
  <h4 className="font-semibold text-white mb-4">Legal</h4>
32
  <ul className="space-y-2 text-sm text-muted-foreground">
33
- <li><a href="#" className="hover:text-primary transition-colors">Privacy Policy</a></li>
34
- <li><a href="#" className="hover:text-primary transition-colors">Terms of Service</a></li>
35
  </ul>
36
  </div>
37
  </div>
 
23
  <h4 className="font-semibold text-white mb-4">Links</h4>
24
  <ul className="space-y-2 text-sm text-muted-foreground">
25
  <li><a href="/docs" className="hover:text-primary transition-colors">Documentation</a></li>
26
+ <li><a href="https://whatsapp.com/channel/0029Vb7AafUL7UVRIpg1Fy24" className="hover:text-primary transition-colors">WhatsApp Channel</a></li>
27
  </ul>
28
  </div>
29
 
30
  <div>
31
  <h4 className="font-semibold text-white mb-4">Legal</h4>
32
  <ul className="space-y-2 text-sm text-muted-foreground">
33
+ <li><a href="/privacy" className="hover:text-primary transition-colors">Privacy Policy</a></li>
34
+ <li><a href="/terms" className="hover:text-primary transition-colors">Terms of Service</a></li>
35
  </ul>
36
  </div>
37
  </div>