diff --git a/web/src/components/layout/MainLayout.tsx b/web/src/components/layout/MainLayout.tsx
index 7011bef..f64940a 100644
--- a/web/src/components/layout/MainLayout.tsx
+++ b/web/src/components/layout/MainLayout.tsx
@@ -7,6 +7,7 @@ import Link from "next/link";
import { usePathname, useRouter } from "next/navigation";
import { cn } from "@/lib/utils";
import { clearSession, useIsAuthenticated, useUserRole } from "@/lib/auth";
+import { WorkspaceLoader } from "@/components/layout/WorkspaceLoader"; // GSSoC 2026 - Dhruva5vora
const navItems = [
{ icon: PenTool, label: "Studio", href: "/studio" },
@@ -32,8 +33,8 @@ export function MainLayout({ children }: { children: React.ReactNode }) {
}, [authenticated, router, isMounted]);
if (!isMounted || !authenticated) {
- return
Preparing workspace...
;
- }
+ return ; //changes made here
+}
const items = isEditor
? [...navItems, { icon: User, label: "Editor", href: "/editor" }]
diff --git a/web/src/components/layout/WorkspaceLoader.tsx b/web/src/components/layout/WorkspaceLoader.tsx
new file mode 100644
index 0000000..365b3da
--- /dev/null
+++ b/web/src/components/layout/WorkspaceLoader.tsx
@@ -0,0 +1,139 @@
+"use client";
+
+import { motion } from "framer-motion"; // Changed from "motion/react" to "framer-motion"
+import { Feather, BookOpen, PenTool } from "lucide-react";
+
+/**
+ * WorkspaceLoader Component
+ *
+ * A premium loading experience for Writers Pub.
+ * Features elegant serif typography, muted olive accents,
+ * and cinematic animations.
+ */
+export const WorkspaceLoader = () => {
+ return (
+
+ {/* Background Ambient Effect */}
+
+
+
+ {/* Animated Icon */}
+
+
+
+
+
+
+
+
+
+ {/* Skeleton Placeholders */}
+
+ {[1, 2, 3].map((i) => (
+
+
+ {i === 3 && }
+
+ ))}
+
+
+ {/* Loading Text */}
+
+
+ Preparing your workspace...
+
+
+
+
+ "Every masterpiece begins with a blank page."
+
+
+
+
+ {/* Ambient Floating Elements */}
+
+
+
+
+
+
+
+
+ {/* Footer Branding */}
+
+ Writers Pub — Est. 2026
+
+
+ );
+};
\ No newline at end of file