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.

51 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: "Explore g1t features: git repositories, pull requests, coding agents over MCP and REST, workflows, merge queues, deployments, team chat and security.",
15 });
16}
17
18const ICONS = [GitBranch, Bot, GitMerge, Rocket, MessagesSquare, ShieldCheck];
19
20export default function Features() {
21 return (
22 <TrustPage eyebrow="g1t features" title="From the first conversation to shipped code." 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.">
23 <div className="grid gap-4 sm:grid-cols-2">
24 {FEATURES.map((feature, index) => {
25 const Icon = ICONS[index]!;
26 return (
27 <Card asChild key={feature.id} className="flex flex-col p-6">
28 <section aria-labelledby={feature.id}>
29 <Icon size={22} className="mb-5 text-accent" aria-hidden />
30 <h2 id={feature.id} className="text-xl font-semibold tracking-tight">{feature.title}</h2>
31 <p className="mt-3 grow text-sm leading-relaxed text-muted">{feature.description}</p>
32 <div className="mt-5 flex flex-wrap gap-x-5 gap-y-3">
33 {feature.links.map((link) => <Link key={link.href} to={link.href} className="inline-flex items-center gap-1.5 text-sm font-medium hover:text-accent">{link.label}<ArrowRight size={14} aria-hidden /></Link>)}
34 </div>
35 </section>
36 </Card>
37 );
38 })}
39 </div>
40 <section className="mt-10 border-t border-line pt-8">
41 <h2 className="text-2xl font-semibold tracking-tight">Start with the free forge.</h2>
42 <p className="mt-3 max-w-2xl text-muted">Create an account and a scoped access token yourself. Public repository reads need no token. Compute has separate usage costs; the pricing page explains what is included.</p>
43 <div className="mt-5 flex flex-wrap items-center gap-4">
44 <ButtonLink to="/register">Get started</ButtonLink>
45 <Link to="/pricing" className="text-sm font-medium hover:text-accent">See pricing</Link>
46 <Link to="https://docs.g1t.sh/about/limitations/" className="text-sm text-muted hover:text-fg">Current limitations</Link>
47 </div>
48 </section>
49 </TrustPage>
50 );
51}