diff --git a/src/app/conf/2025/register-today/index.tsx b/src/app/conf/2025/register-today/index.tsx
new file mode 100644
index 0000000000..3aaf09cae4
--- /dev/null
+++ b/src/app/conf/2025/register-today/index.tsx
@@ -0,0 +1,52 @@
+import { clsx } from "clsx"
+import NextImage from "next-image-export-optimizer"
+
+import { Button } from "../../_design-system/button"
+
+import speakerImage from "./speaker.webp"
+
+export interface RegisterTodayProps {
+ className?: string
+}
+
+export function RegisterToday({ className }: RegisterTodayProps) {
+ return (
+
+ {/* todo: test if the placeholder works in deploy preview */}
+
+
+
+
+ Let's celebrate 10 years of GraphQL together
+
+
+ Join three transformative days of expert insights and innovation to
+ shape the next decade of APIs!
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/src/app/conf/2025/register-today/speaker.webp b/src/app/conf/2025/register-today/speaker.webp
new file mode 100644
index 0000000000..2d3d18a35b
Binary files /dev/null and b/src/app/conf/2025/register-today/speaker.webp differ
diff --git a/src/app/conf/_design-system/button.tsx b/src/app/conf/_design-system/button.tsx
index af1220cf49..8663ce59aa 100644
--- a/src/app/conf/_design-system/button.tsx
+++ b/src/app/conf/_design-system/button.tsx
@@ -56,7 +56,7 @@ export type ButtonProps =
export function Button(props: ButtonProps) {
const className = clsx(
- "relative flex items-center justify-center gap-2.5 font-normal text-base/none text-neu-0 bg-neu-900 hover:bg-neu-800 active:bg-neu-700 font-sans h-14 px-8 data-[size=md]:h-12 data-[variant=secondary]:bg-neu-100 data-[variant=secondary]:text-neu-900 dark:data-[variant=secondary]:text-neu-0 data-[variant=secondary]:hover:bg-neu-200/75 data-[variant=secondary]:active:bg-neu-200/90",
+ "relative flex items-center justify-center gap-2.5 font-normal text-base/none text-neu-0 bg-neu-900 hover:bg-neu-800 active:bg-neu-700 font-sans h-14 px-8 data-[size=md]:h-12 data-[variant=secondary]:bg-neu-100 data-[variant=secondary]:text-neu-900 dark:data-[variant=secondary]:text-neu-0 data-[variant=secondary]:hover:bg-neu-200/75 data-[variant=secondary]:active:bg-neu-200/90 gql-focus-visible",
props.className,
)
diff --git a/src/globals.css b/src/globals.css
index 4d74f4b054..51a9927ef4 100644
--- a/src/globals.css
+++ b/src/globals.css
@@ -503,3 +503,7 @@ div[id^="headlessui-menu-items"] {
@apply text-xl;
@apply dark:border-neutral-700/80;
}
+
+.gql-focus-visible {
+ @apply focus-visible:outline-neu-900 focus-visible:outline-offset-[5px];
+}