import "~/styles/globals.css"; import "~/utils/i18n"; import type { Viewport } from "next"; import type { AppType } from "next/app"; import { Plus_Jakarta_Sans } from "next/font/google"; import Script from "next/script"; import { env } from "next-runtime-env"; import posthog from "posthog-js"; import { PostHogProvider } from "posthog-js/react"; import { useEffect } from "react"; import { LinguiProviderWrapper } from "~/providers/lingui"; import { ModalProvider } from "~/providers/modal"; import { PopupProvider } from "~/providers/popup"; import { ThemeProvider } from "~/providers/theme"; import { api } from "~/utils/api"; const jakarta = Plus_Jakarta_Sans({ subsets: ["latin"], display: "swap", }); export const metadata = { title: "Kan", description: "The open source Trello alternative", icons: [{ rel: "icon", url: "/favicon.ico" }], }; export const viewport: Viewport = { width: "device-width", initialScale: 1, maximumScale: 1, userScalable: false, }; const MyApp: AppType = ({ Component, pageProps }) => { const posthogKey = env("NEXT_PUBLIC_POSTHOG_KEY"); useEffect(() => { if (posthogKey) { posthog.init(posthogKey, { api_host: env("NEXT_PUBLIC_POSTHOG_HOST"), person_profiles: "identified_only", defaults: "2025-05-24", loaded: (posthog) => { if (process.env.NODE_ENV === "development") posthog.debug(); }, }); } }, [posthogKey]); return ( <> {env("NEXT_PUBLIC_UMAMI_ID") && (