diff --git a/apps/www/app/(www)/login/_components/Login.tsx b/apps/www/app/(www)/login/_components/Login.tsx
new file mode 100644
index 00000000..a91f5287
--- /dev/null
+++ b/apps/www/app/(www)/login/_components/Login.tsx
@@ -0,0 +1,204 @@
+"use client";
+import { Input } from "@/components/ui/input";
+import { cn } from "@/lib/utils";
+import { signIn } from "next-auth/react";
+import { BottomLine } from "components/LineUtils";
+import { PlusSvg } from "components/SectionSvg";
+import { ChevronRight } from "lucide-react";
+import React, { useState } from "react";
+
+export default function FUILoginWithGridProvider() {
+ const [reset, setReset] = useState(false);
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ Log in to your account
+
+
+ Don't have an account?{" "}
+
+ Sign up
+
+
+
+
+
+
+
+
+
{" "}
+
+
+
+
+ Or continue with
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/apps/www/app/(www)/login/page.tsx b/apps/www/app/(www)/login/page.tsx
new file mode 100644
index 00000000..91736483
--- /dev/null
+++ b/apps/www/app/(www)/login/page.tsx
@@ -0,0 +1,61 @@
+import ChangelogDisplay from "components/Changelog/ChangelogDisplay";
+import RetroGrid from "components/ui/Grid";
+import { ChevronRight } from "lucide-react";
+import FUILoginWithGridProvider from "./_components/Login";
+import Section from "components/SectionView";
+import { BottomLine } from "components/LineUtils";
+import { getSession } from "next-auth/react";
+import { auth } from "auth";
+import { redirect } from "next/navigation";
+const { title, description }: { title: string; description: string } = {
+ title: "Login - Join FarmUI to grab exlusive perks.",
+ description: "Join the community to get fast and up to date informations",
+};
+
+export const metadata = {
+ metadataBase: new URL("https://farmui.com"),
+ title,
+ description,
+ openGraph: {
+ title,
+ description,
+ images: [
+ {
+ url: "https://farmui.com/og.png",
+ },
+ ],
+ url: "https://farmui.com",
+ },
+ twitter: {
+ card: "summary_large_image",
+ title,
+ description,
+ images: ["https://farmui.com/og.png"],
+ creator: "@farmui",
+ },
+};
+const LogInPage = async () => {
+ const user = await auth()
+ if(user?.user) {
+ redirect("/")
+ }
+ return (
+
+ );
+};
+
+export default LogInPage;
diff --git a/apps/www/app/(www)/templates/[slug]/page.tsx b/apps/www/app/(www)/templates/[slug]/page.tsx
index 0051eb11..801d8051 100644
--- a/apps/www/app/(www)/templates/[slug]/page.tsx
+++ b/apps/www/app/(www)/templates/[slug]/page.tsx
@@ -55,7 +55,7 @@ const TemplatePage = async ({ params: { slug } }: { params: Params }) => {
return (
<>
-
+
diff --git a/apps/www/app/api/auth/[...nextauth]/route.ts b/apps/www/app/api/auth/[...nextauth]/route.ts
new file mode 100644
index 00000000..fe509305
--- /dev/null
+++ b/apps/www/app/api/auth/[...nextauth]/route.ts
@@ -0,0 +1,2 @@
+import { handlers } from "../../../../auth"; // Referring to the auth.ts we just created
+export const { GET, POST } = handlers;
diff --git a/apps/www/app/layout.tsx b/apps/www/app/layout.tsx
index 845a305f..2995a912 100644
--- a/apps/www/app/layout.tsx
+++ b/apps/www/app/layout.tsx
@@ -16,6 +16,7 @@ import { GeistMono } from "geist/font/mono";
import { Toaster } from "@/components/ui/toaster";
import Loglib from "@loglib/tracker/react";
import { Analytics } from "@vercel/analytics/react";
+import { SessionProvider } from "next-auth/react";
const { title, desc, ogImage } = metatag;
export const metadata = {
metadataBase: new URL("https://farmui.com"),
@@ -85,31 +86,34 @@ export default function RootLayout({
-
-
+
-
- {children}
-
-
-
-
+
+
+ {children}
+
+
+
+
+