diff --git a/landing/app/blog/[[...slug]]/page.tsx b/landing/app/blog/[[...slug]]/page.tsx
index 5b99029c38..016e62a1ca 100644
--- a/landing/app/blog/[[...slug]]/page.tsx
+++ b/landing/app/blog/[[...slug]]/page.tsx
@@ -25,9 +25,7 @@ function BlogList() {
.getPages()
.filter((p) => !p.data.draft)
.sort((a, b) => {
- return (
- new Date(b.data.date).getTime() - new Date(a.data.date).getTime()
- );
+ return new Date(b.data.date).getTime() - new Date(a.data.date).getTime();
});
return (
diff --git a/landing/app/layout.tsx b/landing/app/layout.tsx
index dc7c4e9372..1e0f4abe28 100644
--- a/landing/app/layout.tsx
+++ b/landing/app/layout.tsx
@@ -28,8 +28,16 @@ export const metadata: Metadata = {
icons: {
icon: [
{ url: "https://docs.better-auth.com/favicon/favicon.ico", sizes: "any" },
- { url: "https://docs.better-auth.com/favicon/favicon-32x32.png", sizes: "32x32", type: "image/png" },
- { url: "https://docs.better-auth.com/favicon/favicon-16x16.png", sizes: "16x16", type: "image/png" },
+ {
+ url: "https://docs.better-auth.com/favicon/favicon-32x32.png",
+ sizes: "32x32",
+ type: "image/png",
+ },
+ {
+ url: "https://docs.better-auth.com/favicon/favicon-16x16.png",
+ sizes: "16x16",
+ type: "image/png",
+ },
],
apple: "https://docs.better-auth.com/favicon/apple-touch-icon.png",
},
diff --git a/landing/app/pricing/pricing-client.tsx b/landing/app/pricing/pricing-client.tsx
index e06e2a69fd..ed8ad3f771 100644
--- a/landing/app/pricing/pricing-client.tsx
+++ b/landing/app/pricing/pricing-client.tsx
@@ -307,9 +307,9 @@ function PricingHero() {
{tier.price}
{tier.note && (
-
- {tier.note}
-
+
+ {tier.note}
+
)}
@@ -330,10 +330,10 @@ function PricingHero() {
}}
className="flex items-baseline justify-between py-1.5 border-b border-dashed border-foreground/[0.06] last:border-0"
>
-
- {item.label}
-
-
+
+ {item.label}
+
+
{item.value}
@@ -407,9 +407,9 @@ function PricingCard({
{tier.name}
{isHighlighted && (
-
- popular
-
+
+ popular
+
)}
@@ -423,9 +423,9 @@ function PricingCard({
{tier.price}
{tier.priceNote && (
-
- {tier.priceNote}
-
+
+ {tier.priceNote}
+
)}
@@ -512,21 +512,21 @@ export function PricingPageClient() {
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.3, delay: 0.05 }}
>
-
-
- # Framework
-
-
+
+
+ # Framework
+
+
-
- Community
-
-
+
+ Community
+
+
open source
@@ -567,11 +567,11 @@ export function PricingPageClient() {
animate={{ opacity: 1 }}
transition={{ duration: 0.4, delay: 0.15 }}
>
-
-
- # Infrastructure
-
-
+
+
+ # Infrastructure
+
+
{/* Pricing Cards */}
@@ -587,8 +587,8 @@ export function PricingPageClient() {
{" "}
An event is any auth action tracked by the dashboard —
sign-ins, sign-ups, session refreshes, password resets, OTP
- verifications, and more. Each API call that triggers an
- auth action counts as one event.
+ verifications, and more. Each API call that triggers an auth
+ action counts as one event.
@@ -599,9 +599,9 @@ export function PricingPageClient() {
animate={{ opacity: 1, y: 0 }}
transition={{ duration: 0.3, delay: 0.45 }}
>
-
- # feature comparison
-
+
+ # feature comparison
+
@@ -615,8 +615,8 @@ export function PricingPageClient() {
key={name}
className={`text-center text-[11px] uppercase tracking-widest font-mono font-normal py-3 px-3 w-[18%] ${
name === "Pro"
-? "text-foreground/80 bg-foreground/[0.025]"
- : "text-foreground/60 dark:text-foreground/40"
+ ? "text-foreground/80 bg-foreground/[0.025]"
+ : "text-foreground/60 dark:text-foreground/40"
}`}
>
{name}
diff --git a/landing/components/blog/blog-left-panel.tsx b/landing/components/blog/blog-left-panel.tsx
index 1a44897b19..b1b49f1351 100644
--- a/landing/components/blog/blog-left-panel.tsx
+++ b/landing/components/blog/blog-left-panel.tsx
@@ -1,8 +1,6 @@
import Link from "next/link";
-import { HalftoneBackground } from "@/components/landing/halftone-bg";
-import { BlogTOC } from "./blog-toc";
-
import type { ReactNode } from "react";
+import { HalftoneBackground } from "@/components/landing/halftone-bg";
interface BlogPostData {
title: string;
@@ -96,17 +94,13 @@ export function BlogLeftPanel({ postCount, post }: BlogLeftPanelProps) {
{post.author?.name && (
-
- {post.author.name}
-
+ {post.author.name}
)}
{post.author?.name && post.date && (
·
)}
{post.date && {formatDate(post.date)} }
-
-
diff --git a/landing/components/docs/docs-sidebar.tsx b/landing/components/docs/docs-sidebar.tsx
index 1bb55068cd..7179c3744f 100644
--- a/landing/components/docs/docs-sidebar.tsx
+++ b/landing/components/docs/docs-sidebar.tsx
@@ -226,12 +226,12 @@ function BranchSwitcher() {
"flex w-full items-center gap-2 px-3 py-2 text-[12px] transition-colors",
branch === "main"
? "text-foreground bg-foreground/5"
-: "text-foreground/60 hover:text-foreground hover:bg-foreground/3",
- )}
- onClick={() => switchBranch("main")}
- >
- main
-
+ : "text-foreground/60 hover:text-foreground hover:bg-foreground/3",
+ )}
+ onClick={() => switchBranch("main")}
+ >
+ main
+
Stable
@@ -241,9 +241,9 @@ function BranchSwitcher() {
"flex w-full items-center gap-2 px-3 py-2 text-[12px] transition-colors",
branch === "canary"
? "text-foreground bg-foreground/5"
-: "text-foreground/60 hover:text-foreground hover:bg-foreground/3",
- )}
- onClick={() => switchBranch("canary")}
+ : "text-foreground/60 hover:text-foreground hover:bg-foreground/3",
+ )}
+ onClick={() => switchBranch("canary")}
>
canary
-
+ className="text-foreground/50"
+ >
+
diff --git a/landing/components/docs/stepper-toc.tsx b/landing/components/docs/stepper-toc.tsx
index 905971da00..64e0def347 100644
--- a/landing/components/docs/stepper-toc.tsx
+++ b/landing/components/docs/stepper-toc.tsx
@@ -157,8 +157,8 @@ export function StepperTOC({ items, children }: StepperTOCProps) {
isActive
? "text-foreground"
: isVisible
-? "text-foreground/60"
- : "text-foreground/40 group-hover:text-foreground/65"
+ ? "text-foreground/60"
+ : "text-foreground/40 group-hover:text-foreground/65"
}
`}
>
@@ -229,8 +229,8 @@ export function StepperTOC({ items, children }: StepperTOCProps) {
{sub.title}
diff --git a/landing/components/landing/halftone-bg.tsx b/landing/components/landing/halftone-bg.tsx
index cecae50133..7dccf835f9 100644
--- a/landing/components/landing/halftone-bg.tsx
+++ b/landing/components/landing/halftone-bg.tsx
@@ -277,10 +277,7 @@ export function HalftoneBackground() {
className="absolute inset-0 overflow-hidden bg-background"
aria-hidden="true"
>
-
+
);
}
diff --git a/landing/components/landing/hero-readme.tsx b/landing/components/landing/hero-readme.tsx
index 9602b37cd3..242cea2b96 100644
--- a/landing/components/landing/hero-readme.tsx
+++ b/landing/components/landing/hero-readme.tsx
@@ -1535,7 +1535,10 @@ export function HeroReadMe({
- Better Auth is an authentication and authorization framework. It provides a comprehensive set of features out of the box and includes a Plugin ecosystem that simplifies adding advanced functionalities and infrastructure to help own your auth at scale.
+ Better Auth is an authentication and authorization framework. It
+ provides a comprehensive set of features out of the box and
+ includes a Plugin ecosystem that simplifies adding advanced
+ functionalities and infrastructure to help own your auth at scale.
diff --git a/landing/components/landing/staggered-nav-files.tsx b/landing/components/landing/staggered-nav-files.tsx
index bb17d45f79..df7aa2232a 100644
--- a/landing/components/landing/staggered-nav-files.tsx
+++ b/landing/components/landing/staggered-nav-files.tsx
@@ -3,7 +3,7 @@
import { AnimatePresence, MotionConfig, motion } from "framer-motion";
import { ChevronDownIcon } from "lucide-react";
import Link from "next/link";
-import { usePathname } from "next/navigation";
+import { usePathname, useRouter } from "next/navigation";
import { useCallback, useRef, useState } from "react";
import { cn } from "@/lib/utils";
import DarkPng from "../../public/branding/better-auth-logo-dark.png";
@@ -12,9 +12,7 @@ import { Logo } from "../icons/logo";
import { contents } from "../sidebar-content";
import { Badge } from "../ui/badge";
import LogoContextMenu from "./logo-context-menu";
-import { Button } from "../ui/button";
-import { useRouter } from "next/navigation";
-
+
interface NavFileItem {
name: string;
href: string;
@@ -130,7 +128,7 @@ export function StaggeredNavFiles() {
const dropdownBorderClass = isNarrowLeft
? "border-foreground/6"
: "border-foreground/[0.08]";
- const router = useRouter();
+ const _router = useRouter();
return (
<>
@@ -266,10 +264,10 @@ export function StaggeredNavFiles() {
className={`font-mono text-xs uppercase tracking-wider transition-colors duration-150 whitespace-nowrap ${
active
? "text-foreground"
-: "text-foreground/65 dark:text-foreground/50 group-hover/tab:text-foreground/75"
- }`}
- >
- {item.name}
+ : "text-foreground/65 dark:text-foreground/50 group-hover/tab:text-foreground/75"
+ }`}
+ >
+ {item.name}
@@ -300,10 +298,10 @@ export function StaggeredNavFiles() {
? "text-foreground"
: resourcesOpen
? "text-foreground/80"
-: "text-foreground/65 dark:text-foreground/50 group-hover/tab:text-foreground/75"
- }`}
- >
- resources
+ : "text-foreground/65 dark:text-foreground/50 group-hover/tab:text-foreground/75"
+ }`}
+ >
+ resources
- setMobileDocSection((prev) =>
+ : "text-foreground/70 hover:text-foreground hover:bg-foreground/3",
+ )}
+ onClick={() =>
+ setMobileDocSection((prev) =>
prev === index ? -1 : index,
)
}
@@ -568,10 +566,10 @@ className="p-1.5 text-foreground/55 dark:text-foreground/40 hover:text-foregroun
"relative flex items-center gap-2.5 px-5 py-1.5 text-[14px] transition-all duration-150",
pathname === section.href
? "text-foreground bg-foreground/6"
-: "text-foreground/75 dark:text-foreground/60 hover:text-foreground/90 hover:bg-foreground/3",
- )}
- >
- Overview
+ : "text-foreground/75 dark:text-foreground/60 hover:text-foreground/90 hover:bg-foreground/3",
+ )}
+ >
+ Overview
)}
{section.list.map((item, i) => {
@@ -603,15 +601,15 @@ className="p-1.5 text-foreground/55 dark:text-foreground/40 hover:text-foregroun
"relative flex items-center gap-2.5 px-5 py-1.5 text-[14px] transition-all duration-150",
active
? "text-foreground bg-foreground/6"
-: "text-foreground/75 dark:text-foreground/60 hover:text-foreground/90 hover:bg-foreground/3",
- )}
- >
- svg]:size-[14px] transition-colors duration-150",
- active
- ? "text-foreground"
- : "text-foreground/75 dark:text-foreground/60",
+ : "text-foreground/75 dark:text-foreground/60 hover:text-foreground/90 hover:bg-foreground/3",
+ )}
+ >
+ svg]:size-[14px] transition-colors duration-150",
+ active
+ ? "text-foreground"
+ : "text-foreground/75 dark:text-foreground/60",
)}
>
@@ -695,8 +693,8 @@ className="p-1.5 text-foreground/55 dark:text-foreground/40 hover:text-foregroun
isActive(item.path || item.href) ||
(item.href === "/docs" && isDocs)
? "text-foreground"
-: "text-foreground/75 dark:text-foreground/60"
- }`}
+ : "text-foreground/75 dark:text-foreground/60"
+ }`}
>
{item.name}
@@ -725,11 +723,11 @@ className="p-1.5 text-foreground/55 dark:text-foreground/40 hover:text-foregroun
}}
className="px-5 pt-4"
>
- setMobileMenuOpen(false)}
- className="flex items-center justify-center gap-1.5 w-full py-3 bg-foreground text-background font-mono text-sm uppercase tracking-wider transition-opacity hover:opacity-90"
- >
+ setMobileMenuOpen(false)}
+ className="flex items-center justify-center gap-1.5 w-full py-3 bg-foreground text-background font-mono text-sm uppercase tracking-wider transition-opacity hover:opacity-90"
+ >
get-started