Addresses the high-volume issues from the Ahrefs audit: - Worker entrypoint 301s every request not on https://paseo.sh (www subdomain and http variants), killing the duplicate-page errors and the HTTP→HTTPS internal-link notices. - pageMeta() emits <link rel="canonical"> and og:url per route; every head() call now passes its canonical path. - /blog stops rewriting itself to /blog?drafts=false; the search param only appears when explicitly true. - Sitemap includes /blog and each post. - Trim homepage title under SERP truncation, rewrite /agents meta description under 160 chars, pad short descriptions on /privacy, /download, /cloud, /changelog, /docs. - app.paseo.sh gets <meta robots=noindex,nofollow> and a Disallow-all robots.txt so the SPA shell stops polluting the crawl with H1-missing / no-OG / low-word-count warnings.
96 lines
3.4 KiB
TypeScript
96 lines
3.4 KiB
TypeScript
import { createFileRoute } from "@tanstack/react-router";
|
|
import { SiteShell } from "~/components/site-shell";
|
|
import { pageMeta } from "~/meta";
|
|
|
|
export const Route = createFileRoute("/privacy")({
|
|
head: () =>
|
|
pageMeta(
|
|
"Privacy Policy - Paseo",
|
|
"Privacy policy for Paseo, the self-hosted coding agent manager. No tracking, no analytics, no data collection. Your code stays on your machine.",
|
|
"/privacy",
|
|
),
|
|
component: Privacy,
|
|
});
|
|
|
|
function Privacy() {
|
|
return (
|
|
<SiteShell>
|
|
<h1 className="text-3xl font-medium mb-8">Privacy Policy</h1>
|
|
|
|
<div className="space-y-6 text-white/70 leading-relaxed">
|
|
<p>
|
|
Paseo is a self-hosted tool for managing coding agents. Your code and data stay on your
|
|
machine.
|
|
</p>
|
|
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-medium text-white">What we collect</h2>
|
|
<p>Nothing. Paseo runs on your machine and doesn't send us any data.</p>
|
|
</section>
|
|
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-medium text-white">The relay server</h2>
|
|
<p>
|
|
If you use the optional encrypted relay to connect your phone to your daemon, the relay
|
|
sees:
|
|
</p>
|
|
<ul className="list-disc list-inside space-y-1 ml-4">
|
|
<li>IP addresses and connection timing</li>
|
|
<li>Message sizes</li>
|
|
<li>Session IDs</li>
|
|
</ul>
|
|
<p>
|
|
All messages between your phone and daemon are end-to-end encrypted with
|
|
XSalsa20-Poly1305. The relay cannot read your messages, see your code, or decrypt your
|
|
traffic.
|
|
</p>
|
|
</section>
|
|
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-medium text-white">Analytics and tracking</h2>
|
|
<p>
|
|
We don't use analytics, tracking pixels, cookies, or ads. The app doesn't
|
|
phone home.
|
|
</p>
|
|
</section>
|
|
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-medium text-white">Third-party services</h2>
|
|
<p>
|
|
Paseo wraps agent providers like Claude Code, Codex, and OpenCode. Those tools
|
|
communicate with their own APIs (Anthropic, OpenAI, etc.) using your credentials. Paseo
|
|
doesn't manage or intercept those API calls.
|
|
</p>
|
|
<p>
|
|
If you use voice features with cloud providers (OpenAI speech), your voice data is sent
|
|
to those services according to their privacy policies.
|
|
</p>
|
|
</section>
|
|
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-medium text-white">We don't sell your data</h2>
|
|
<p>We don't have your data to sell. Paseo is self-hosted and local-first.</p>
|
|
</section>
|
|
|
|
<section className="space-y-3">
|
|
<h2 className="text-xl font-medium text-white">Questions</h2>
|
|
<p>
|
|
If you have questions about privacy, open an issue on{" "}
|
|
<a
|
|
href="https://github.com/getpaseo/paseo"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
className="underline hover:text-white/90"
|
|
>
|
|
GitHub
|
|
</a>
|
|
.
|
|
</p>
|
|
</section>
|
|
|
|
<p className="text-sm text-white/50 pt-6">Last updated: February 2025</p>
|
|
</div>
|
|
</SiteShell>
|
|
);
|
|
}
|