"use client"; import { useState } from "react"; type State = | { kind: "idle" } | { kind: "sending" } | { kind: "ok"; message: string; model: string } | { kind: "error"; message: string }; export default function SubmitPage() { const [model, setModel] = useState(""); const [notes, setNotes] = useState(""); const [state, setState] = useState({ kind: "idle" }); async function onSubmit(e: React.FormEvent) { e.preventDefault(); setState({ kind: "sending" }); try { const res = await fetch("/api/submit", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ model, notes }), }); const data = await res.json(); if (!res.ok) { setState({ kind: "error", message: data.error ?? "Something went wrong.", }); return; } setState({ kind: "ok", message: data.message, model: data.model }); setModel(""); setNotes(""); } catch { setState({ kind: "error", message: "Network error." }); } } const busy = state.kind === "sending"; return (

Suggest a model

Share a Hugging Face model you think belongs in the lab. Karti reviews every suggestion, inspects the files and license, and decides what to run. Nothing is downloaded or executed automatically. No account needed.

setModel(e.target.value)} placeholder="Qwen/Qwen3-8B" required spellCheck={false} className="mt-3 w-full border border-rule bg-void px-4 py-3 font-mono text-sm text-ink outline-none transition-colors placeholder:text-dimmer focus:border-signal" />

`owner/model`, or paste the full huggingface.co URL.