import { createFileRoute, Link } from "@tanstack/react-router";
import { CtaBand } from "~/components/marketing/CtaBand";
import { MarketingHero } from "~/components/marketing/MarketingHero";
import { FEATURE_CATALOG } from "~/lib/marketing/catalog";
import { featurePage } from "~/lib/marketing/features";
import { buttonClass } from "~/ui/Button";
import { PageContainer } from "~/ui/PageContainer";
import { TextLink } from "~/ui/TextLink";
import { seo } from "~/utils/seo";
export const Route = createFileRoute("/features/")({
head: ({ match }) => ({
meta: seo({
origin: match.context.publicUrl,
path: "/features",
title: "Features · gitfor",
description: "Code hosting, review, CI/CD, planning, a browser editor, security scanning and site hosting.",
}),
}),
component: FeaturesPage,
});
function FeaturesPage() {
return (
<>
<MarketingHero
title="What is gitfor?"
lede="An open-source forge: Git hosting with code review, CI/CD, planning, a browser editor, security scanning and site hosting. Here is everything it does, grouped by area."
actions={
<>
<Link to="/signup" className={buttonClass("primary")}>
Create an account
</Link>
<Link to="/self-host" className={buttonClass("secondary")}>
Self-host gitfor
</Link>
</>
}
/>
<PageContainer className="space-y-20 pb-24">