website: add /cloud design partners page and shared shell

- New /cloud page with signup form (email, name, company, role, message)
  posting to a Discord webhook via a TanStack Start server function on
  the Cloudflare Worker. Webhook URL read from DISCORD_WEBHOOK_URL secret.
- Extract SiteShell, SiteFooter, FAQItem from landing-page.
- Migrate /privacy, /download, /blog, /changelog, /cloud to SiteShell so
  they share header + footer with consistent width.
- Add /cloud to header and footer nav.
- Make /docs sidebar full-width; bump footer text from xs to sm.
- Add Cloudflare Workers types and ignore .dev.vars.
This commit is contained in:
Mohamed Boudra
2026-05-06 10:45:14 +07:00
parent ea4d6bb7ce
commit 0eacc98e17
16 changed files with 730 additions and 431 deletions
+68 -69
View File
@@ -1,4 +1,5 @@
import { createFileRoute } from "@tanstack/react-router";
import { SiteShell } from "~/components/site-shell";
import { pageMeta } from "~/meta";
export const Route = createFileRoute("/privacy")({
@@ -13,83 +14,81 @@ export const Route = createFileRoute("/privacy")({
function Privacy() {
return (
<div className="min-h-screen bg-background">
<div className="max-w-3xl mx-auto p-6 md:p-12">
<h1 className="text-3xl font-medium mb-8">Privacy Policy</h1>
<SiteShell>
<h1 className="text-3xl font-medium mb-8">Privacy Policy</h1>
<div className="space-y-6 text-white/70 leading-relaxed">
<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&apos;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>
Paseo is a self-hosted tool for managing coding agents. Your code and data stay on your
machine.
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 AES-256-GCM.
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">What we collect</h2>
<p>Nothing. Paseo runs on your machine and doesn&apos;t send us any data.</p>
</section>
<section className="space-y-3">
<h2 className="text-xl font-medium text-white">Analytics and tracking</h2>
<p>
We don&apos;t use analytics, tracking pixels, cookies, or ads. The app doesn&apos;t
phone home.
</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 AES-256-GCM.
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">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&apos;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">Analytics and tracking</h2>
<p>
We don&apos;t use analytics, tracking pixels, cookies, or ads. The app doesn&apos;t
phone home.
</p>
</section>
<section className="space-y-3">
<h2 className="text-xl font-medium text-white">We don&apos;t sell your data</h2>
<p>We don&apos;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">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&apos;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">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>
<section className="space-y-3">
<h2 className="text-xl font-medium text-white">We don&apos;t sell your data</h2>
<p>We don&apos;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>
<p className="text-sm text-white/50 pt-6">Last updated: February 2025</p>
</div>
</div>
</SiteShell>
);
}