diff --git a/frontend/src/pages/home/Home.test.tsx b/frontend/src/pages/home/Home.test.tsx
index 116d7e1c..3340a8db 100644
--- a/frontend/src/pages/home/Home.test.tsx
+++ b/frontend/src/pages/home/Home.test.tsx
@@ -149,6 +149,15 @@ describe("Home", () => {
renderWithProviders();
expect(screen.getByText("Leaderboards")).toBeInTheDocument();
+ expect(
+ screen.getByText(/GPU MODE's mission is to make high-performance/i),
+ ).toBeInTheDocument();
+ expect(screen.getByText(/Core Automation/i)).toBeInTheDocument();
+ expect(screen.getByText(/Northflank/i)).toBeInTheDocument();
+ expect(screen.getByRole("link", { name: /reach out/i })).toHaveAttribute(
+ "href",
+ "mailto:mark@gpumode.com",
+ );
expect(screen.getByText("test-leaderboard")).toBeInTheDocument();
expect(screen.getByText("T4, L4")).toBeInTheDocument();
expect(screen.getByText("alice")).toBeInTheDocument();
diff --git a/frontend/src/pages/home/Home.tsx b/frontend/src/pages/home/Home.tsx
index 46fc4079..6089ecc5 100644
--- a/frontend/src/pages/home/Home.tsx
+++ b/frontend/src/pages/home/Home.tsx
@@ -122,6 +122,41 @@ export default function Home() {
return (
+
+
+ GPU MODE's mission is to make high-performance GPU programming
+ more accessible.
+
+ We rely on donations and sponsorships to fund community compute,
+ lectures, kernel competitions, working groups, and events.
+
+ Thank you to Modal, Core Automation, and Northflank for supporting
+ us. To sponsor GPU MODE, please{" "}
+
+ reach out
+
+ .
+
+
Leaderboards
diff --git a/frontend/src/pages/lectures/Lectures.tsx b/frontend/src/pages/lectures/Lectures.tsx
index 3e26bdaf..b5317a15 100644
--- a/frontend/src/pages/lectures/Lectures.tsx
+++ b/frontend/src/pages/lectures/Lectures.tsx
@@ -1,7 +1,8 @@
import { Box, Typography, Link, Chip } from "@mui/material";
import type { Theme } from "@mui/material/styles";
import { useEffect, useState } from "react";
-import { fetchEvents, DiscordEvent } from "../../api/api";
+import { fetchEvents } from "../../api/api";
+import type { DiscordEvent } from "../../api/api";
import Loading from "../../components/common/loading";
const styles = {
diff --git a/frontend/src/tests/setup.ts b/frontend/src/tests/setup.ts
index ee72373a..257a7e9a 100644
--- a/frontend/src/tests/setup.ts
+++ b/frontend/src/tests/setup.ts
@@ -2,6 +2,20 @@ import { afterEach } from "vitest";
import { cleanup } from "@testing-library/react";
import "@testing-library/jest-dom/vitest";
+Object.defineProperty(window, "matchMedia", {
+ writable: true,
+ value: (query: string) => ({
+ matches: false,
+ media: query,
+ onchange: null,
+ addListener: () => {},
+ removeListener: () => {},
+ addEventListener: () => {},
+ removeEventListener: () => {},
+ dispatchEvent: () => false,
+ }),
+});
+
// runs a clean after each test case (e.g. clearing jsdom)
afterEach(() => {
cleanup();