diff --git a/apps/canvas/back/eslint.config.js b/apps/canvas/back/eslint.config.mjs
similarity index 100%
rename from apps/canvas/back/eslint.config.js
rename to apps/canvas/back/eslint.config.mjs
diff --git a/apps/canvas/back/package.json b/apps/canvas/back/package.json
index 4de4561..16bc055 100644
--- a/apps/canvas/back/package.json
+++ b/apps/canvas/back/package.json
@@ -3,7 +3,7 @@
   "version": "1.0.0",
   "description": "",
   "main": "index.js",
-  "type": "module",
+  "type": "commonjs",
   "scripts": {
     "build": "tsc",
     "format": "prettier --write src/**/*.{js,ts,jsx,tsx}",
diff --git a/apps/canvas/back/src/index.ts b/apps/canvas/back/src/index.ts
index 624f8fe..d5c1b2d 100644
--- a/apps/canvas/back/src/index.ts
+++ b/apps/canvas/back/src/index.ts
@@ -202,7 +202,10 @@
 
 				if (p.githubToken && r.data.deployKey) {
 					const stateObj = JSON.parse(JSON.parse(state.toString()));
-					const githubNodes = stateObj.nodes.filter((n) => n.type === "github" && n.data?.repository?.id);
+					const githubNodes = stateObj.nodes.filter(
+						// eslint-disable-next-line @typescript-eslint/no-explicit-any
+						(n: any) => n.type === "github" && n.data?.repository?.id,
+					);
 
 					const github = new GithubClient(p.githubToken);
 					for (const node of githubNodes) {
@@ -480,7 +483,8 @@
 				try {
 					const updateEndpoint = `${workerAddress}/update`;
 					await axios.post(updateEndpoint);
-				} catch (error) {
+					// eslint-disable-next-line @typescript-eslint/no-explicit-any
+				} catch (error: any) {
 					console.log(`Failed to update worker ${workerAddress}: ${error.message || "Unknown error"}`);
 				}
 			}),
diff --git a/apps/canvas/front/src/components/details.tsx b/apps/canvas/front/src/components/details.tsx
index cb7d7fe..b7a0049 100644
--- a/apps/canvas/front/src/components/details.tsx
+++ b/apps/canvas/front/src/components/details.tsx
@@ -48,8 +48,8 @@
 					{index > 0 && <Separator className="my-2" />}
 					<AccordionItem key={n.id} value={n.id} className="px-3">
 						<AccordionTrigger>
-							<div className="flex flex-row space-x-2">
-								{Icon(n.type)}
+							<div className="flex flex-row space-x-2 items-center">
+								<Icon type={n.type} />
 								<span>{nodeLabel(n)}</span>
 							</div>
 						</AccordionTrigger>
diff --git a/apps/canvas/front/src/components/icon.tsx b/apps/canvas/front/src/components/icon.tsx
index a615d79..c56a69e 100644
--- a/apps/canvas/front/src/components/icon.tsx
+++ b/apps/canvas/front/src/components/icon.tsx
@@ -7,24 +7,29 @@
 import { PiNetwork } from "react-icons/pi";
 import { AiOutlineGlobal } from "react-icons/ai";
 
-export function Icon(type: NodeType | undefined): ReactElement {
+type Props = {
+	type: NodeType | undefined;
+	className?: string;
+};
+
+export function Icon({ type, className }: Props): ReactElement {
 	switch (type) {
 		case "app":
-			return <GrServices />;
+			return <GrServices className={className} />;
 		case "github":
-			return <SiGithub />;
+			return <SiGithub className={className} />;
 		case "gateway-https":
-			return <TbWorldWww />;
+			return <TbWorldWww className={className} />;
 		case "gateway-tcp":
-			return <PiNetwork />;
+			return <PiNetwork className={className} />;
 		case "mongodb":
-			return <SiMongodb />;
+			return <SiMongodb className={className} />;
 		case "postgresql":
-			return <SiPostgresql />;
+			return <SiPostgresql className={className} />;
 		case "volume":
-			return <GoFileDirectoryFill />;
+			return <GoFileDirectoryFill className={className} />;
 		case "network":
-			return <AiOutlineGlobal />;
+			return <AiOutlineGlobal className={className} />;
 		default:
 			throw new Error(`MUST NOT REACH! ${type}`);
 	}
diff --git a/apps/canvas/front/src/components/node-rect.tsx b/apps/canvas/front/src/components/node-rect.tsx
index 257353e..362dc54 100644
--- a/apps/canvas/front/src/components/node-rect.tsx
+++ b/apps/canvas/front/src/components/node-rect.tsx
@@ -47,7 +47,9 @@
 	}, [selected, hasFatal, hasWarning, state, setClasses, setStateClasses]);
 	return (
 		<div className={classes.join(" ")}>
-			<div style={{ position: "absolute", top: "5px", left: "5px" }}>{Icon(p.type)}</div>
+			<div style={{ position: "absolute", top: "5px", left: "5px" }}>
+				<Icon type={p.type} />
+			</div>
 			<div
 				style={{
 					position: "absolute",
diff --git a/apps/canvas/front/src/components/resources.tsx b/apps/canvas/front/src/components/resources.tsx
index a07eb86..715f878 100644
--- a/apps/canvas/front/src/components/resources.tsx
+++ b/apps/canvas/front/src/components/resources.tsx
@@ -45,7 +45,7 @@
 										onClick={onResourceAdd(item)}
 										style={{ justifyContent: "flex-start" }}
 									>
-										{Icon(item.type)}
+										<Icon type={item.type} />
 										{item.title}
 									</Button>
 								))}
