diff --git a/apps/server/src/routes/files/index.ts b/apps/server/src/routes/files/index.ts
index a90fdf3..ca226b2 100644
--- a/apps/server/src/routes/files/index.ts
+++ b/apps/server/src/routes/files/index.ts
@@ -14,7 +14,6 @@ import { handleUploadError, sendError, sendSuccess } from "../utils";
import { createDriveProviderRouter } from "../../hono";
import { zValidator } from "@hono/zod-validator";
import { FileService } from "./file-service";
-import { Readable } from "node:stream";
const fileService = new FileService();
const filesRouter = createDriveProviderRouter()
diff --git a/apps/web/src/app/(public)/(legal)/privacy/page.tsx b/apps/web/src/app/(public)/(legal)/privacy/page.tsx
index 1573964..5bacb5b 100644
--- a/apps/web/src/app/(public)/(legal)/privacy/page.tsx
+++ b/apps/web/src/app/(public)/(legal)/privacy/page.tsx
@@ -24,7 +24,7 @@ export default function PrivacyPage() {
Privacy Policy
-
+
Your privacy is important to us. It is {COMPANY_NAME}'s policy to respect your privacy and comply
diff --git a/apps/web/src/app/(public)/(legal)/terms/page.tsx b/apps/web/src/app/(public)/(legal)/terms/page.tsx
index d7d6757..286e6bc 100644
--- a/apps/web/src/app/(public)/(legal)/terms/page.tsx
+++ b/apps/web/src/app/(public)/(legal)/terms/page.tsx
@@ -18,7 +18,7 @@ export default function TermsPage() {
Terms of Service
-
+
These Terms of Service govern your use of the website located at{" "}
diff --git a/apps/web/src/app/sitemap.ts b/apps/web/src/app/sitemap.ts
index 5491238..1fe1275 100644
--- a/apps/web/src/app/sitemap.ts
+++ b/apps/web/src/app/sitemap.ts
@@ -32,5 +32,17 @@ export default function sitemap(): MetadataRoute.Sitemap {
changeFrequency: "monthly",
priority: 0.7,
},
+ {
+ url: buildUrl("/terms"),
+ lastModified: now,
+ changeFrequency: "yearly",
+ priority: 0.7,
+ },
+ {
+ url: buildUrl("/privacy"),
+ lastModified: now,
+ changeFrequency: "yearly",
+ priority: 0.7,
+ },
];
}
diff --git a/apps/web/src/components/auth/shared/auth-provider-buttons.tsx b/apps/web/src/components/auth/shared/auth-provider-buttons.tsx
index f87bebf..65b3f2b 100644
--- a/apps/web/src/components/auth/shared/auth-provider-buttons.tsx
+++ b/apps/web/src/components/auth/shared/auth-provider-buttons.tsx
@@ -22,7 +22,6 @@ export function AuthProviderButtons({
onProviderClick,
isLoading: externalIsLoading,
action,
- showS3Button = false,
callbackURL,
onAuthSuccess,
onS3Click,
@@ -107,7 +106,7 @@ export function AuthProviderButtons({
>
{getIsLoading("microsoft") && }
- {/*
+ {/*
;
-
-export default function BgAngels({ className, alt }: BgAngelsProps) {
- return (
- <>
-
-
- >
- );
-}
diff --git a/apps/web/src/components/home/footer.tsx b/apps/web/src/components/home/footer.tsx
index 49cc91f..845b0b9 100644
--- a/apps/web/src/components/home/footer.tsx
+++ b/apps/web/src/components/home/footer.tsx
@@ -10,10 +10,18 @@ export default function Footer() {
-
+
Terms of Use
-
+
Privacy Policy
diff --git a/apps/web/src/components/home/header.tsx b/apps/web/src/components/home/header.tsx
index 66cecdf..792ffdd 100644
--- a/apps/web/src/components/home/header.tsx
+++ b/apps/web/src/components/home/header.tsx
@@ -2,7 +2,7 @@
import { DiscordIcon, GitHubIcon, LogoIcon, XPlatformIcon } from "@/components/icons";
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
-import { ModeToggle } from "@/components/mode-toggle";
+import { authClient } from "@nimbus/auth/auth-client";
import { Button } from "@/components/ui/button";
import { Users } from "lucide-react";
import Link from "next/link";
@@ -31,7 +31,7 @@ export default function Header() {
- X (Twitter)
-
+ {!authClient.useSession().data?.session ? (
+
+
+ Sign In
+
+
+ ) : (
+
+
+ Go to Nimbus
+
+
+ )}
);
diff --git a/apps/web/src/components/home/hero.tsx b/apps/web/src/components/home/hero.tsx
index d229b34..8ae6013 100644
--- a/apps/web/src/components/home/hero.tsx
+++ b/apps/web/src/components/home/hero.tsx
@@ -1,13 +1,12 @@
import { AnimatedGroup } from "@/components/ui/animated-group";
-import BgAngels from "@/components/brand-assets/bg-angels";
-import { WaitlistForm } from "@/components/home/waitlist";
import HeroLight from "@/public/images/hero-light.png";
import HeroDark from "@/public/images/hero-dark.png";
-import { useIsMobile } from "@/hooks/use-mobile";
import Header from "@/components/home/header";
import { type Variants } from "motion/react";
+import { Button } from "../ui/button";
import Image from "next/image";
import Footer from "./footer";
+import Link from "next/link";
const transitionVariants: { item: Variants } = {
item: {
@@ -29,30 +28,16 @@ const transitionVariants: { item: Variants } = {
};
export default function Hero() {
- const isMobile = useIsMobile();
-
return (
- {isMobile && (
-
- )}
-
-
-
-
-
-
-
-
-
Cloud you can actually{" "}
@@ -65,7 +50,18 @@ export default function Hero() {
-
+
+
+
+ Source Code
+
+
+
+
+ Sign In
+
+
+
diff --git a/apps/web/src/components/providers/route-guard.tsx b/apps/web/src/components/providers/route-guard.tsx
index b986106..bda3fbf 100644
--- a/apps/web/src/components/providers/route-guard.tsx
+++ b/apps/web/src/components/providers/route-guard.tsx
@@ -31,15 +31,6 @@ export function RouteGuard({ children, requireAuth = false, redirectTo = "/signi
}
}, [session, isPending, requireAuth, redirectTo, router]);
- // Show loading state while checking auth
- if (isPending) {
- return (
-
-
-
- );
- }
-
// Allow rendering if no auth requirement, or if authenticated
const isAuthenticated = !!session?.user;
const shouldRender = !requireAuth || isAuthenticated;
diff --git a/bun.lock b/bun.lock
index 8c12f02..f9f26ef 100644
--- a/bun.lock
+++ b/bun.lock
@@ -128,7 +128,7 @@
"@nimbus/db": "workspace:*",
"@nimbus/env": "workspace:*",
"@upstash/redis": "^1.35.2",
- "better-auth": "^1.3.0",
+ "better-auth": "^1.3.4",
"drizzle-orm": "^0.44.4",
"iovalkey": "^0.3.3",
"resend": "^4.7.0",
diff --git a/packages/auth/src/auth.ts b/packages/auth/src/auth.ts
index fbfd47b..1f1541d 100644
--- a/packages/auth/src/auth.ts
+++ b/packages/auth/src/auth.ts
@@ -3,7 +3,6 @@ import type { Redis as UpstashRedis } from "@upstash/redis/cloudflare";
import { drizzleAdapter } from "better-auth/adapters/drizzle";
import schema, { user as userTable } from "@nimbus/db/schema";
import type { Redis as ValkeyRedis } from "iovalkey";
-import { genericOAuth } from "better-auth/plugins";
import type { RedisClient } from "@nimbus/cache";
import { sendMail } from "./utils/send-mail";
import { type DB } from "@nimbus/db";