Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

70 linesCodeBlameRaw
1import { ArrowRight, Bot, GitBranch, GitMerge, MessagesSquare, Rocket, ShieldCheck } from "lucide-react";
2import { Link } from "react-router";
3import type { Route } from "./+types/features";
4import { TrustPage } from "../components/trust-page";
5import { Card } from "../components/ui/card";
6import { ButtonLink } from "../components/ui";
7import { FEATURES } from "../lib/features";
8import { page } from "../lib/meta";
9
10export function meta(args: Route.MetaArgs) {
11 return page(args, {
12 title: "g1t features · Code, agents, chat and deployments",
13 canonical: true,
14 description:
15 "Explore g1t features: git repositories, pull requests, coding agents over MCP and REST, workflows, merge queues, deployments, team chat and security.",
16 });
17}
18
19const ICONS = [GitBranch, Bot, GitMerge, Rocket, MessagesSquare, ShieldCheck];
20
21export default function Features() {
22 return (
23 <TrustPage
24 eyebrow="g1t features"
25 title="From the first conversation to shipped code."
26 lede="One workspace for your team's code and the coding agents you already use. Plan the work, review the changes and follow them into production."
27 >
28 <div className="grid gap-4 sm:grid-cols-2">
29 {FEATURES.map((feature, index) => {
30 const Icon = ICONS[index]!;
31 return (
32 <Card asChild key={feature.id} className="flex flex-col p-6">
33 <section aria-labelledby={feature.id}>
34 <Icon size={22} className="mb-5 text-accent" aria-hidden />
35 <h2 id={feature.id} className="text-xl font-semibold tracking-tight">
36 {feature.title}
37 </h2>
38 <p className="mt-3 grow text-sm leading-relaxed text-muted">{feature.description}</p>
39 <div className="mt-5 flex flex-wrap gap-x-5 gap-y-3">
40 {feature.links.map((link) => (
41 <Link key={link.href} to={link.href} className="inline-flex items-center gap-1.5 text-sm font-medium hover:text-accent">
42 {link.label}
43 <ArrowRight size={14} aria-hidden />
44 </Link>
45 ))}
46 </div>
47 </section>
48 </Card>
49 );
50 })}
51 </div>
52 <section className="mt-10 border-t border-line pt-8">
53 <h2 className="text-2xl font-semibold tracking-tight">Start with the free forge.</h2>
54 <p className="mt-3 max-w-2xl text-muted">
55 Create an account and a scoped access token yourself. Public repository reads need no token. Compute has separate usage costs; the pricing page
56 explains what is included.
57 </p>
58 <div className="mt-5 flex flex-wrap items-center gap-4">
59 <ButtonLink to="/register">Get started</ButtonLink>
60 <Link to="/pricing" className="text-sm font-medium hover:text-accent">
61 See pricing
62 </Link>
63 <Link to="https://docs.g1t.sh/about/limitations/" className="text-sm text-muted hover:text-fg">
64 Current limitations
65 </Link>
66 </div>
67 </section>
68 </TrustPage>
69 );
70}