feat(site): add Codernauts lunar lander game (#25001)

This commit is contained in:
Bartek Gatz
2026-05-06 17:50:46 +00:00
committed by GitHub
parent 92b1fc48b4
commit 894a1e0f7f
5 changed files with 2515 additions and 0 deletions
@@ -79,6 +79,28 @@ export const UserDropdownContent: FC<UserDropdownContentProps> = ({
))}
</>
)}
<DropdownMenuItem asChild>
<Link to="/coder-cup">
<svg
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
strokeWidth="1.5"
strokeLinecap="round"
strokeLinejoin="round"
xmlns="http://www.w3.org/2000/svg"
>
<path d="M7,10 L5,15 L19,15 L17,10 Z" />
<path d="M8,10 L9,7 L11,5 L13,5 L15,7 L16,10" />
<line x1="6" y1="15" x2="4" y2="19" />
<line x1="2" y1="19" x2="6" y2="19" />
<line x1="18" y1="15" x2="20" y2="19" />
<line x1="18" y1="19" x2="22" y2="19" />
<path d="M10,15 L10.5,18 L13.5,18 L14,15" />
</svg>
<span>Codernauts</span>
</Link>
</DropdownMenuItem>{" "}
<DropdownMenuSeparator />
<Tooltip disableHoverableContent>
<TooltipTrigger asChild>
@@ -0,0 +1,31 @@
import type { FC } from "react";
import { Link } from "react-router";
import { LunarLander } from "./LunarLander";
const CoderCupPage: FC = () => {
return (
<div className="relative w-screen h-screen bg-black overflow-hidden">
<title>Codernauts</title>
{/* Coder logo - links back to the main app */}
<Link
to="/workspaces"
className="absolute top-3 left-3 z-10 opacity-60 hover:opacity-100 transition-opacity"
>
<svg
fill="currentColor"
className="w-8 h-4 text-white"
viewBox="0 0 120 60"
xmlns="http://www.w3.org/2000/svg"
>
<title>Coder logo</title>
<path d="M34.5381 0C54.5335 6.29882e-05 65.7432 10.1355 66.122 25.0544L48.853 25.6216C48.3984 17.3514 41.544 11.9189 34.5381 12.0809C24.919 12.2836 17.7989 19.1351 17.7988 29.9999C17.7988 40.8648 24.919 47.5951 34.5381 47.5951C41.544 47.5945 48.2468 42.4055 49.0043 34.1352L66.2733 34.5408C65.8189 49.7027 53.9276 60 34.5381 60C15.1484 60 0 48.2433 0 29.9999C7.1014e-05 11.6757 14.5426 0 34.5381 0ZM120 1.7728V58.5299H74.5559V1.7728H120Z" />
</svg>
</Link>
<LunarLander />
</div>
);
};
export default CoderCupPage;
File diff suppressed because it is too large Load Diff
+26
View File
@@ -0,0 +1,26 @@
/**
* Codernaut roster.
*
* To change who appears in the game, edit the entries below.
*/
interface RosterEntry {
name: string;
role: string;
}
export const ROSTER: RosterEntry[] = [
{ name: "Marcin Tojek", role: "Senior Engineering Manager" },
{ name: "Ben Potter", role: "VP of Product" },
{ name: "Atif Ali", role: "Product Manager" },
{ name: "Jiachen Jiang", role: "Senior Product Manager" },
{ name: "David Fraley", role: "Product Manager" },
{ name: "Cian Johnston", role: "Staff Engineer" },
{ name: "Danielle Maywood", role: "Software Engineer" },
{ name: "Stephen Kirby", role: "Solutions Engineer" },
{ name: "Bartek Gatz", role: "Staff Product Manager" },
{ name: "Josh Epstein", role: "President & CBO" },
{ name: "Seth Shelnutt", role: "VP of Engineering" },
{ name: "Janessa Poole", role: "Chief of Staff" },
{ name: "Jessamyn Sweet", role: "Senior Product Marketing Manager" },
];
+2
View File
@@ -408,6 +408,7 @@ import {
AgentsPageSkeleton,
} from "./pages/AgentsPage/components/AgentsSkeletons";
const CoderCupPage = lazy(() => import("./pages/CoderCupPage/CoderCupPage"));
const TasksPage = lazy(() => import("./pages/TasksPage/TasksPage"));
const TaskPage = lazy(() => import("./pages/TaskPage/TaskPage"));
const AIBridgeLayout = lazy(
@@ -716,6 +717,7 @@ export const router = createBrowserRouter(
element={<TerminalPage />}
/>
<Route path="/cli-auth" element={<CliAuthPage />} />
<Route path="/coder-cup" element={<CoderCupPage />} />
<Route path="/icons" element={<IconsPage />} />
<Route path="/tasks/:username/:taskId" element={<TaskPage />} />
<Route