FlowForge: a workflow builder with cron, webhooks and run history
Multi-flow visual workflow builder deployed as serverless functions: per-flow schedules, public webhook triggers, background execution and a server-side secrets vault.

- trigger types per flow
- 3
- runs retained per flow
- 50
- scheduler resolution
- 1 min
The problem
Self-hosting a workflow runner usually means running a server. On serverless infrastructure the obvious problem is that a function stops when it returns a response, which is exactly when a workflow needs to keep going.
The second problem is secrets. A browser-based builder that keeps credentials in local storage cannot run anything on a schedule, because the scheduler has no browser.
What we built
Keep executing after the response
Run, webhook and cron handlers wrap execution so the flow keeps running after the HTTP response is sent. A run trigger returns a run identifier immediately and the work continues in the background, with logs streaming back as the client polls.
Per-flow scheduling on a one-minute sweep
A scheduled endpoint fires every minute and scans enabled flows for whatever is due. Each flow chooses manual, an interval, or a full five-field cron expression with steps, ranges and lists, evaluated in UTC.
Webhooks as first-class triggers
Every flow gets a unique public URL that accepts any method. The request payload becomes the first step, so downstream nodes reference the incoming fields directly. Tokens rotate on demand, and the per-flow token is the authentication. The admin API is separately protected by a bearer token.
A vault the scheduler can reach
Shared secrets moved from browser storage into server-side key-value storage, which is what makes scheduled runs possible at all. Flows reference them by name.

The outcome
Flows run on a schedule, on a webhook, or on demand, with the last fifty runs per flow retained including trigger, logs, final step values and any error.
Make blueprint import still works: drop one in and save it as a server flow.
The editor is a single file with no build step, so the whole thing deploys as static assets plus functions.
Built with
- Vercel Functions
- Upstash Redis
- JavaScript
- Cron
- Webhooks
Page copy drafted with AI assistance. Skofi is accountable for it. Editorial policy
Have something shaped like this?
If any part of the above resembles a problem you are living with, a short call is the fastest way to find out whether it is the same problem underneath.
What happens on the call
- 15 minutes, no deck
- We map the process on the call
- A written scope, or an honest no