Skip to content

Commit bd52389

Browse files
Codexclaude
andcommitted
refactor(apps/landing): remove landing page, redirect / → /practice
Removes the marketing landing page and all its exclusive components, API routes, and tests. The root route now redirects to /practice. Components shared with the practice surface (section-heading, signal-card, reveal, footer-manifest, theme.ts) are retained. content.ts is kept in full since the `practice` export is the source of truth for all practice surface data. Deleted: archetype-grid, bottleneck-diagram, cluster-section, hero-section, live-signal-preview, palette-panel, reality-section, site-header, snippet-wall, token-surface, token-thesis-section, api/og, api/live-signal, semantic-bridge, content.test.ts (landing-only assertions). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent e04dcf7 commit bd52389

18 files changed

Lines changed: 6 additions & 1261 deletions

apps/landing/next-env.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/// <reference types="next" />
22
/// <reference types="next/image-types/global" />
3-
import "./.next/types/routes.d.ts";
3+
import "./.next/dev/types/routes.d.ts";
44

55
// NOTE: This file should not be edited
66
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

apps/landing/src/app/api/live-signal/route.ts

Lines changed: 0 additions & 14 deletions
This file was deleted.

apps/landing/src/app/api/og/route.tsx

Lines changed: 0 additions & 177 deletions
This file was deleted.

apps/landing/src/app/layout.tsx

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,25 +54,19 @@ export const metadata: Metadata = {
5454
url: "/",
5555
siteName: "$wetware",
5656
images: [
57-
{
58-
url: "/api/og",
59-
width: 1200,
60-
height: 630,
61-
alt: "Organoid Symbiont preview image",
62-
},
6357
{
6458
url: "/og-fallback.svg",
6559
width: 1200,
6660
height: 630,
67-
alt: "Organoid Symbiont fallback preview image",
61+
alt: "Organoid Symbiont preview image",
6862
},
6963
],
7064
},
7165
twitter: {
7266
card: "summary_large_image",
7367
title: "$wetware",
7468
description: "$wetware as a bio-digital signal object for the seam between substrate and interface.",
75-
images: ["/api/og", "/og-fallback.svg"],
69+
images: ["/og-fallback.svg"],
7670
},
7771
icons: {
7872
icon: "/icon.svg",

apps/landing/src/app/page.tsx

Lines changed: 3 additions & 139 deletions
Original file line numberDiff line numberDiff line change
@@ -1,141 +1,5 @@
1-
import { ArchetypeGrid } from "@/components/archetype-grid";
2-
import { BiohybridRealitySection } from "@/components/reality-section";
3-
import { BottleneckDiagram } from "@/components/bottleneck-diagram";
4-
import { ClusterSection } from "@/components/cluster-section";
5-
import { FooterManifest } from "@/components/footer-manifest";
6-
import { HeroSection } from "@/components/hero-section";
7-
import { TokenSurface } from "@/components/token-surface";
8-
import { PalettePanel } from "@/components/palette-panel";
9-
import { LiveSignalPreview } from "@/components/live-signal-preview";
10-
import { SectionHeading } from "@/components/section-heading";
11-
import { SignalCard } from "@/components/signal-card";
12-
import { SiteHeader } from "@/components/site-header";
13-
import { SnippetWall } from "@/components/snippet-wall";
14-
import { TokenThesisSection } from "@/components/token-thesis-section";
15-
import { content } from "@/lib/content";
16-
import { Reveal } from "@/components/reveal";
1+
import { redirect } from "next/navigation";
172

18-
export default function HomePage() {
19-
return (
20-
<main className="relative isolate overflow-hidden">
21-
<SiteHeader />
22-
23-
<div className="mx-auto flex w-full max-w-7xl flex-col gap-10 px-6 pb-20 pt-6 sm:px-8 lg:px-10 lg:pb-28">
24-
<HeroSection />
25-
<TokenSurface />
26-
27-
<section id="wetware" className="scroll-mt-24">
28-
<Reveal>
29-
<SectionHeading
30-
eyebrow={content.sections.wetware.eyebrow}
31-
title={content.sections.wetware.title}
32-
description={content.sections.wetware.description}
33-
/>
34-
</Reveal>
35-
<div className="mt-8 grid gap-4 lg:grid-cols-12">
36-
{content.sections.wetware.points.map((point, index) => {
37-
const spanClass =
38-
index === 0
39-
? "lg:col-span-7"
40-
: index === 1
41-
? "lg:col-span-5"
42-
: "lg:col-span-6 lg:col-start-7";
43-
44-
return (
45-
<Reveal key={point.title} delay={index * 90}>
46-
<SignalCard
47-
tone={point.tone}
48-
eyebrow={point.eyebrow}
49-
title={point.title}
50-
body={point.body}
51-
className={spanClass}
52-
/>
53-
</Reveal>
54-
);
55-
})}
56-
</div>
57-
</section>
58-
59-
<section id="hype" className="scroll-mt-24">
60-
<Reveal>
61-
<SectionHeading
62-
eyebrow={content.sections.hype.eyebrow}
63-
title={content.sections.hype.title}
64-
description={content.sections.hype.description}
65-
/>
66-
</Reveal>
67-
<ClusterSection />
68-
</section>
69-
70-
<section id="bottlenecks" className="scroll-mt-24">
71-
<Reveal>
72-
<SectionHeading
73-
eyebrow={content.sections.bottlenecks.eyebrow}
74-
title={content.sections.bottlenecks.title}
75-
description={content.sections.bottlenecks.description}
76-
/>
77-
</Reveal>
78-
<BottleneckDiagram />
79-
</section>
80-
81-
<section id="reality" className="scroll-mt-24">
82-
<Reveal>
83-
<SectionHeading
84-
eyebrow={content.sections.reality.eyebrow}
85-
title={content.sections.reality.title}
86-
description={content.sections.reality.description}
87-
/>
88-
</Reveal>
89-
<BiohybridRealitySection />
90-
</section>
91-
92-
<section id="archetypes" className="scroll-mt-24">
93-
<Reveal>
94-
<SectionHeading
95-
eyebrow={content.sections.archetypes.eyebrow}
96-
title={content.sections.archetypes.title}
97-
description={content.sections.archetypes.description}
98-
/>
99-
</Reveal>
100-
<ArchetypeGrid />
101-
</section>
102-
103-
<section id="snippets" className="scroll-mt-24">
104-
<Reveal>
105-
<SectionHeading
106-
eyebrow={content.sections.snippets.eyebrow}
107-
title={content.sections.snippets.title}
108-
description={content.sections.snippets.description}
109-
/>
110-
</Reveal>
111-
<SnippetWall />
112-
</section>
113-
114-
<section id="palette" className="scroll-mt-24">
115-
<Reveal>
116-
<SectionHeading
117-
eyebrow={content.sections.palette.eyebrow}
118-
title={content.sections.palette.title}
119-
description={content.sections.palette.description}
120-
/>
121-
</Reveal>
122-
<PalettePanel />
123-
</section>
124-
125-
<section id="token" className="scroll-mt-24">
126-
<Reveal>
127-
<SectionHeading
128-
eyebrow={content.sections.token.eyebrow}
129-
title={content.sections.token.title}
130-
description={content.sections.token.description}
131-
/>
132-
</Reveal>
133-
<TokenThesisSection />
134-
</section>
135-
136-
<FooterManifest />
137-
<LiveSignalPreview />
138-
</div>
139-
</main>
140-
);
3+
export default function RootPage() {
4+
redirect("/practice");
1415
}

0 commit comments

Comments
 (0)