diff --git a/app/components/theme-debug.tsx b/app/components/theme-debug.tsx
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/app/components/theme-debug.tsx
@@ -0,0 +1,2 @@
+
+
diff --git a/app/components/theme-logo.tsx b/app/components/theme-logo.tsx
new file mode 100644
index 0000000..6c5898d
--- /dev/null
+++ b/app/components/theme-logo.tsx
@@ -0,0 +1,36 @@
+"use client"
+
+import { useTheme } from "next-themes"
+import { useEffect, useState } from "react"
+
+export function ThemeLogo() {
+ const { theme } = useTheme()
+ const [mounted, setMounted] = useState(false)
+
+ useEffect(() => {
+ setMounted(true)
+ }, [])
+
+ if (!mounted) {
+ // Return light theme logo by default to avoid hydration mismatch
+ return (
+
+ )
+ }
+
+ const logoSrc = theme === "dark"
+ ? "/firecrawl-logo-with-fire-dark.webp"
+ : "/firecrawl-logo-with-fire.webp"
+
+ return (
+
+ )
+}
diff --git a/app/components/theme-provider.tsx b/app/components/theme-provider.tsx
new file mode 100644
index 0000000..8c90fbc
--- /dev/null
+++ b/app/components/theme-provider.tsx
@@ -0,0 +1,9 @@
+"use client"
+
+import * as React from "react"
+import { ThemeProvider as NextThemesProvider } from "next-themes"
+import { type ThemeProviderProps } from "next-themes/dist/types"
+
+export function ThemeProvider({ children, ...props }: ThemeProviderProps) {
+ return