diff --git a/apps/canvas/back/src/index.ts b/apps/canvas/back/src/index.ts
index 653eeaa..3c276d7 100644
--- a/apps/canvas/back/src/index.ts
+++ b/apps/canvas/back/src/index.ts
@@ -79,24 +79,26 @@
 	}
 };
 
-const handleSavedGet: express.Handler = async (req, resp) => {
-	try {
-		const r = await db.project.findUnique({
-			where: {
-				id: Number(req.params["projectId"]),
-				userId: resp.locals.userId,
-			},
-			select: {
-				state: true,
-				draft: true,
-			},
-		});
-		if (r == null) {
-			resp.status(404);
-		} else {
+function handleSavedGet(state: "deploy" | "draft"): express.Handler {
+	return async (req, resp) => {
+		try {
+			const r = await db.project.findUnique({
+				where: {
+					id: Number(req.params["projectId"]),
+					userId: resp.locals.userId,
+				},
+				select: {
+					state: true,
+					draft: true,
+				},
+			});
+			if (r == null) {
+				resp.status(404);
+				return;
+			}
 			resp.status(200);
 			resp.header("content-type", "application/json");
-			if (r.draft == null) {
+			if (state === "deploy") {
 				if (r.state == null) {
 					resp.send({
 						nodes: [],
@@ -107,16 +109,28 @@
 					resp.send(JSON.parse(Buffer.from(r.state).toString("utf8")));
 				}
 			} else {
-				resp.send(JSON.parse(Buffer.from(r.draft).toString("utf8")));
+				if (r.draft == null) {
+					if (r.state == null) {
+						resp.send({
+							nodes: [],
+							edges: [],
+							viewport: { x: 0, y: 0, zoom: 1 },
+						});
+					} else {
+						resp.send(JSON.parse(Buffer.from(r.state).toString("utf8")));
+					}
+				} else {
+					resp.send(JSON.parse(Buffer.from(r.draft).toString("utf8")));
+				}
 			}
+		} catch (e) {
+			console.log(e);
+			resp.status(500);
+		} finally {
+			resp.end();
 		}
-	} catch (e) {
-		console.log(e);
-		resp.status(500);
-	} finally {
-		resp.end();
-	}
-};
+	};
+}
 
 const handleDelete: express.Handler = async (req, resp) => {
 	try {
@@ -554,7 +568,8 @@
 	app.use(express.json());
 	app.use(auth);
 	app.post("/api/project/:projectId/saved", handleSave);
-	app.get("/api/project/:projectId/saved", handleSavedGet);
+	app.get("/api/project/:projectId/saved/deploy", handleSavedGet("deploy"));
+	app.get("/api/project/:projectId/saved/draft", handleSavedGet("draft"));
 	app.post("/api/project/:projectId/deploy", handleDeploy);
 	app.get("/api/project/:projectId/status", handleStatus);
 	app.delete("/api/project/:projectId", handleDelete);
