Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -1654,7 +1654,7 @@ Sequencing: realistically wants to happen before live Stripe mode activates (Str
| 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 `<Footer>` rendered site-wide outside `<Routes>`. Links: About, Pricing, Privacy, Terms, Contact (mailto). © year only. Version dropped because package.json is 0.0.0 and the site is continuously deployed. |
| Contact email | XS | `hello@palouselabs.com` already wired. Mailto in footer and on Privacy/Terms contact sections. |
| Contact email | XS | `hello@campable.co` mailto in footer and on About/Privacy/Terms contact sections. |
| Stripe Business profile config | XS | Paste Privacy + ToS URLs into Stripe Dashboard → Settings → Public details. Required for live-mode review. |
| Stripe Customer Portal links | XS | Customer Portal config page → add Terms + Privacy URLs so the cancel/manage flow shows them. |
| Apple App Store URL prep | XS | Confirm /privacy URL renders in Helmet meta + is reachable for Apple's submission crawler. (v1.45 will actually submit; v1.42 just has the URL ready.) |
Expand Down
2 changes: 1 addition & 1 deletion web/src/__tests__/Footer.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ describe("Footer", () => {
"/pricing",
"/privacy",
"/terms",
"mailto:hello@palouselabs.com",
"mailto:hello@campable.co",
]),
);
});
Expand Down
4 changes: 2 additions & 2 deletions web/src/__tests__/legal.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,11 +43,11 @@ describe("Privacy page", () => {
test("links to the support email", () => {
renderPage(<Privacy />);
const mailtos = screen.getAllByRole("link", {
name: /hello@palouselabs\.com/i,
name: /hello@campable\.co/i,
});
expect(mailtos.length).toBeGreaterThan(0);
expect(mailtos[0].getAttribute("href")).toBe(
"mailto:hello@palouselabs.com",
"mailto:hello@campable.co",
);
});
});
Expand Down
2 changes: 1 addition & 1 deletion web/src/components/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export function Footer() {
<Link to="/pricing">Pricing</Link>
<Link to="/privacy">Privacy</Link>
<Link to="/terms">Terms</Link>
<a href="mailto:hello@palouselabs.com">Contact</a>
<a href="mailto:hello@campable.co">Contact</a>
</nav>
<p className="site-footer-meta">© {new Date().getFullYear()} Campable</p>
</div>
Expand Down
2 changes: 1 addition & 1 deletion web/src/pages/About.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ export default function About() {
</p>
<p>
If something&rsquo;s broken or could be better, email{" "}
<a href="mailto:hello@palouselabs.com">hello@palouselabs.com</a>.
<a href="mailto:hello@campable.co">hello@campable.co</a>.
Replies come from a real human.
</p>
</section>
Expand Down
4 changes: 2 additions & 2 deletions web/src/pages/Privacy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ export default function Privacy() {
Under GDPR (EU/UK) and CCPA (California) you have the right to
access, correct, delete, or export your data, and to object to
certain processing. Email{" "}
<a href="mailto:hello@palouselabs.com">hello@palouselabs.com</a>{" "}
<a href="mailto:hello@campable.co">hello@campable.co</a>{" "}
and we&rsquo;ll act on it within 30 days. Account deletion is
also available directly in the user menu.
</p>
Expand Down Expand Up @@ -161,7 +161,7 @@ export default function Privacy() {
<h2 id="contact-heading">Contact</h2>
<p>
Privacy questions or data requests:{" "}
<a href="mailto:hello@palouselabs.com">hello@palouselabs.com</a>.
<a href="mailto:hello@campable.co">hello@campable.co</a>.
Replies come from a real human.
</p>
</section>
Expand Down
4 changes: 2 additions & 2 deletions web/src/pages/Terms.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ export default function Terms() {
<h2 id="refund-heading">Refund policy</h2>
<p>
If Pro isn&rsquo;t doing what you wanted, email{" "}
<a href="mailto:hello@palouselabs.com">hello@palouselabs.com</a>{" "}
<a href="mailto:hello@campable.co">hello@campable.co</a>{" "}
within 30 days of charge and we&rsquo;ll refund it without forms
or follow-up questions. After 30 days, you can cancel in one
click from the Stripe portal. You won&rsquo;t be charged again,
Expand Down Expand Up @@ -131,7 +131,7 @@ export default function Terms() {
<p>
Questions about these terms, the refund policy, or anything
else:{" "}
<a href="mailto:hello@palouselabs.com">hello@palouselabs.com</a>.
<a href="mailto:hello@campable.co">hello@campable.co</a>.
</p>
</section>
</main>
Expand Down
Loading