Weev connects to your system in three simple layers.
Register jobs directly in your service using the SDK. Declare dependencies so jobs run in the correct order.
The CLI builds a workflow manifest from your service and pushes it to Weev as a versioned deployment.
Trigger runs, track status, see failures and active work. Your team gets a single operational view.
You register jobs directly in your service using the Weev SDK. Each job belongs to a batch, and batches become the workflows Weev manages.
import { weev } from "@weev/sdk";
weev.job(
{
name: "generateInvoices",
batch: "monthlyBillingRun",
description: "Generate invoices for the current billing cycle",
predecessors: ["loadActiveSubscriptions"]
},
async (ctx) => {
ctx.log("info", "Generating invoices");
return { ok: true };
}
);Scanning project for job definitions...
Found 3 jobs in 1 batch
Manifest written to .weev/manifest.json
Uploading manifest...
Deployment created (v3)
Ready to orchestrate.
The Weev CLI finds your job definitions and builds a workflow manifest. That manifest is pushed to Weev so your platform knows what jobs exist, how they are grouped, and how they depend on one another.
Once deployed, Weev triggers workflow runs and executes jobs through your service. Instead of guessing what your job system is doing, your team can see it.
Your workflows stay aligned with the systems they govern. That means less drift, fewer hidden systems, and a clearer path from product change to operational change.
Background workflows change over time. Weev treats those changes as something to version and deploy, not something that silently mutates in production.
Runs, failures, active jobs, and workflow state all become visible in one place. Your team spends less time piecing together logs and more time fixing real issues.
You should not have to build your own orchestration platform just to run dependent jobs safely. Weev gives you the structure without forcing you to move your logic out of your app.
Getting started is straightforward.
pnpm add @weev/sdkRegister jobs with weev.job(...) in your service. Give each job a name, assign it to a batch, and add predecessors for dependency ordering.
import express from "express";
import { createWeevMiddleware } from "@weev/sdk/express";
const app = express();
app.use(createWeevMiddleware());
app.listen(4100);At that point, Weev is ready to orchestrate your jobs.
Weev helps teams move from “a pile of background scripts” to a real workflow system.
Weev is a strong fit if your team is dealing with:
If that sounds familiar, Weev gives you a cleaner foundation.
Start with 5 jobs free. No credit card required.