diff --git a/packages/server/next/next.config.ts b/packages/server/next/next.config.ts
index 0ef124ff4a723d14ce34264edfd1777ebc6b318d..65c102b9243fdedf36d0d22d3db8cc5f6809ec70 100644
--- a/packages/server/next/next.config.ts
+++ b/packages/server/next/next.config.ts
@@ -1,7 +1,6 @@
 import type { NextConfig } from "next";
 
 const nextConfig: NextConfig = {
-  distDir: "../static",
   output: "export",
 };
 
diff --git a/packages/server/package.json b/packages/server/package.json
index c77e0249d47159d437b7969f51be391e510b98b0..b187217be3dda8b2d98cd0860a573288cae3dacb 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -18,9 +18,7 @@
     }
   },
   "files": [
-    "dist",
-    "static",
-    ".next"
+    "dist"
   ],
   "repository": {
     "type": "git",
@@ -28,9 +26,13 @@
     "directory": "packages/server"
   },
   "scripts": {
-    "dev:next": "cd ./next && next dev",
-    "prebuild": "cd ./next && next build && cp -r .next ../",
+    "clean": "rm -rf ./dist next/.next next/out",
+    "prebuild": "pnpm clean",
     "build": "bunchee",
+    "postbuild": "pnpm copy:next-src && pnpm build:static && pnpm copy:static",
+    "copy:next-src": "cp -r ./next ./dist/next",
+    "build:static": "cd ./next && next build",
+    "copy:static": "cp -r ./next/out ./dist/static",
     "dev": "bunchee --watch"
   },
   "devDependencies": {
diff --git a/packages/server/src/server.ts b/packages/server/src/server.ts
index 4b18c771b123e4d7176eda38d53edabf987aa170..2737aaa80d3e2598c21452b4fe86286f24b41168 100644
--- a/packages/server/src/server.ts
+++ b/packages/server/src/server.ts
@@ -11,8 +11,9 @@ export class LlamaIndexServer {
   workflowFactory: () => Promise<ServerWorkflow> | ServerWorkflow;
 
   constructor({ workflow, ...nextAppOptions }: LlamaIndexServerOptions) {
-    const nextDir = path.join(__dirname, ".."); // location of the .next after build next app
-    this.app = next({ ...nextAppOptions, dir: nextDir });
+    const nextDir = path.join(__dirname, "./next");
+    const dev = process.env.NODE_ENV !== "production";
+    this.app = next({ ...nextAppOptions, dev, dir: nextDir });
     this.port = nextAppOptions.port ?? 3000;
     this.workflowFactory = workflow;
   }