diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs
index 9baf3f7..ea00be0 100644
--- a/apps/web/next.config.mjs
+++ b/apps/web/next.config.mjs
@@ -5,6 +5,7 @@ const withMDX = createMDX();
/** @type {import('next').NextConfig} */
const config = {
reactStrictMode: true,
+ typedRoutes: true,
images: {
remotePatterns: [
{ protocol: "https", hostname: "pbs.twimg.com" },
diff --git a/apps/web/package.json b/apps/web/package.json
index a53b736..605e64c 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -18,27 +18,27 @@
"@better-t-stack/backend": "workspace:*",
"@erquhart/convex-oss-stats": "^0.8.1",
"@number-flow/react": "^0.5.10",
- "@opennextjs/cloudflare": "^1.6.3",
- "@orama/orama": "^3.1.11",
- "@radix-ui/react-dropdown-menu": "^2.1.15",
- "@radix-ui/react-hover-card": "^1.1.14",
- "babel-plugin-react-compiler": "^19.1.0-rc.2",
+ "@opennextjs/cloudflare": "^1.6.5",
+ "@orama/orama": "^3.1.12",
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
+ "@radix-ui/react-hover-card": "^1.1.15",
+ "babel-plugin-react-compiler": "^19.1.0-rc.3",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
- "convex": "^1.25.4",
+ "convex": "^1.26.2",
"convex-helpers": "^0.1.104",
"date-fns": "^4.1.0",
- "fumadocs-core": "15.6.7",
- "fumadocs-mdx": "11.7.3",
- "fumadocs-ui": "15.6.7",
- "lucide-react": "^0.536.0",
+ "fumadocs-core": "15.7.5",
+ "fumadocs-mdx": "11.8.1",
+ "fumadocs-ui": "15.7.5",
+ "lucide-react": "^0.542.0",
"motion": "^12.23.12",
- "next": "15.3.5",
+ "next": "15.5.2",
"next-themes": "^0.4.6",
- "nuqs": "^2.4.3",
+ "nuqs": "^2.5.1",
"papaparse": "^5.5.3",
- "posthog-js": "^1.258.5",
- "radix-ui": "^1.4.2",
+ "posthog-js": "^1.261.0",
+ "radix-ui": "^1.4.3",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react-tweet": "^3.2.2",
@@ -46,23 +46,23 @@
"remark": "^15.0.1",
"remark-gfm": "^4.0.1",
"remark-mdx": "^3.1.0",
- "shiki": "^3.9.1",
- "sonner": "^2.0.6",
+ "shiki": "^3.12.0",
+ "sonner": "^2.0.7",
"tailwind-merge": "^3.3.1"
},
"devDependencies": {
- "@tailwindcss/postcss": "^4.1.11",
+ "@tailwindcss/postcss": "^4.1.12",
"@types/mdx": "^2.0.13",
- "@types/node": "24.1.0",
+ "@types/node": "24.3.0",
"@types/papaparse": "^5.3.16",
- "@types/react": "^19.1.9",
- "@types/react-dom": "^19.1.7",
- "eslint": "^9.32.0",
- "eslint-config-next": "15.4.5",
+ "@types/react": "^19.1.12",
+ "@types/react-dom": "^19.1.9",
+ "eslint": "^9.34.0",
+ "eslint-config-next": "15.5.2",
"postcss": "^8.5.6",
- "tailwindcss": "^4.1.11",
- "tw-animate-css": "^1.3.6",
+ "tailwindcss": "^4.1.12",
+ "tw-animate-css": "^1.3.7",
"typescript": "^5.9.2",
- "wrangler": "^4.27.0"
+ "wrangler": "^4.33.1"
}
}
diff --git a/apps/web/src/app/(home)/_components/navbar.tsx b/apps/web/src/app/(home)/_components/navbar.tsx
deleted file mode 100644
index a5199e2..0000000
--- a/apps/web/src/app/(home)/_components/navbar.tsx
+++ /dev/null
@@ -1,261 +0,0 @@
-"use client";
-import { Github, Heart, Maximize2, Menu, X } from "lucide-react";
-import { AnimatePresence, motion } from "motion/react";
-import Image from "next/image";
-import Link from "next/link";
-import { useEffect, useState } from "react";
-import { ThemeToggle } from "@/components/theme-toggle";
-import { cn } from "@/lib/utils";
-import PackageIcon from "./icons";
-
-export default function Navbar() {
- const [scrolled, setScrolled] = useState(false);
- const [mobileMenuOpen, setMobileMenuOpen] = useState(false);
-
- useEffect(() => {
- const handleScroll = () => {
- setScrolled(window.scrollY > 10);
- };
-
- window.addEventListener("scroll", handleScroll);
- handleScroll();
-
- return () => window.removeEventListener("scroll", handleScroll);
- }, []);
-
- useEffect(() => {
- if (mobileMenuOpen) {
- document.body.style.overflow = "hidden";
- } else {
- document.body.style.overflow = "";
- }
- return () => {
- document.body.style.overflow = "";
- };
- }, [mobileMenuOpen]);
-
- const closeMobileMenu = () => setMobileMenuOpen(false);
-
- const desktopNavLinks = [
- {
- href: "/",
- label: "Home",
- icon: ~/,
- },
- {
- href: "https://my-better-t-app-client.pages.dev/",
- label: "Demo",
- target: "_blank",
- },
- { href: "/showcase", label: "Showcase" },
- {
- href: "/analytics",
- label: "Analytics",
- },
- { href: "/docs", label: "Docs" },
- {
- href: "https://www.npmjs.com/package/create-better-t-stack",
- label: "NPM",
- icon: