diff --git a/frontend/src/app/loading.tsx b/frontend/src/app/loading.tsx
new file mode 100644
index 0000000..e94b130
--- /dev/null
+++ b/frontend/src/app/loading.tsx
@@ -0,0 +1,69 @@
+import { Skeleton } from "@/components/ui/skeleton";
+import React from "react";
+import { cn } from "@/lib/utils";
+
+export default function Loading() {
+ return (
+
+ {/* Full width div, split into two equal portions */}
+
+ {/* Square */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/* Circle */}
+
+
+
+
+
+
+
+ );
+}
+
+function EmptySection({
+ children,
+ className,
+}: {
+ children?: React.ReactNode;
+ className?: string;
+}) {
+ return {children}
;
+}
+
+function SkeletonSection() {
+ return ;
+}
+
+function SkeleteonHero() {
+ return (
+
+
+
+ {/* Large Hero Text */}
+
+ {/* Small sub text */}
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/src/components/ui/skeleton.tsx b/frontend/src/components/ui/skeleton.tsx
new file mode 100644
index 0000000..40b88dd
--- /dev/null
+++ b/frontend/src/components/ui/skeleton.tsx
@@ -0,0 +1,16 @@
+import { cn } from "@/lib/utils";
+import React from "react";
+
+function Skeleton({
+ className,
+ ...props
+}: React.HTMLAttributes) {
+ return (
+
+ );
+}
+
+export { Skeleton };