feat(website): replace the Cloud page with Paseo Hub
The Cloud page pitched a hosted multi-user product and collected emails through a signup form. The Hub is a self-hosted service in private beta and the only way in is a Discord DM, so the signup server function and its webhook are deleted rather than repointed. /cloud now 301s to /hub from the worker entry, which already owns the site's permanent path redirects, so old links and search results keep working. The homepage also drops split panels, service proxy, voice, and keyboard shortcuts. They had turned the page into a feature list; it should show what Paseo enables at a high level. Brand and provider icons move into shared modules so the Hub page, the site header, and the landing page each use one copy instead of three.
This commit is contained in:
@@ -26,6 +26,7 @@ import { Route as MinionCodeRouteImport } from "./routes/minion-code";
|
||||
import { Route as KimiRouteImport } from "./routes/kimi";
|
||||
import { Route as KiloRouteImport } from "./routes/kilo";
|
||||
import { Route as JunieRouteImport } from "./routes/junie";
|
||||
import { Route as HubRouteImport } from "./routes/hub";
|
||||
import { Route as HermesRouteImport } from "./routes/hermes";
|
||||
import { Route as GrokRouteImport } from "./routes/grok";
|
||||
import { Route as GooseRouteImport } from "./routes/goose";
|
||||
@@ -46,7 +47,6 @@ import { Route as CortexCodeRouteImport } from "./routes/cortex-code";
|
||||
import { Route as CopilotRouteImport } from "./routes/copilot";
|
||||
import { Route as CodexRouteImport } from "./routes/codex";
|
||||
import { Route as CodebuddyRouteImport } from "./routes/codebuddy";
|
||||
import { Route as CloudRouteImport } from "./routes/cloud";
|
||||
import { Route as ClineRouteImport } from "./routes/cline";
|
||||
import { Route as ClaudeCodeRouteImport } from "./routes/claude-code";
|
||||
import { Route as ChangelogRouteImport } from "./routes/changelog";
|
||||
@@ -154,6 +154,11 @@ const JunieRoute = JunieRouteImport.update({
|
||||
path: "/junie",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const HubRoute = HubRouteImport.update({
|
||||
id: "/hub",
|
||||
path: "/hub",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const HermesRoute = HermesRouteImport.update({
|
||||
id: "/hermes",
|
||||
path: "/hermes",
|
||||
@@ -254,11 +259,6 @@ const CodebuddyRoute = CodebuddyRouteImport.update({
|
||||
path: "/codebuddy",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const CloudRoute = CloudRouteImport.update({
|
||||
id: "/cloud",
|
||||
path: "/cloud",
|
||||
getParentRoute: () => rootRouteImport,
|
||||
} as any);
|
||||
const ClineRoute = ClineRouteImport.update({
|
||||
id: "/cline",
|
||||
path: "/cline",
|
||||
@@ -378,7 +378,6 @@ export interface FileRoutesByFullPath {
|
||||
"/changelog": typeof ChangelogRoute;
|
||||
"/claude-code": typeof ClaudeCodeRoute;
|
||||
"/cline": typeof ClineRoute;
|
||||
"/cloud": typeof CloudRoute;
|
||||
"/codebuddy": typeof CodebuddyRoute;
|
||||
"/codex": typeof CodexRoute;
|
||||
"/copilot": typeof CopilotRoute;
|
||||
@@ -399,6 +398,7 @@ export interface FileRoutesByFullPath {
|
||||
"/goose": typeof GooseRoute;
|
||||
"/grok": typeof GrokRoute;
|
||||
"/hermes": typeof HermesRoute;
|
||||
"/hub": typeof HubRoute;
|
||||
"/junie": typeof JunieRoute;
|
||||
"/kilo": typeof KiloRoute;
|
||||
"/kimi": typeof KimiRoute;
|
||||
@@ -438,7 +438,6 @@ export interface FileRoutesByTo {
|
||||
"/changelog": typeof ChangelogRoute;
|
||||
"/claude-code": typeof ClaudeCodeRoute;
|
||||
"/cline": typeof ClineRoute;
|
||||
"/cloud": typeof CloudRoute;
|
||||
"/codebuddy": typeof CodebuddyRoute;
|
||||
"/codex": typeof CodexRoute;
|
||||
"/copilot": typeof CopilotRoute;
|
||||
@@ -458,6 +457,7 @@ export interface FileRoutesByTo {
|
||||
"/goose": typeof GooseRoute;
|
||||
"/grok": typeof GrokRoute;
|
||||
"/hermes": typeof HermesRoute;
|
||||
"/hub": typeof HubRoute;
|
||||
"/junie": typeof JunieRoute;
|
||||
"/kilo": typeof KiloRoute;
|
||||
"/kimi": typeof KimiRoute;
|
||||
@@ -499,7 +499,6 @@ export interface FileRoutesById {
|
||||
"/changelog": typeof ChangelogRoute;
|
||||
"/claude-code": typeof ClaudeCodeRoute;
|
||||
"/cline": typeof ClineRoute;
|
||||
"/cloud": typeof CloudRoute;
|
||||
"/codebuddy": typeof CodebuddyRoute;
|
||||
"/codex": typeof CodexRoute;
|
||||
"/copilot": typeof CopilotRoute;
|
||||
@@ -520,6 +519,7 @@ export interface FileRoutesById {
|
||||
"/goose": typeof GooseRoute;
|
||||
"/grok": typeof GrokRoute;
|
||||
"/hermes": typeof HermesRoute;
|
||||
"/hub": typeof HubRoute;
|
||||
"/junie": typeof JunieRoute;
|
||||
"/kilo": typeof KiloRoute;
|
||||
"/kimi": typeof KimiRoute;
|
||||
@@ -562,7 +562,6 @@ export interface FileRouteTypes {
|
||||
| "/changelog"
|
||||
| "/claude-code"
|
||||
| "/cline"
|
||||
| "/cloud"
|
||||
| "/codebuddy"
|
||||
| "/codex"
|
||||
| "/copilot"
|
||||
@@ -583,6 +582,7 @@ export interface FileRouteTypes {
|
||||
| "/goose"
|
||||
| "/grok"
|
||||
| "/hermes"
|
||||
| "/hub"
|
||||
| "/junie"
|
||||
| "/kilo"
|
||||
| "/kimi"
|
||||
@@ -622,7 +622,6 @@ export interface FileRouteTypes {
|
||||
| "/changelog"
|
||||
| "/claude-code"
|
||||
| "/cline"
|
||||
| "/cloud"
|
||||
| "/codebuddy"
|
||||
| "/codex"
|
||||
| "/copilot"
|
||||
@@ -642,6 +641,7 @@ export interface FileRouteTypes {
|
||||
| "/goose"
|
||||
| "/grok"
|
||||
| "/hermes"
|
||||
| "/hub"
|
||||
| "/junie"
|
||||
| "/kilo"
|
||||
| "/kimi"
|
||||
@@ -682,7 +682,6 @@ export interface FileRouteTypes {
|
||||
| "/changelog"
|
||||
| "/claude-code"
|
||||
| "/cline"
|
||||
| "/cloud"
|
||||
| "/codebuddy"
|
||||
| "/codex"
|
||||
| "/copilot"
|
||||
@@ -703,6 +702,7 @@ export interface FileRouteTypes {
|
||||
| "/goose"
|
||||
| "/grok"
|
||||
| "/hermes"
|
||||
| "/hub"
|
||||
| "/junie"
|
||||
| "/kilo"
|
||||
| "/kimi"
|
||||
@@ -744,7 +744,6 @@ export interface RootRouteChildren {
|
||||
ChangelogRoute: typeof ChangelogRoute;
|
||||
ClaudeCodeRoute: typeof ClaudeCodeRoute;
|
||||
ClineRoute: typeof ClineRoute;
|
||||
CloudRoute: typeof CloudRoute;
|
||||
CodebuddyRoute: typeof CodebuddyRoute;
|
||||
CodexRoute: typeof CodexRoute;
|
||||
CopilotRoute: typeof CopilotRoute;
|
||||
@@ -765,6 +764,7 @@ export interface RootRouteChildren {
|
||||
GooseRoute: typeof GooseRoute;
|
||||
GrokRoute: typeof GrokRoute;
|
||||
HermesRoute: typeof HermesRoute;
|
||||
HubRoute: typeof HubRoute;
|
||||
JunieRoute: typeof JunieRoute;
|
||||
KiloRoute: typeof KiloRoute;
|
||||
KimiRoute: typeof KimiRoute;
|
||||
@@ -912,6 +912,13 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof JunieRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/hub": {
|
||||
id: "/hub";
|
||||
path: "/hub";
|
||||
fullPath: "/hub";
|
||||
preLoaderRoute: typeof HubRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/hermes": {
|
||||
id: "/hermes";
|
||||
path: "/hermes";
|
||||
@@ -1052,13 +1059,6 @@ declare module "@tanstack/react-router" {
|
||||
preLoaderRoute: typeof CodebuddyRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/cloud": {
|
||||
id: "/cloud";
|
||||
path: "/cloud";
|
||||
fullPath: "/cloud";
|
||||
preLoaderRoute: typeof CloudRouteImport;
|
||||
parentRoute: typeof rootRouteImport;
|
||||
};
|
||||
"/cline": {
|
||||
id: "/cline";
|
||||
path: "/cline";
|
||||
@@ -1244,7 +1244,6 @@ const rootRouteChildren: RootRouteChildren = {
|
||||
ChangelogRoute: ChangelogRoute,
|
||||
ClaudeCodeRoute: ClaudeCodeRoute,
|
||||
ClineRoute: ClineRoute,
|
||||
CloudRoute: CloudRoute,
|
||||
CodebuddyRoute: CodebuddyRoute,
|
||||
CodexRoute: CodexRoute,
|
||||
CopilotRoute: CopilotRoute,
|
||||
@@ -1265,6 +1264,7 @@ const rootRouteChildren: RootRouteChildren = {
|
||||
GooseRoute: GooseRoute,
|
||||
GrokRoute: GrokRoute,
|
||||
HermesRoute: HermesRoute,
|
||||
HubRoute: HubRoute,
|
||||
JunieRoute: JunieRoute,
|
||||
KiloRoute: KiloRoute,
|
||||
KimiRoute: KimiRoute,
|
||||
|
||||
Reference in New Issue
Block a user