feat(website): add SEO landing pages for Claude Code, Codex, and OpenCode

Extract homepage into reusable LandingPage component with configurable
hero. Add /claude-code, /codex, and /opencode routes targeting
agent-specific mobile app search terms. Replace single-link footer
with four-column layout (Product, Agents, Community, Download).
This commit is contained in:
Mohamed Boudra
2026-03-15 11:16:28 +07:00
parent e80db346da
commit aa6c521394
6 changed files with 1245 additions and 1077 deletions
@@ -0,0 +1,25 @@
import { createFileRoute } from '@tanstack/react-router'
import { LandingPage } from '~/components/landing-page'
export const Route = createFileRoute('/claude-code')({
head: () => ({
meta: [
{ title: 'Claude Code Mobile App – Ship from your phone | Paseo' },
{
name: 'description',
content:
'Run Claude Code from your phone. Launch agents, check on progress, review diffs, and merge — all from your pocket. Self-hosted, your code stays on your machine.',
},
],
}),
component: ClaudeCodePage,
})
function ClaudeCodePage() {
return (
<LandingPage
title="Ship with Claude Code from your phone"
subtitle="Launch agents, check on progress, and merge from anywhere. Your Claude Code setup, your machine, your pocket."
/>
)
}
+25
View File
@@ -0,0 +1,25 @@
import { createFileRoute } from '@tanstack/react-router'
import { LandingPage } from '~/components/landing-page'
export const Route = createFileRoute('/codex')({
head: () => ({
meta: [
{ title: 'Codex Mobile App – Run Codex from anywhere | Paseo' },
{
name: 'description',
content:
'Run OpenAI Codex from your phone. Kick off agents, monitor progress, and ship code without being at your desk. Self-hosted, your code never leaves your machine.',
},
],
}),
component: CodexPage,
})
function CodexPage() {
return (
<LandingPage
title="Run Codex from anywhere"
subtitle="Kick off Codex agents on your machine from your phone. Check in on the train, review on the couch, merge from the park."
/>
)
}
File diff suppressed because it is too large Load Diff
+25
View File
@@ -0,0 +1,25 @@
import { createFileRoute } from '@tanstack/react-router'
import { LandingPage } from '~/components/landing-page'
export const Route = createFileRoute('/opencode')({
head: () => ({
meta: [
{ title: 'OpenCode Mobile App – Code from anywhere | Paseo' },
{
name: 'description',
content:
'Run OpenCode from your phone. Launch agents, watch them work, and ship code from wherever you are. Self-hosted, open source, your code stays local.',
},
],
}),
component: OpenCodePage,
})
function OpenCodePage() {
return (
<LandingPage
title="Run OpenCode from your phone"
subtitle="Launch agents, check on builds, and ship code from anywhere. Same setup, same machine, just not at your desk."
/>
)
}