import type { Metadata } from "next"; import NextLink from "next/link"; import { redirect } from "next/navigation"; import { Link } from "@unlocalhosted/metalui"; import { SignupForm } from "@/components/auth-forms"; import { BRAND } from "@/components/brand"; import { KeyIcon, PencilIcon, PeopleIcon } from "@/components/icons"; import { Box } from "@/components/ui"; import { getViewer, safeNext } from "@/lib/auth"; import { SIGNUPS_ENABLED } from "@/lib/signups"; export const metadata: Metadata = { title: "Join" }; const perks = [ { icon: PeopleIcon, title: "Collaborate", text: "Invite collaborators and keep repositories public or private." }, { icon: PencilIcon, title: "Edit in the browser", text: "Create, edit and upload files without leaving the page." }, { icon: KeyIcon, title: "Push your way", text: "Use SSH keys or scoped API tokens with plain git." }, ]; export default async function SignupPage({ searchParams }: PageProps<"/signup">) { const next = safeNext((await searchParams).next); if (await getViewer()) redirect(next); return (

Join {BRAND.name}

Start growing
something great.

Your own place to host, review and ship code.

    {perks.map((p) => (
  • {p.title}
    {p.text}
  • ))}

Create your account

{SIGNUPS_ENABLED ? ( ) : (

Sign-ups are closed on this instance. Ask an administrator for an account, or{" "} }>sign in.

)}
); }