diff --git a/apps/dokploy/components/dashboard/application/preview-deployments/preview-deployment-card.tsx b/apps/dokploy/components/dashboard/application/preview-deployments/preview-deployment-card.tsx
new file mode 100644
index 00000000..c5b381eb
--- /dev/null
+++ b/apps/dokploy/components/dashboard/application/preview-deployments/preview-deployment-card.tsx
@@ -0,0 +1,141 @@
+import { StatusTooltip } from "@/components/shared/status-tooltip";
+import { Badge } from "@/components/ui/badge";
+import { Button } from "@/components/ui/button";
+import { Separator } from "@/components/ui/separator";
+import { Clock, GitBranch, GitPullRequest, Pencil } from "lucide-react";
+import Link from "next/link";
+import { ShowModalLogs } from "../../settings/web-server/show-modal-logs";
+import { DialogAction } from "@/components/shared/dialog-action";
+import { ShowPreviewBuilds } from "./show-preview-builds";
+import { RouterOutputs } from "@/utils/api";
+import { AddPreviewDomain } from "./add-preview-domain";
+import { DateTooltip } from "@/components/shared/date-tooltip";
+
+interface PreviewDeploymentCardProps {
+ appName: string;
+ serverId: string;
+ onDeploymentDelete: (deploymentId: string) => void;
+ deploymentId: string;
+ deploymentUrl: string;
+ deployments: RouterOutputs["deployment"]["all"];
+
+ domainId: string;
+ domainHost: string;
+
+ pullRequestTitle: string;
+ pullRequestUrl: string;
+ status: "running" | "error" | "done" | "idle" | undefined | null;
+ branch: string;
+ date: string;
+ isLoading: boolean;
+}
+
+export function PreviewDeploymentCard({
+ appName,
+ serverId,
+
+ onDeploymentDelete,
+ deploymentId,
+ deployments,
+
+ domainId,
+ domainHost,
+
+ pullRequestTitle,
+ pullRequestUrl,
+ isLoading,
+ status,
+ branch,
+ date,
+}: PreviewDeploymentCardProps) {
+ return (
+
+
+ {pullRequestTitle}
+
+
+ {status
+ ?.replace("running", "Running")
+ .replace("done", "Done")
+ .replace("error", "Error")
+ .replace("idle", "Idle") || "Idle"}
+
+
+
+
+
+
+ {domainHost}
+
+
+
+
+
+
+
+
+
+ Branch:
+
+ {" "}
+ {branch}
+
+
+
+
+ Deployed:
+
+
+
+
+
+
+
+
Pull Request
+
+
+
+ {pullRequestTitle}
+
+
+
+
+
+
+
+
+
+
+
+
+ onDeploymentDelete(deploymentId)}
+ >
+
+
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-builds.tsx b/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-builds.tsx
index 4eb2107f..bff6c929 100644
--- a/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-builds.tsx
+++ b/apps/dokploy/components/dashboard/application/preview-deployments/show-preview-builds.tsx
@@ -26,7 +26,7 @@ export const ShowPreviewBuilds = ({ deployments, serverId }: Props) => {
return (