|
| 1 | +import type { Metadata } from "next"; |
| 2 | +import Link from "next/link"; |
| 3 | +import { AppShell } from "@/components/app-shell"; |
| 4 | + |
| 5 | +export const metadata: Metadata = { |
| 6 | + title: "Privacy Policy · NovaSupport", |
| 7 | + description: |
| 8 | + "Learn how NovaSupport collects, uses, and protects your data — including wallet addresses, on-chain data, and GDPR/CCPA rights.", |
| 9 | + openGraph: { |
| 10 | + title: "Privacy Policy · NovaSupport", |
| 11 | + description: |
| 12 | + "Learn how NovaSupport handles your data on the Stellar-native creator support platform.", |
| 13 | + type: "website", |
| 14 | + }, |
| 15 | +}; |
| 16 | + |
| 17 | +export default function PrivacyPage() { |
| 18 | + return ( |
| 19 | + <AppShell> |
| 20 | + <div className="mx-auto max-w-3xl px-4 py-16 space-y-10 text-sky/80"> |
| 21 | + <header className="space-y-2"> |
| 22 | + <h1 className="text-4xl font-bold tracking-tight text-white"> |
| 23 | + Privacy Policy |
| 24 | + </h1> |
| 25 | + <p className="text-sm text-steel">Last updated: July 24, 2026</p> |
| 26 | + </header> |
| 27 | + |
| 28 | + <Section title="1. Introduction"> |
| 29 | + <p> |
| 30 | + NovaSupport ("we", "our", or "us") operates the NovaSupport |
| 31 | + platform, a Stellar-native creator support service. This Privacy |
| 32 | + Policy explains what personal data we collect, why we collect it, |
| 33 | + how we use it, and the rights you have regarding your information. |
| 34 | + </p> |
| 35 | + <p> |
| 36 | + By using NovaSupport you agree to the practices described in this |
| 37 | + Policy. If you do not agree, please discontinue use of the Platform. |
| 38 | + </p> |
| 39 | + </Section> |
| 40 | + |
| 41 | + <Section title="2. Data We Collect"> |
| 42 | + <h3 className="text-white font-medium mt-2"> |
| 43 | + 2.1 Data you provide directly |
| 44 | + </h3> |
| 45 | + <ul className="list-disc pl-6 space-y-1 mt-1"> |
| 46 | + <li> |
| 47 | + <strong className="text-white/80">Display name and bio</strong> — |
| 48 | + shown publicly on your creator profile. |
| 49 | + </li> |
| 50 | + <li> |
| 51 | + <strong className="text-white/80">Email address</strong> — |
| 52 | + optional; used only for notification emails. Never shown publicly. |
| 53 | + </li> |
| 54 | + <li> |
| 55 | + <strong className="text-white/80">Social handles</strong> (Twitter, |
| 56 | + GitHub) — optional; shown publicly on your profile. |
| 57 | + </li> |
| 58 | + <li> |
| 59 | + <strong className="text-white/80">Website URL</strong> — optional; |
| 60 | + shown on your profile. |
| 61 | + </li> |
| 62 | + <li> |
| 63 | + <strong className="text-white/80">Avatar image</strong> — uploaded |
| 64 | + to and served from Supabase Storage. |
| 65 | + </li> |
| 66 | + </ul> |
| 67 | + |
| 68 | + <h3 className="text-white font-medium mt-4"> |
| 69 | + 2.2 Wallet addresses |
| 70 | + </h3> |
| 71 | + <p> |
| 72 | + Your Stellar wallet public key (G…) is used to authenticate you and |
| 73 | + to route supporter payments to you. It is stored in our database and |
| 74 | + displayed publicly on your profile page. It is also recorded |
| 75 | + permanently on the Stellar blockchain for every transaction. We never |
| 76 | + have access to your private key or seed phrase. |
| 77 | + </p> |
| 78 | + |
| 79 | + <h3 className="text-white font-medium mt-4">2.3 On-chain data</h3> |
| 80 | + <p> |
| 81 | + When a supporter sends you Stellar assets, the transaction hash, |
| 82 | + amount, asset code, sender address, and timestamp are recorded on the |
| 83 | + Stellar Network and in our database. This data is public by nature |
| 84 | + of the Stellar blockchain and cannot be deleted from the ledger. |
| 85 | + </p> |
| 86 | + |
| 87 | + <h3 className="text-white font-medium mt-4"> |
| 88 | + 2.4 Automatically collected data |
| 89 | + </h3> |
| 90 | + <ul className="list-disc pl-6 space-y-1 mt-1"> |
| 91 | + <li> |
| 92 | + IP addresses — used transiently for rate limiting and abuse |
| 93 | + prevention; not linked to your profile and not stored long-term. |
| 94 | + </li> |
| 95 | + <li> |
| 96 | + HTTP request logs — retained for up to 30 days for security and |
| 97 | + diagnostics, then purged. |
| 98 | + </li> |
| 99 | + <li> |
| 100 | + Profile view counts — aggregate only; no individual visitor |
| 101 | + tracking. |
| 102 | + </li> |
| 103 | + </ul> |
| 104 | + </Section> |
| 105 | + |
| 106 | + <Section title="3. How We Use Your Data"> |
| 107 | + <ul className="list-disc pl-6 space-y-1"> |
| 108 | + <li>To authenticate you via Stellar wallet signature.</li> |
| 109 | + <li> |
| 110 | + To display your public creator profile to potential supporters. |
| 111 | + </li> |
| 112 | + <li> |
| 113 | + To send transactional email notifications when you receive |
| 114 | + support (if you have verified an email address and enabled this |
| 115 | + option). |
| 116 | + </li> |
| 117 | + <li>To process and verify Stellar payment transactions.</li> |
| 118 | + <li> |
| 119 | + To enforce rate limits and protect the Platform from abuse. |
| 120 | + </li> |
| 121 | + <li> |
| 122 | + To send optional weekly digest emails summarising your support |
| 123 | + activity (opt-in only). |
| 124 | + </li> |
| 125 | + </ul> |
| 126 | + <p className="mt-2"> |
| 127 | + We do not sell, rent, or trade your personal data to third parties. |
| 128 | + </p> |
| 129 | + </Section> |
| 130 | + |
| 131 | + <Section title="4. Data Sharing"> |
| 132 | + <p>We share data with the following third parties only as necessary:</p> |
| 133 | + <ul className="list-disc pl-6 space-y-1 mt-2"> |
| 134 | + <li> |
| 135 | + <strong className="text-white/80">Supabase</strong> — database |
| 136 | + hosting and avatar image storage. Data is processed under their |
| 137 | + Data Processing Agreement. |
| 138 | + </li> |
| 139 | + <li> |
| 140 | + <strong className="text-white/80">SMTP provider</strong> — for |
| 141 | + transactional email delivery. Only your email address and first |
| 142 | + name are transmitted. |
| 143 | + </li> |
| 144 | + <li> |
| 145 | + <strong className="text-white/80">Sentry</strong> — error |
| 146 | + monitoring. Wallet addresses may appear in error traces; we |
| 147 | + configure Sentry to scrub PII where possible. |
| 148 | + </li> |
| 149 | + <li> |
| 150 | + <strong className="text-white/80">Stellar Network</strong> — |
| 151 | + transaction data is broadcast to and permanently stored on the |
| 152 | + public Stellar blockchain. |
| 153 | + </li> |
| 154 | + </ul> |
| 155 | + </Section> |
| 156 | + |
| 157 | + <Section title="5. Cookies and Local Storage"> |
| 158 | + <p> |
| 159 | + NovaSupport uses an <strong className="text-white/80">httpOnly |
| 160 | + cookie</strong> named <code className="text-mint text-xs bg-white/5 px-1 py-0.5 rounded">auth_token</code> to |
| 161 | + maintain your authenticated session. This cookie is set after you |
| 162 | + sign in with your Stellar wallet, expires after 1 hour, and is not |
| 163 | + accessible to JavaScript (reducing XSS risk). |
| 164 | + </p> |
| 165 | + <p className="mt-2"> |
| 166 | + We use browser <code className="text-mint text-xs bg-white/5 px-1 py-0.5 rounded">localStorage</code> to |
| 167 | + store your chosen username and UI preferences (e.g. theme). No |
| 168 | + tracking or advertising cookies are used. |
| 169 | + </p> |
| 170 | + </Section> |
| 171 | + |
| 172 | + <Section title="6. Data Retention"> |
| 173 | + <ul className="list-disc pl-6 space-y-1"> |
| 174 | + <li> |
| 175 | + Profile data is retained for as long as your account is active. |
| 176 | + </li> |
| 177 | + <li> |
| 178 | + Transaction records are retained indefinitely for audit and |
| 179 | + compliance purposes (they are also immutably recorded on the |
| 180 | + Stellar blockchain). |
| 181 | + </li> |
| 182 | + <li> |
| 183 | + Email addresses are deleted within 30 days of account deletion. |
| 184 | + </li> |
| 185 | + <li>HTTP logs are purged after 30 days.</li> |
| 186 | + </ul> |
| 187 | + </Section> |
| 188 | + |
| 189 | + <Section title="7. Your Rights (GDPR & CCPA)"> |
| 190 | + <p> |
| 191 | + Depending on where you are located, you may have the following |
| 192 | + rights: |
| 193 | + </p> |
| 194 | + <ul className="list-disc pl-6 space-y-1 mt-2"> |
| 195 | + <li> |
| 196 | + <strong className="text-white/80">Access</strong> — request a copy |
| 197 | + of the personal data we hold about you. |
| 198 | + </li> |
| 199 | + <li> |
| 200 | + <strong className="text-white/80">Rectification</strong> — correct |
| 201 | + inaccurate personal data via your profile settings. |
| 202 | + </li> |
| 203 | + <li> |
| 204 | + <strong className="text-white/80">Erasure ("right to be |
| 205 | + forgotten")</strong> — request deletion of your profile and |
| 206 | + off-chain data. Note that on-chain transaction data cannot be |
| 207 | + erased from the Stellar blockchain. |
| 208 | + </li> |
| 209 | + <li> |
| 210 | + <strong className="text-white/80">Portability</strong> — export |
| 211 | + your transaction history as CSV via the Creator Dashboard. |
| 212 | + </li> |
| 213 | + <li> |
| 214 | + <strong className="text-white/80">Opt-out of sale</strong> — we do |
| 215 | + not sell personal data; this right is satisfied by default. |
| 216 | + </li> |
| 217 | + <li> |
| 218 | + <strong className="text-white/80">Withdraw consent</strong> — |
| 219 | + unsubscribe from email notifications at any time in your |
| 220 | + Notification Preferences. |
| 221 | + </li> |
| 222 | + </ul> |
| 223 | + <p className="mt-2"> |
| 224 | + To exercise these rights, email{" "} |
| 225 | + <a |
| 226 | + href="mailto:privacy@novasupport.xyz" |
| 227 | + className="text-mint hover:underline" |
| 228 | + > |
| 229 | + privacy@novasupport.xyz |
| 230 | + </a> |
| 231 | + . We will respond within 30 days. |
| 232 | + </p> |
| 233 | + </Section> |
| 234 | + |
| 235 | + <Section title="8. Security"> |
| 236 | + <p> |
| 237 | + We implement industry-standard security measures including HTTPS |
| 238 | + encryption in transit, httpOnly session cookies, rate limiting, CORS |
| 239 | + restrictions, and input sanitisation. However, no system is |
| 240 | + completely secure. You are responsible for securing your Stellar |
| 241 | + wallet private key. |
| 242 | + </p> |
| 243 | + </Section> |
| 244 | + |
| 245 | + <Section title="9. Children's Privacy"> |
| 246 | + <p> |
| 247 | + NovaSupport is not directed at children under 18. We do not |
| 248 | + knowingly collect personal data from minors. If you believe a minor |
| 249 | + has provided us with personal data, please contact us immediately. |
| 250 | + </p> |
| 251 | + </Section> |
| 252 | + |
| 253 | + <Section title="10. Changes to This Policy"> |
| 254 | + <p> |
| 255 | + We may update this Privacy Policy periodically. Changes will be |
| 256 | + posted on this page with an updated "Last updated" date. Continued |
| 257 | + use of the Platform after changes constitutes acceptance of the |
| 258 | + revised Policy. |
| 259 | + </p> |
| 260 | + </Section> |
| 261 | + |
| 262 | + <Section title="11. Contact"> |
| 263 | + <p> |
| 264 | + For privacy-related questions, contact us at{" "} |
| 265 | + <a |
| 266 | + href="mailto:privacy@novasupport.xyz" |
| 267 | + className="text-mint hover:underline" |
| 268 | + > |
| 269 | + privacy@novasupport.xyz |
| 270 | + </a> |
| 271 | + . |
| 272 | + </p> |
| 273 | + </Section> |
| 274 | + |
| 275 | + <div className="border-t border-white/10 pt-8 text-sm text-steel flex gap-6"> |
| 276 | + <Link href="/terms" className="hover:text-mint transition-colors"> |
| 277 | + Terms of Service |
| 278 | + </Link> |
| 279 | + <Link href="/" className="hover:text-mint transition-colors"> |
| 280 | + ← Back to Home |
| 281 | + </Link> |
| 282 | + </div> |
| 283 | + </div> |
| 284 | + </AppShell> |
| 285 | + ); |
| 286 | +} |
| 287 | + |
| 288 | +function Section({ |
| 289 | + title, |
| 290 | + children, |
| 291 | +}: { |
| 292 | + title: string; |
| 293 | + children: React.ReactNode; |
| 294 | +}) { |
| 295 | + return ( |
| 296 | + <section className="space-y-3"> |
| 297 | + <h2 className="text-xl font-semibold text-white">{title}</h2> |
| 298 | + <div className="text-sky/70 leading-relaxed space-y-2">{children}</div> |
| 299 | + </section> |
| 300 | + ); |
| 301 | +} |
0 commit comments