diff --git a/web/public/example-workflows/ipadapter.webp b/web/public/example-workflows/ipadapter.webp
new file mode 100644
index 0000000..1375a58
Binary files /dev/null and b/web/public/example-workflows/ipadapter.webp differ
diff --git a/web/public/example-workflows/txt2img-lcm.webp b/web/public/example-workflows/txt2img-lcm.webp
new file mode 100644
index 0000000..ef8e543
Binary files /dev/null and b/web/public/example-workflows/txt2img-lcm.webp differ
diff --git a/web/public/example-workflows/txt2img.webp b/web/public/example-workflows/txt2img.webp
new file mode 100644
index 0000000..9f5ee20
Binary files /dev/null and b/web/public/example-workflows/txt2img.webp differ
diff --git a/web/public/example-workflows/upscale.webp b/web/public/example-workflows/upscale.webp
new file mode 100644
index 0000000..7c8897d
Binary files /dev/null and b/web/public/example-workflows/upscale.webp differ
diff --git a/web/src/app/(app)/examples/loading.tsx b/web/src/app/(app)/examples/loading.tsx
new file mode 100644
index 0000000..9ff4783
--- /dev/null
+++ b/web/src/app/(app)/examples/loading.tsx
@@ -0,0 +1,9 @@
+"use client";
+
+import { LoadingPageWrapper } from "@/components/LoadingWrapper";
+import { usePathname } from "next/navigation";
+
+export default function Loading() {
+ const pathName = usePathname();
+ return ;
+}
diff --git a/web/src/app/(app)/examples/page.tsx b/web/src/app/(app)/examples/page.tsx
new file mode 100644
index 0000000..b05de19
--- /dev/null
+++ b/web/src/app/(app)/examples/page.tsx
@@ -0,0 +1,90 @@
+import { Button } from "@/components/ui/button";
+import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "@/components/ui/card";
+import Image from "next/image";
+import Link from "next/link";
+
+export default function Page() {
+ return ;
+}
+
+
+type exampleWorkflow = {
+ title: string;
+ description: string;
+ previewURL: string;
+ image: {
+ src: string,
+ alt: string,
+ };
+};
+
+const exampleWorkflows: exampleWorkflow[] = [
+ {
+ title: "Txt2Img SDXL",
+ description: "The basic workflow, type a prompt and generate images based on that.",
+ previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-txt2img-sdxl',
+ image: {
+ src: '/example-workflows/txt2img.webp',
+ alt: 'IPAdapter workflow',
+ }
+ },
+ {
+ title: "Txt2Img LCM SDXL",
+ description: "Images in a couple of seconds, increase the speed of each generation using LCM Lora.",
+ previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-lcm-sdxl',
+ image: {
+ src: '/example-workflows/txt2img-lcm.webp',
+ alt: 'txt2img LCM SDXL',
+ }
+ },
+ {
+ title: "IPAdapter SDXL",
+ description: "Load images and use them as reference for new generations.",
+ previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-ip-adapter-sdxl',
+ image: {
+ src: '/example-workflows/ipadapter.webp',
+ alt: 'IPAdapter workflow',
+ }
+ },
+ {
+ title: "Upscale and Add Detail SDXL",
+ description: "Upscale and Add Details to your creations",
+ previewURL: 'https://www.comfydeploy.com/share/comfy-deploy-example-upscale-and-add-detail-sdxl',
+ image: {
+ src: '/example-workflows/upscale.webp',
+ alt: 'Upscale and Add Detail SDXL',
+ }
+ }
+];
+
+
+async function Examples() {
+ return (
+
+
+
+ Check out some examples
+
+ Text to Image, Image to Image, IPAdapter, and more. Here are some examples that you can use to deploy your workflow.
+
+
+ {exampleWorkflows.map(workflow => {
+ return
+
+ {workflow.title}
+ {workflow.description}
+
+
+
+
+
+
+
+ ;
+ })}
+
+
+ );
+}
diff --git a/web/src/components/NavbarMenu.tsx b/web/src/components/NavbarMenu.tsx
index 804e357..1724229 100644
--- a/web/src/components/NavbarMenu.tsx
+++ b/web/src/components/NavbarMenu.tsx
@@ -40,6 +40,10 @@ export function NavbarMenu({
name: "API Keys",
path: "/api-keys",
},
+ {
+ name: "Examples",
+ path: "/examples"
+ }
];
return (
@@ -48,9 +52,9 @@ export function NavbarMenu({
{isDesktop && (
-
+
{pages.map((page) => (