From 3b0e25bdd059e6c479c78f113d6ad6523b7cf06e Mon Sep 17 00:00:00 2001 From: Swami Malode Date: Sun, 5 Apr 2026 01:58:04 +0530 Subject: [PATCH 1/7] navbar fixed --- apps/docs/app/global.css | 2 +- apps/docs/components/github-nav-mark.tsx | 2 +- apps/docs/components/nav-link.tsx | 2 +- apps/docs/components/navbar-features-menu.tsx | 6 ++--- .../components/navbar-github-desktop-link.tsx | 4 +-- apps/docs/components/navbar.tsx | 25 ++++++++++++------- apps/docs/components/theme-toggle.tsx | 8 +++--- 7 files changed, 27 insertions(+), 22 deletions(-) diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index c0f5e568b..eda147770 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -148,7 +148,7 @@ } .dark { - --background: #19191D; + --background: #27282D; --foreground: #E7E8EB; --card: #1E1E23; --card-foreground: #E7E8EB; diff --git a/apps/docs/components/github-nav-mark.tsx b/apps/docs/components/github-nav-mark.tsx index 46ea74f5e..070f4b75b 100644 --- a/apps/docs/components/github-nav-mark.tsx +++ b/apps/docs/components/github-nav-mark.tsx @@ -27,7 +27,7 @@ export type GithubStarsBadgeProps = { stars: number }; export function GithubStarsBadge({ stars }: GithubStarsBadgeProps) { return ( {stars.toLocaleString()} ★ diff --git a/apps/docs/components/nav-link.tsx b/apps/docs/components/nav-link.tsx index 15e520ed5..fd2dddd3d 100644 --- a/apps/docs/components/nav-link.tsx +++ b/apps/docs/components/nav-link.tsx @@ -31,7 +31,7 @@ export function NavLink({ href, children, className, external }: NavLinkProps) { return ( setOpen((prev) => !prev)} onKeyDown={handleKeyDown} diff --git a/apps/docs/components/navbar-github-desktop-link.tsx b/apps/docs/components/navbar-github-desktop-link.tsx index dfd309774..1100d4905 100644 --- a/apps/docs/components/navbar-github-desktop-link.tsx +++ b/apps/docs/components/navbar-github-desktop-link.tsx @@ -14,8 +14,8 @@ export function NavbarGithubDesktopLink({ }: NavbarGithubDesktopLinkProps) { return ( - - + + {typeof stars === "number" && } diff --git a/apps/docs/components/navbar.tsx b/apps/docs/components/navbar.tsx index 70f299bdd..4c7bf313d 100644 --- a/apps/docs/components/navbar.tsx +++ b/apps/docs/components/navbar.tsx @@ -23,18 +23,18 @@ export const Navbar = ({ stars }: NavbarProps) => { return ( <> -
+
diff --git a/apps/docs/components/theme-toggle.tsx b/apps/docs/components/theme-toggle.tsx index c15717cf9..566ee1669 100644 --- a/apps/docs/components/theme-toggle.tsx +++ b/apps/docs/components/theme-toggle.tsx @@ -25,7 +25,7 @@ export function ThemeToggle({ className }: ThemeToggleProps) { return ( - - - - Cookieless by design. No fingerprints, no consent banner. - B2B research on 1.2M+ interactions found 68.9% of cookie - banners closed or ignored.{" "} - - Advance Metrics - - - - - no consent banners. - +
+ {/* */} + +
+
+

+ Privacy-first analytics. One script, no cookies ,no consent banners.

- -

+

Web analytics, error tracking, and feature flags in a single script under 30 KB. GDPR compliant out of the box.{" "} -

+ {/*

{" "} for your traffic. -

+

*/} -
+
Start free @@ -171,7 +131,7 @@ export default function Hero({
-

+ {/*

Used by 400+ teams · {stars ? ( @@ -181,12 +141,12 @@ export default function Hero({ ) : null} Open source -

+

*/}
-
+
-
+
{tabs.map((tab) => { const isActive = activeTab === tab.id; return ( @@ -211,7 +171,7 @@ export default function Hero({
-
+
{tabs.map((tab) => { const isActive = activeTab === tab.id; diff --git a/apps/docs/components/navbar-github-desktop-link.tsx b/apps/docs/components/navbar-github-desktop-link.tsx index 1100d4905..55fc3c4c5 100644 --- a/apps/docs/components/navbar-github-desktop-link.tsx +++ b/apps/docs/components/navbar-github-desktop-link.tsx @@ -14,7 +14,7 @@ export function NavbarGithubDesktopLink({ }: NavbarGithubDesktopLinkProps) { return ( - + {typeof stars === "number" && } diff --git a/apps/docs/components/navbar.tsx b/apps/docs/components/navbar.tsx index 139bc06c0..18f1ea440 100644 --- a/apps/docs/components/navbar.tsx +++ b/apps/docs/components/navbar.tsx @@ -1,7 +1,7 @@ "use client"; import Link from "next/link"; -import { useState } from "react"; +import { useEffect, useState } from "react"; import { BrandContextMenu } from "@/components/brand-context-menu"; import { ThemeToggle } from "@/components/theme-toggle"; import { Logo } from "./logo"; @@ -20,10 +20,28 @@ export interface NavbarProps { export const Navbar = ({ stars }: NavbarProps) => { const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); + const [isScrolled, setIsScrolled] = useState(false); + + useEffect(() => { + const onScroll = () => { + setIsScrolled(window.scrollY > 8); + }; + + onScroll(); + window.addEventListener("scroll", onScroll, { passive: true }); + + return () => { + window.removeEventListener("scroll", onScroll); + }; + }, []); return ( <> -
+
-
+ /> */} ); }; From cb381ba03a7c4eac9fb480ba1614161a63822ad3 Mon Sep 17 00:00:00 2001 From: Swami Malode Date: Tue, 7 Apr 2026 21:01:11 +0530 Subject: [PATCH 4/7] trustedby section progress --- apps/docs/app/(home)/page.tsx | 4 +- apps/docs/components/landing/trusted-by.tsx | 117 ++++++++------------ 2 files changed, 48 insertions(+), 73 deletions(-) diff --git a/apps/docs/app/(home)/page.tsx b/apps/docs/app/(home)/page.tsx index 11a7fb5c0..df29d4d33 100644 --- a/apps/docs/app/(home)/page.tsx +++ b/apps/docs/app/(home)/page.tsx @@ -74,11 +74,11 @@ export default async function HomePage() {
-
+
diff --git a/apps/docs/components/landing/trusted-by.tsx b/apps/docs/components/landing/trusted-by.tsx index 3f778d0a4..48970f978 100644 --- a/apps/docs/components/landing/trusted-by.tsx +++ b/apps/docs/components/landing/trusted-by.tsx @@ -1,7 +1,4 @@ -"use client"; - import Image from "next/image"; -import { cn } from "@/lib/utils"; const industryLeaders = [ { @@ -47,81 +44,59 @@ const industryLeaders = [ }, ]; -// const engineerCompanies = [{ name: "Vercel" }, { name: "Mintlify" }]; - -function MarqueeItem({ company }: { company: (typeof industryLeaders)[0] }) { - return ( - - {company.name} - {company.description && ( - - {company.description} - - )} - - ); +interface LogoGroupProps { + title: string; } -export function TrustedBy() { +const LogoGroup = ({ title }: LogoGroupProps) => { return ( -
-
-

- Trusted by developers at -

+
+

+ {title} +

-
-
-
+
+ {industryLeaders.slice(0, 3).map((company, index) => ( + + {company.name} + + ))} -
-
- {industryLeaders.map((company) => ( - - ))} -
-
- {industryLeaders.map((company) => ( - - ))} -
-
+ {/* 4th slot — "+N more" */} +
+ + +{industryLeaders.length - 3} more +
+
+ ); +}; - {/*
-

- Trusted by engineers from -

- -
- {engineerCompanies.map((company) => ( -
- - {company.name} - -
- ))} -
-
*/} +export const TrustedBy = () => { + return ( +
+
+ + + +
); -} +}; + +export default TrustedBy; From d2db27628d02acc71dc8e735e47f0065c2d4d814 Mon Sep 17 00:00:00 2001 From: Swami Malode Date: Thu, 9 Apr 2026 18:01:23 +0530 Subject: [PATCH 5/7] FAQ section done --- apps/docs/app/global.css | 35 ++++++ .../components/landing/backgroundFlow.tsx | 98 +++++++-------- apps/docs/components/landing/faq-section.tsx | 63 +++++----- apps/docs/components/landing/hero.tsx | 4 +- apps/docs/components/landing/trusted-by.tsx | 113 ++++++++++++++++-- apps/docs/components/nav-link.tsx | 2 +- .../components/navbar-github-desktop-link.tsx | 2 +- apps/docs/components/ui/accordion.tsx | 2 +- 8 files changed, 226 insertions(+), 93 deletions(-) diff --git a/apps/docs/app/global.css b/apps/docs/app/global.css index eda147770..bff2d734b 100644 --- a/apps/docs/app/global.css +++ b/apps/docs/app/global.css @@ -701,3 +701,38 @@ body { .animate-marquee { animation: marquee 25s linear infinite; } + +/* FAQ section hover and open state styles */ +.accordion-item { + position: relative; + border-top: 1px solid var(--border); + background: color-mix(in oklab, var(--background) 50%, transparent); + transition: background 0.2s; +} + +.accordion-item:hover { + background: color-mix(in oklab, var(--background) 80%, transparent); +} + +.accordion-item::before { + content: ''; + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 3px; + background: linear-gradient( + to bottom, + #facc15, + #ec4899, + #6366f1 + ); + + opacity: 0; + transition: opacity 0.2s; +} + +.accordion-item:hover::before, +.accordion-item[data-state="open"]::before { + opacity: 1; +} \ No newline at end of file diff --git a/apps/docs/components/landing/backgroundFlow.tsx b/apps/docs/components/landing/backgroundFlow.tsx index a5fe75896..7daaf5b05 100644 --- a/apps/docs/components/landing/backgroundFlow.tsx +++ b/apps/docs/components/landing/backgroundFlow.tsx @@ -1,6 +1,6 @@ const backgroundFlow = () => { return ( -
+
{ viewBox="0 0 2215 1865" xmlns="http://www.w3.org/2000/svg" > - + - + - + - + - + { result="shape" /> { result="shape" /> { result="shape" /> { result="shape" /> { result="shape" /> diff --git a/apps/docs/components/landing/faq-section.tsx b/apps/docs/components/landing/faq-section.tsx index b57445b48..524fb87f0 100644 --- a/apps/docs/components/landing/faq-section.tsx +++ b/apps/docs/components/landing/faq-section.tsx @@ -27,39 +27,38 @@ export function FaqSection({ className, }: FaqSectionProps) { return ( -
-
-

- {title} -

- {subtitle ? ( -

- {subtitle} -

- ) : null} -
+
+
+ {/* Left: sticky title block */} +
+

+ {title} +

+ {subtitle ? ( +

+ {subtitle} +

+ ) : null} +
- - {items.map((faq) => ( - - - {faq.question} - - - {faq.answer} - - - ))} - + {/* Right: accordion */} + + {items.map((faq) => ( + + + {faq.question} + + + {faq.answer} + + + ))} + +
); } diff --git a/apps/docs/components/landing/hero.tsx b/apps/docs/components/landing/hero.tsx index 828062b4d..8d5a0d6d9 100644 --- a/apps/docs/components/landing/hero.tsx +++ b/apps/docs/components/landing/hero.tsx @@ -84,9 +84,9 @@ export default function Hero({
{/* */} -
+
-

+

Privacy-first analytics. One script, no cookies ,no consent banners.

diff --git a/apps/docs/components/landing/trusted-by.tsx b/apps/docs/components/landing/trusted-by.tsx index 48970f978..60ee2ef43 100644 --- a/apps/docs/components/landing/trusted-by.tsx +++ b/apps/docs/components/landing/trusted-by.tsx @@ -1,6 +1,94 @@ import Image from "next/image"; -const industryLeaders = [ +const juneCustomers = [ + { + name: "Open (YC W24)", + url: "https://open.cx", + logo: "/social/opencx-black.svg", + invert: true, + description: "AI-Powered customer support platform", + }, + { + name: "Autumn (S25)", + url: "https://useautumn.com", + logo: "/social/autumn.svg", + logoClass: "h-8 sm:h-10", + invert: false, + description: "Monetization infrastructure for developers", + }, + { + name: "Better Auth (YC X25)", + url: "https://www.better-auth.com", + logo: "/social/better-auth.svg", + invert: true, + description: "The #1 Authentication framework for TypeScript", + }, + { + name: "OpenCut", + url: "https://opencut.app", + logo: "/social/opencut.svg", + invert: true, + description: "Open source video editor", + }, + { + name: "Maza", + url: "https://maza.vc", + logo: "/social/maza.svg", + description: "Venture Capital Fund", + }, + { + name: "Figurable", + url: "https://figurable.ai", + logo: "/social/figurable.svg", + invert: true, + }, +]; + +const analyticsMigrators = [ + { + name: "Open (YC W24)", + url: "https://open.cx", + logo: "/social/opencx-black.svg", + invert: true, + description: "AI-Powered customer support platform", + }, + { + name: "Autumn (S25)", + url: "https://useautumn.com", + logo: "/social/autumn.svg", + logoClass: "h-8 sm:h-10", + invert: false, + description: "Monetization infrastructure for developers", + }, + { + name: "Better Auth (YC X25)", + url: "https://www.better-auth.com", + logo: "/social/better-auth.svg", + invert: true, + description: "The #1 Authentication framework for TypeScript", + }, + { + name: "OpenCut", + url: "https://opencut.app", + logo: "/social/opencut.svg", + invert: true, + description: "Open source video editor", + }, + { + name: "Maza", + url: "https://maza.vc", + logo: "/social/maza.svg", + description: "Venture Capital Fund", + }, + { + name: "Figurable", + url: "https://figurable.ai", + logo: "/social/figurable.svg", + invert: true, + }, +]; + +const migratedOffOthers = [ { name: "Open (YC W24)", url: "https://open.cx", @@ -46,9 +134,17 @@ const industryLeaders = [ interface LogoGroupProps { title: string; + companies: { + name: string; + url: string; + logo: string; + invert?: boolean; + description?: string; + logoClass?: string; + }[]; } -const LogoGroup = ({ title }: LogoGroupProps) => { +const LogoGroup = ({ title, companies }: LogoGroupProps) => { return (

@@ -56,7 +152,7 @@ const LogoGroup = ({ title }: LogoGroupProps) => {

- {industryLeaders.slice(0, 3).map((company, index) => ( + {companies.slice(0, 3).map((company, index) => ( { {/* 4th slot — "+N more" */}
- +{industryLeaders.length - 3} more + +{companies.length - 3} more
@@ -91,9 +187,12 @@ export const TrustedBy = () => { return (
- - - + + +
); diff --git a/apps/docs/components/nav-link.tsx b/apps/docs/components/nav-link.tsx index bb3fd2a2f..961667ee6 100644 --- a/apps/docs/components/nav-link.tsx +++ b/apps/docs/components/nav-link.tsx @@ -31,7 +31,7 @@ export function NavLink({ href, children, className, external }: NavLinkProps) { return ( - + {typeof stars === "number" && } diff --git a/apps/docs/components/ui/accordion.tsx b/apps/docs/components/ui/accordion.tsx index dca2a9098..8904c4b9c 100644 --- a/apps/docs/components/ui/accordion.tsx +++ b/apps/docs/components/ui/accordion.tsx @@ -83,7 +83,7 @@ function AccordionTrigger({ {children} From 6eab7fb6c3854c171ba0a0330d0f889ee9622756 Mon Sep 17 00:00:00 2001 From: Swami Malode Date: Thu, 9 Apr 2026 23:29:36 +0530 Subject: [PATCH 6/7] added bunny and newsletter section fixes --- apps/docs/components/footer.tsx | 8 +- apps/docs/components/landing/hero.tsx | 195 +++++++++----------- apps/docs/components/landing/wordmark.tsx | 2 +- apps/docs/components/newsletter-form.tsx | 12 +- apps/docs/public/brand/gradients/cta-bg.png | Bin 0 -> 5773145 bytes 5 files changed, 102 insertions(+), 115 deletions(-) create mode 100644 apps/docs/public/brand/gradients/cta-bg.png diff --git a/apps/docs/components/footer.tsx b/apps/docs/components/footer.tsx index 5b9e60912..e99168748 100644 --- a/apps/docs/components/footer.tsx +++ b/apps/docs/components/footer.tsx @@ -13,7 +13,7 @@ import { NewsletterForm } from "./newsletter-form"; export function Footer() { return (