import { useSeoMeta } from '@unhead/react'; import { Link } from 'react-router-dom'; import { Shield, MapPin, Globe, Eye, Lock, Wifi, Key, CheckCircle2, AlertTriangle, } from 'lucide-react'; // ─── Small building blocks ──────────────────────────────────────────────────── function Section({ icon: Icon, color, title, children, }: { icon: React.ComponentType<{ className?: string; style?: React.CSSProperties }>; color: string; title: string; children: React.ReactNode; }) { return (

{title}

{children}
); } function GoodPoint({ children }: { children: React.ReactNode }) { return (
{children}
); } function Caveat({ children }: { children: React.ReactNode }) { return (
{children}
); } export default function PrivacyPage() { useSeoMeta({ title: 'Privacy — SkateSpots', description: 'How SkateSpots handles your data: your GPS stays on your device, spots you publish are public, and how to hide your IP with a VPN or Tor if you want to.', }); return ( <>
{/* Hero */}

Your Privacy

No tracking, no ads, no data selling. Here's exactly what stays on your device, what's public, and how to lock things down further if you want to.

{/* Location stays local */}

When you tap "Near Me," your GPS location is read on your device and used only to center the map and sort nearby spots.

It is never published to Nostr. It is never sent to SkateSpots — there is no SkateSpots server collecting it. It is never shared with any third party. On the native app we use your phone's own location system directly and skip Google Play Services — so it works on de-Googled phones (GrapheneOS, /e/OS) and Google never sees it.

Weather is off by default. When you turn it on, it looks up conditions for the spot's public location — not yours.

{/* Public by design */}

SkateSpots is a shared map, so some things are meant to be seen by everyone. When you choose to publish them, these are public on the Nostr network:

Spots you add — including their coordinates. If you add a spot at your exact location, that location becomes public. Think before you drop a pin on your own driveway. Reviews, comments, and your public profile (name, picture). Who you follow, and public reactions. Zaps are public by default: a zap ties your account — often your lightning address — to the post you paid and to the tip itself. Your wallet can send it anonymously if you'd rather it didn't.

A VPN or Tor does not hide the content of what you publish — a spot's coordinates are public regardless. Privacy tools hide your network identity (your IP), not the things you choose to post.

{/* Encrypted */}
Direct messages and crew chats are end-to-end encrypted (NIP-17). Only the participants can read them. My Stash — your private gear inventory — is encrypted to your own key. Crew-only members can choose to be visible only to their crew-mates.
{/* IP / network */}

Like every website, the servers SkateSpots talks to can see your{' '} IP address (a rough indicator of your region). This is normal for any web or map app and isn't unique to us. Those servers are:

  • Map tiles (OpenStreetMap) — see your IP and which area of the map you look at.
  • Spot/shop geocoding — when you create or edit a spot or shop, its coordinates go to OpenStreetMap Nominatim to fill in the city/country tag. When you open Community Stats, the coordinates of pins that have no location tag go to BigDataCloud so they can be grouped by region (cached on your device — at most once per pin). Both see your IP. These are the pin you placed / public pin coordinates, never your device's live GPS.
  • Background notifications (opt-in) — if you enable them, a SkateSpots push server sees that your key received something and when (never who sent it or what it says — messages stay encrypted), and your OS push service (Google/Mozilla/Apple) delivers the alert.
  • Bitcoin places (BTCMap, when you switch that layer on) — see your IP and the area you're viewing.
  • Nostr relays — see your IP when the app reads or publishes.
  • Cashu mints — see your IP whenever your wallet sends, receives or melts.
  • Directions (OSRM, and Transitous for transit) — receive the start and end of any route you ask for, not only your IP. Routing stays in the app: your start and destination are never handed off to Google or Apple Maps.
  • Weather (Open-Meteo, opt-in) and image uploads (Blossom), when you use them.
  • Sasquatch AI — your message goes to our own server, then to the model provider.

Because you send your public key (npub) on the same connection, a relay can link your IP to you — not just "someone connected", but "this person, from this address".

One thing we do shield: the mints directory is fetched through our server, so MintRadar never sees your IP.

{/* VPN / Tor */}

For most skaters this isn't necessary — but if you want to hide your IP and rough location from the servers above, you have two free options:

🛡️ A reputable VPN

Hides your IP behind the VPN's servers. Easy and fast. Use one you pay for and trust; free VPNs usually monetise your traffic, so treat "free" as a warning sign.

🧅 Tor Browser

Free, maximum IP privacy, routes through multiple relays. Slower — maps and some Nostr relays may lag or block Tor exit nodes. Great for the extra-cautious.

Read this so you're not fooled

A VPN/Tor hides your IP — not the spots you publish. A pin at your home is public whether or not you use a VPN. Don't enable "Near Me" / browser GPS if your goal is to stay anonymous — precise GPS overrides any IP hiding. No tool makes you fully "anonymous." These reduce what servers can infer about your network location — that's it.
{/* Keys */}

Your account is a cryptographic key pair that you own. The safest way to log in is a{' '} signer (Alby, nos2x, or Amber on Android) so your secret key never gets pasted into the app.

If you paste your nsec{' '} directly, it's stored in your browser. Use a signer extension instead when you can, and keep your nsec backup somewhere safe offline.
{/* Footer */}

Questions? Ask{' '} The Sasquatch in-app, or read the{' '} getting started guide {' '}·{' '} About

); }