diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index a2dc377..51ab1f4 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -1651,9 +1651,9 @@ Sequencing: realistically wants to happen before live Stripe mode activates (Str | Feature | Size | Description | |---------|------|-------------| | About page (/about) | M | _Shipped early, ahead of v1.42._ Honest first-person voice matching the Pricing page. Covers: what Campable does, why it exists, who's behind it, how it's funded, where data comes from, what's coming. Trust signal for fence-sitters on /pricing. | -| Privacy Policy (/privacy) | S | Hand-written in Campable voice (not Termly — see Architecture Decisions). Honest disclosure of every third party that touches user data (Supabase, Stripe, PostHog, Mapbox, Visual Crossing, Cloudflare, Fly), retention policy, and GDPR/CCPA rights. | +| Privacy Policy (/privacy) | S | Hand-written in Campable voice. See Architecture Decisions for why Termly was rejected. Honest disclosure of every third party that touches user data (Supabase, Stripe, PostHog, Mapbox, Visual Crossing, Cloudflare, Fly), retention policy, and GDPR/CCPA rights. | | Terms of Service (/terms) | S | Hand-written. $5/mo subscription terms, explicit 30-day refund policy (per Stripe's preference), liability limit, governing law (Washington), right to terminate abusive accounts. Linked from /pricing. | -| Footer component | S | New `
diff --git a/web/src/pages/Privacy.tsx b/web/src/pages/Privacy.tsx index 5996257..4820259 100644 --- a/web/src/pages/Privacy.tsx +++ b/web/src/pages/Privacy.tsx @@ -7,7 +7,7 @@ export default function Privacy() {Last updated: 2026-05-31
- Campable is a campsite discovery tool. To run search, watches, and - billing we collect the minimum data needed and route it through a - short list of specific third parties — named below, not - described as “service providers.” No ads, no selling, no - cross-site tracking pixels. + Campable is a campsite discovery tool. We collect the minimum data + needed to run search, watches, and billing. Every third party that + handles any of it is listed below by name. We don’t run ads, + sell data, or use cross-site tracking pixels.
@@ -28,29 +27,29 @@ export default function Privacy() {- No advertising network integrations. No selling or renting of your - data. No cross-site tracking pixels. No third-party social-login - providers wired in yet (when Google/Apple sign-in lands, this - section will be updated to disclose what each provider sees). + We don’t run advertising integrations or cross-site tracking + pixels, and we don’t sell or rent your data to anyone. + Social login providers (Google, Apple) are not wired in yet. When + that lands, this section will list what each provider sees.
Account data lives until you delete your account, at which point - it’s removed from our database within 7 days. Billing records - are retained per Stripe’s tax and audit requirements (up to - 7 years). Analytics events are retained 12 months in aggregate - form. Server logs are retained 30 days. + it’s removed from our database within 7 days. Billing + records are retained per Stripe’s tax and audit requirements + (up to 7 years). Analytics events are retained 12 months in + aggregate form. Server logs are retained 30 days.
@@ -123,8 +122,8 @@ export default function Privacy() { access, correct, delete, or export your data, and to object to certain processing. Email{" "} hello@palouselabs.com{" "} - and we’ll act on it within 30 days. Account deletion is also - available directly in the user menu. + and we’ll act on it within 30 days. Account deletion is + also available directly in the user menu. @@ -132,19 +131,19 @@ export default function Privacy() {We use first-party cookies for session login and a first-party - analytics cookie for PostHog. No third-party advertising cookies. - We have not yet implemented an EU consent banner; we plan to add - one once EU traffic exceeds 5% of total. If you’re in the EU - and want to opt out before then, email us and we’ll exclude - your account from analytics. + analytics cookie for PostHog, and no third-party advertising + cookies. An EU consent banner is not yet implemented; we plan to + add one once EU traffic exceeds 5% of total. If you’re in + the EU and want to opt out before then, email us and we’ll + exclude your account from analytics.
- Campable is not directed at people under 13 and we do not knowingly - collect their data. + Campable is not directed at people under 13, and we do not + knowingly collect their data.
Material changes to this policy will be announced in-app and by - email to active subscribers. Minor edits (wording, clarifications) - are made silently and reflected in the “Last updated” - date at the top. + email to active subscribers. Minor edits (wording, + clarifications) are made silently and reflected in the + “Last updated” date at the top.
diff --git a/web/src/pages/Terms.tsx b/web/src/pages/Terms.tsx index 335b2c1..1bf7aeb 100644 --- a/web/src/pages/Terms.tsx +++ b/web/src/pages/Terms.tsx @@ -17,10 +17,9 @@ export default function Terms() {Last updated: 2026-05-31
- Plain-English summary: use Campable in good faith, don’t scrape - our scrape, cancel Pro any time in one click, and we’ll do our - best to keep the data accurate but campsite availability is - ultimately what the booking site says it is. + Short version: use Campable in good faith and cancel Pro any time + from the Stripe portal. Our availability data is best-effort. The + booking site is authoritative when you actually reserve.
@@ -28,15 +27,15 @@ export default function Terms() {The free tier covers unlimited search across all - providers, three simultaneous active watches with 15-minute polling, - and shareable result links. It is genuinely free — no trial, - no card on file, no daily limits. + providers, three simultaneous active watches with 15-minute + polling, and shareable result links. It is genuinely free. We + don’t require a card to use it.
Campable Pro is $5/month. It unlocks unlimited simultaneous watches, 5-minute polling instead of 15-minute, more - trip-planner sessions per month, and anomaly-based deal alerts. See{" "} - /pricing for the full comparison. + trip-planner sessions per month, and anomaly-based deal alerts. + See /pricing for the full comparison.
@@ -45,31 +44,31 @@ export default function Terms() {If Pro isn’t doing what you wanted, email{" "} hello@palouselabs.com{" "} - within 30 days of charge and we’ll refund it. No forms, no - survey, no questions about whether you really tried it. After 30 - days, cancel in one click via the Stripe portal and you won’t - be charged again, but the current period isn’t refunded. + within 30 days of charge and we’ll refund it without forms + or follow-up questions. After 30 days, you can cancel in one + click from the Stripe portal. You won’t be charged again, + but the current period isn’t refunded.
- Don’t scrape Campable to rebuild it elsewhere. Don’t use - it to automate bookings or arbitrage. Don’t create multiple - accounts to exceed free-tier limits. Don’t attempt to break - authentication, billing, or notification systems. Use the watch and - alert features for personal trip planning, not commercial resale. + Use Campable for personal trip planning, not commercial resale. + Please don’t scrape the site, automate bookings, create + multiple accounts to dodge free-tier limits, or try to break + authentication, billing, or notification systems.
- You can cancel Pro any time via the Stripe Customer Portal and - delete your account from the user menu. We may suspend or terminate - accounts that violate the acceptable-use rules, abuse the system, - or chargeback Pro charges without first contacting us. + You can cancel Pro any time from the Stripe Customer Portal and + delete your account from the user menu. We may suspend or + terminate accounts that violate the acceptable-use rules, abuse + the system, or chargeback Pro charges without first contacting + us.
Campsite availability is fetched from third-party booking systems (Recreation.gov, Washington State Parks, Oregon State Parks). We - cache and aggregate it but we can’t guarantee it’s - accurate at any given moment — availability flips faster than - our polling interval, and the underlying systems occasionally - return stale data. Always confirm on the booking site before - booking. + cache and aggregate it, but we can’t guarantee it’s + accurate at any given moment. Availability flips faster than our + polling interval, and the underlying systems sometimes return + stale data. Always confirm on the booking site before completing + a reservation.
Campable does not process bookings or take a cut of reservations. - When you click “Book,” you go directly to the operator - and pay them. We have no role in the reservation contract between - you and the operator. + When you click “Book,” you go directly to the + operator and pay them. We have no role in the reservation + contract between you and the operator.
@@ -97,11 +96,12 @@ export default function Terms() {To the maximum extent allowed by law, Campable’s liability for any claim arising from your use of the service is limited to - the fees you paid in the 12 months preceding the claim. The service - is provided “as is” without warranty of merchantability - or fitness for a particular purpose. This does not limit liability - for things that can’t legally be limited (gross negligence, - willful misconduct, statutory consumer rights). + the fees you paid in the 12 months preceding the claim. The + service is provided “as is” without warranty of + merchantability or fitness for a particular purpose. This does + not limit liability for things that can’t legally be + limited (gross negligence, willful misconduct, statutory + consumer rights).
@@ -121,15 +121,16 @@ export default function Terms() { Material changes will be announced in-app and emailed to active subscribers at least 14 days before they take effect. Continued use after the effective date constitutes acceptance. If you - don’t accept, cancel before the date and we’ll refund - the unused portion of any pre-paid period. + don’t accept, cancel before the date and we’ll + refund the unused portion of any pre-paid period.- Questions about these terms, the refund policy, or anything else:{" "} + Questions about these terms, the refund policy, or anything + else:{" "} hello@palouselabs.com.