diff --git a/apps/web/app/(auth)/signin/page.tsx b/apps/web/app/(auth)/signin/page.tsx
index 3db512ae..ab965325 100644
--- a/apps/web/app/(auth)/signin/page.tsx
+++ b/apps/web/app/(auth)/signin/page.tsx
@@ -64,7 +64,7 @@ async function Signin({
action={async () => {
"use server";
await signIn("google", {
- redirectTo: "/home?firstTime=true",
+ redirectTo: "/onboarding",
});
}}
>
diff --git a/apps/web/app/(dash)/home/filterSpaces.tsx b/apps/web/app/(dash)/home/filterSpaces.tsx
index 061923d8..8818791a 100644
--- a/apps/web/app/(dash)/home/filterSpaces.tsx
+++ b/apps/web/app/(dash)/home/filterSpaces.tsx
@@ -99,7 +99,7 @@ export function FilterSpaces({
diff --git a/apps/web/app/(onboarding)/layout.tsx b/apps/web/app/(onboarding)/layout.tsx
new file mode 100644
index 00000000..10a9a3ec
--- /dev/null
+++ b/apps/web/app/(onboarding)/layout.tsx
@@ -0,0 +1,12 @@
+import React from "react";
+import { Toaster } from "@repo/ui/shadcn/sonner";
+
+function layout({ children }: { children: React.ReactNode }) {
+ return (
+
+ {children}
+
+ );
+}
+
+export default layout;
diff --git a/apps/web/app/(onboarding)/onboarding/page.tsx b/apps/web/app/(onboarding)/onboarding/page.tsx
new file mode 100644
index 00000000..294efb33
--- /dev/null
+++ b/apps/web/app/(onboarding)/onboarding/page.tsx
@@ -0,0 +1,388 @@
+"use client";
+
+import Link from "next/link";
+import {
+ ChevronLeftIcon,
+ ChevronRightIcon,
+ QuestionMarkCircleIcon,
+ ArrowTurnDownLeftIcon,
+} from "@heroicons/react/24/solid";
+import { CheckIcon, PlusCircleIcon } from "@heroicons/react/24/outline";
+import { motion } from "framer-motion";
+import { useState } from "react";
+import { toast } from "sonner";
+import { createMemory } from "@/app/actions/doers";
+import { useRouter } from "next/navigation";
+
+export default function Home() {
+ const [currStep, setCurrStep] = useState(0);
+
+ return (
+
+ {/* Navbar */}
+
+
+ {/* main-content */}
+
+ {currStep === 0 && (
+
+
+ We are so excited to have you.. but but first let's set up
+ everything
+
+
+ )}
+ {currStep >= 1 &&
}
+ {currStep >= 2 &&
}
+ {currStep >= 3 &&
}
+
+
+ setCurrStep(v)}
+ currStep={currStep}
+ />
+
+
+ );
+}
+
+function StepOne({ currStep }: { currStep: number }) {
+ return (
+
+ 1 ? (currStep > 2 ? -40 : -20) : 0,
+ }}
+ transition={{ duration: 0.2, type: "spring", bounce: 0.1 }}
+ >
+ 1
+ ? "bg-[#26D987]/10 text-[#26D987]"
+ : "bg-[#1F2428] text-white"
+ } `}
+ >
+
+
+
+
Import twitter bookmarks
+
+ Directly import all your bookmarks from twitter in single click
+
+
+
+
{getStatusIcon({ completed: currStep > 1 })}
+
+ {currStep === 1 && (
+
+
+ -
+ First Download our Extension from{" "}
+
+ here
+
+
+ -
+ Once downloaded, it will try to authenticate you by visiting
+ supermemory website, coordinate it with it.
+
+ -
+ After successful authentication, visit x.com and click on the
+ bookmark icon and done, all your bookmarks are in supermemory.
+
+ -
+
+ hover over the bottom left area of the browser window to see
+ the extension
+
+
+
+

+
+ )}
+
+
+ );
+}
+
+function StepIndicator({
+ currStep,
+ setCurrStep,
+}: {
+ currStep: number;
+ setCurrStep: (v: number) => void;
+}) {
+ return (
+
+
+
= 2 ? "opacity-100" : "opacity-0"}`}
+ onClick={() => currStep >= 2 && setCurrStep(currStep - 1)}
+ />
+ Step: {currStep}/3
+ currStep <= 3 && setCurrStep(currStep + 1)}
+ />
+
+
+
+ {Array.from({ length: 3 }).map((_, i) => (
+
i + 1 ? "bg-[#26D987]" : "bg-white/10"
+ } rounded-full overflow-hidden`}
+ >
+ {i === currStep - 1 && (
+
+ )}
+
+ ))}
+
+
+ );
+}
+
+function StepThree({ currStep }: { currStep: number }) {
+ const { push } = useRouter();
+
+ return (
+
+ 3
+ ? "bg-[#26D987]/10 text-[#26D987]"
+ : "bg-[#1F2428] text-white"
+ } `}
+ >
+ {/* info */}
+
+ {/* icon */}
+
+ {/* custom twitter icon */}
+
+
+
+
Ask a question
+
+ Let's use the true power of supermemory!
+
+
+
+
+ {/* status */}
+
{getStatusIcon({ completed: currStep > 3 })}
+
+
+ {currStep === 3 && (
+
+
+ -
+ Let's start off by adding some content! We have added
+ supermemory's link for you press enter
+
+ -
+
+ Once saved, you'll be redirected to home from there you can
+ search supermemory.ai or whatever you saved, and woilla, the
+ result is there!
+
+
+ -
+
+
+
+
+ )}
+
+ );
+}
+
+function StepTwo({ currStep }: { currStep: number }) {
+ return (
+
+ 2 ? -20 : 0 }}
+ transition={{ duration: 0.2, type: "spring", bounce: 0 }}
+ >
+ 2
+ ? "bg-[#26D987]/10 text-[#26D987]"
+ : "bg-[#1F2428] text-white"
+ } `}
+ >
+ {/* info */}
+
+ {/* icon */}
+
+ {/* custom twitter icon */}
+
+
+
+
Adding Content into supermemory
+
one click method to save your time.
+
+
+
+ {/* status */}
+
{getStatusIcon({ completed: currStep > 2 })}
+
+
+ {currStep === 2 && (
+
+
+ -
+ You can either add content from the home or from the extension.
+
+
+

+

+
+ )}
+
+
+ );
+}
+
+function Navbar() {
+ return (
+
+ {/* logo */}
+
+
+
+
+
+
+ );
+}
+
+const getStatusIcon = ({ completed }: { completed: boolean }) => {
+ if (!completed) {
+ return (
+
+ );
+ } else {
+ return ;
+ }
+};
diff --git a/apps/web/public/image.png b/apps/web/public/image.png
new file mode 100644
index 00000000..515b96f4
Binary files /dev/null and b/apps/web/public/image.png differ
diff --git a/apps/web/public/image2.png b/apps/web/public/image2.png
new file mode 100644
index 00000000..10f57a47
Binary files /dev/null and b/apps/web/public/image2.png differ
diff --git a/apps/web/public/image3.png b/apps/web/public/image3.png
new file mode 100644
index 00000000..581d65b2
Binary files /dev/null and b/apps/web/public/image3.png differ
diff --git a/apps/web/public/img.png b/apps/web/public/img.png
new file mode 100644
index 00000000..28b983e7
Binary files /dev/null and b/apps/web/public/img.png differ