022eb78440
app/[locale]/manifesto/page.tsx: 358 LOC -> 22-LOC composition shell.
components/manifesto/sections/:
- hero.tsx
- pain-points.tsx
- indistinguishable.tsx (the 'AI vs senior engineer' argument)
- token-cost.tsx
- cognitive-load.tsx
- principles.tsx
- core-loop.tsx
- future.tsx
- final-cta.tsx
Each section 26-68 LOC. Copy unchanged; section order unchanged.
Same i18n namespace ('manifesto'). Renders identically to baseline
in all 4 locales (en/ko/ja/zh).
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import type { JSX } from "react"
|
|
import { getTranslations } from "next-intl/server"
|
|
import { ArrowRight } from "lucide-react"
|
|
import { Button } from "@/components/ui/button"
|
|
import { Link } from "@/i18n/routing"
|
|
|
|
export async function FinalCtaSection(): Promise<JSX.Element> {
|
|
const t = await getTranslations("manifesto")
|
|
|
|
return (
|
|
<section
|
|
data-section="manifesto-final-cta"
|
|
className="from-primary/10 to-background bg-gradient-to-t px-6 py-32 text-center"
|
|
>
|
|
<div className="space-y-8">
|
|
<h2 className="text-foreground text-6xl font-black tracking-tighter md:text-8xl">
|
|
{t("finalCta.title")}
|
|
</h2>
|
|
|
|
<Button size="lg" className="rounded-full px-8 py-6 text-lg" asChild>
|
|
<Link
|
|
href="https://github.com/code-yeongyu/oh-my-openagent"
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
{t("finalCta.button")} <ArrowRight className="ml-2 h-5 w-5" />
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
</section>
|
|
)
|
|
}
|