diff --git a/prisma/schema.prisma b/prisma/schema.prisma
index 97f9ba3..80636c9 100644
--- a/prisma/schema.prisma
+++ b/prisma/schema.prisma
@@ -15,17 +15,6 @@ datasource db {
     url      = env("DATABASE_URL")
 }
 
-model Post {
-    id        Int      @id @default(autoincrement())
-    name      String
-    createdAt DateTime @default(now())
-    updatedAt DateTime @updatedAt
-
-    createdBy   User   @relation(fields: [createdById], references: [id])
-    createdById String
-
-    @@index([name])
-}
 
 // Necessary for Next auth
 model Account {
@@ -63,7 +52,6 @@ model User {
     image         String?
     accounts      Account[]
     sessions      Session[]
-    posts         Post[]
     files         File[]    // Relation to the File model
 }
 
@@ -85,4 +73,5 @@ model File {
     description String @default("")
     uploadedBy User?    @relation(fields: [uploadedById], references: [id], onDelete: SetNull)
     uploadedById String?
+    public     Boolean  @default(false) // Indicates if the file is public or private
 }
diff --git a/src/app/_components/ActionButtons.tsx b/src/app/_components/ActionButtons.tsx
index fc975ab..2253ca9 100644
--- a/src/app/_components/ActionButtons.tsx
+++ b/src/app/_components/ActionButtons.tsx
@@ -1,4 +1,4 @@
-'use client';
+"use client";
 import { useRef, useState } from "react";
 import { useFileActions } from "~/app/_components/FileActions";
 
@@ -7,11 +7,13 @@ export function FileActionsContainer({
   fileName,
   fileUrl,
   isOwner,
+  isPublic,
 }: {
   fileId: string;
   fileName: string;
   fileUrl: string;
   isOwner: boolean;
+  isPublic: boolean;
 }) {
   const { handleDownload, handleCopyUrl, handleRemove} = useFileActions(() => fileId, (description: string) => {
     if (isOwner) {
@@ -36,14 +38,55 @@ export function FileActionsContainer({
       >
          -
       {/* Remove Button */}
+      {isOwner && (
       
+      )}
+      {isOwner && (
+
       
-
       {/* Remove Button */}
+      {isOwner && (
       
+      )}
+      {isOwner && (
+        
+        
+        
+      
+          
+            {/* Search Button */}
+            
+              
+            
+
             
               
-              
+              
             >
           ) : (
             
@@ -41,16 +62,16 @@ export default async function Home() {
             
           )}
           {!session?.user && (
-          
-            
-              
-                {session ? "Sign out" : "Sign in"}
-              
+            
+              
+                
+                  {session ? "Sign out" : "Sign in"}
+                
+              
             
-          
           )}
         
       
diff --git a/src/app/search/page.tsx b/src/app/search/page.tsx
new file mode 100644
index 0000000..a778de6
--- /dev/null
+++ b/src/app/search/page.tsx
@@ -0,0 +1,121 @@
+"use client";
+import { useEffect, useState } from "react";
+import { useRouter } from "next/navigation";
+import { env } from "~/env.js";
+import { FilePreview } from "~/app/_components/FilePreview";
+import { FileActionsContainer } from "~/app/_components/ActionButtons";
+import { HomeButton } from "~/app/_components/HomeButton";
+
+interface FileDetails {
+  name: string;
+  size: number;
+  owner: string;
+  ownerAvatar: string | null;
+  uploadDate: string;
+  id: string;
+  isOwner: boolean;
+  extension: string;
+  url: string;
+  description: string;
+  isPublic: boolean;
+}
+
+export default function SearchFile() {
+  const [searchQuery, setSearchQuery] = useState
("");
+  const [files, setFiles] = useState([]);
+  const [error, setError] = useState(null);
+  const pageUrl = env.NEXT_PUBLIC_PAGE_URL;
+  const router = useRouter();
+
+  useEffect(() => {
+    const fetchFiles = async () => {
+      try {
+        const response = await fetch(
+          `/api/files/search?query=${encodeURIComponent(searchQuery)}`
+        );
+        if (!response.ok) {
+          throw new Error("Failed to fetch files");
+        }
+        const data = await response.json();
+        setFiles(data.files);
+      } catch (err) {
+        console.error(err);
+        setError("Failed to load files.");
+      }
+    };
+
+    fetchFiles();
+  }, [searchQuery]);
+
+  return (
+    
+      
+        
+      
+      {/* Search Bar */}
+      
+        
+          
 setSearchQuery(e.target.value)}
+            className="w-full p-3 pl-12 text-white bg-[#3b0764] rounded-full shadow-md focus:outline-none focus:ring-2 focus:ring-purple-500 focus:border-transparent placeholder-gray-400"
+          />
+          
+        
+      
+        {error && 
{error}
}
+        
+          {files.map((file) => {
+            return (
+              
+                
+                  
+                
+
+                
+                {file.description && (
+                  
+                    Description: {file.description}
+                  
+                )}
+
+                
+                  
+                
+              
+            );
+          })}
+        
+