Frameworks
Next.js
Using Workflow Studio with Next.js
Overview
Workflow Studio provides first-class support for Next.js applications with a config wrapper and server-side proxy helpers.
Configuration
import { withWorkflowStudioNext } from 'workflow-studio/next';
const nextConfig = {};
export default await withWorkflowStudioNext(nextConfig, {
execution: { mode: 'remote' },
mode: 'proxy-trigger',
});Security Note
The wrapper intentionally avoids injecting sensitive/internal variables into nextConfig.env (which would be bundled to the client). Configuration is placed under a workflowStudio key instead:
{
workflowStudio: {
WORKFLOW_COMPUTE_BASE_URL: "...",
WORKFLOW_TARGET_WORLD: "workflow-studio/world-remote",
// ...
}
}Server Route Helpers
Use these helpers in server-only code when using proxy-trigger mode:
import { proxyTriggerFromNext } from 'workflow-studio/next';
export async function POST(req: Request): Promise<Response> {
const body = await req.json();
const result = await proxyTriggerFromNext({
payload: {
workflowName: 'send-welcome-email',
input: { userId: body.userId },
},
});
return Response.json(result);
}Webhook Proxy
Forward webhooks to the remote worker:
import { proxyWebhookFromNext } from 'workflow-studio/next';
export async function POST(
req: Request,
{ params }: { params: { provider: string } }
): Promise<Response> {
const body = new Uint8Array(await req.arrayBuffer());
return await proxyWebhookFromNext({
provider: params.provider,
body,
headers: Object.fromEntries(req.headers.entries()),
});
}Production Checklist
- Set
WORKFLOW_TARGET_WORLD=workflow-studio/world-remotein deployment env - Configure
WORKFLOW_COMPUTE_BASE_URLfor worker URL - Configure
WORKFLOW_COMPUTE_API_KEYfor authentication - Run
validate-ownershipCLI check before first deployment - Never expose
WORKFLOW_COMPUTE_API_KEYin client-side code