Versions you can roll back
Every push is kept as a version, so going back to a good one takes a click.
From code to running, in one click
DagFlows runs your team's workflows and web scrapers straight from your repository, so nobody has to set up or look after a server.
Free plan. No card required.
You set up and patch a server just to run one script.
A job fails at 2 a.m. and nobody notices until morning.
Nobody is sure which version of the code is live.
How it works
Sign in with GitHub and choose a repository, public or private.
Commit your code the way you already do. There is nothing new to learn.
Every push becomes a version that runs when you say, and tries again if it fails.
What you get
Every push is kept as a version, so going back to a good one takes a click.
Run a job on a timetable, when a webhook arrives, or whenever you press Run.
When a run fails, DagFlows tries again and shows you what went wrong.
See every build and every run, with its logs, timing, and result.
Organise work into projects and decide who can view or change each one.
Connect private repositories. Your code stays where it already lives.
In action
What your team sees while DagFlows scrapes, builds, and runs. Nothing to refresh, nothing to guess.
Scrapers
Point a scraper at the pages you need. DagFlows works through them, tries again when a page fails, and counts every item it saves.
A scraper run, page by page. Example data.
Builds
DagFlows clones your repository, builds it, and saves a version you can run again later. You can follow each step as it happens.
A build, from commit to version. Example data.
Runs
Runs start from a schedule, a webhook, or an event. Choose how many can run together, and the rest wait their turn.
Three at once, the rest queued. Example data.
For developers
Write steps in Python, TypeScript, or Go, and connect them. DagFlows checks the data passed between languages before a run starts.
package main import df "github.com/dagflows/sdk-go" type Listing struct { URL string `json:"url"` Title string `json:"title"` Price float64 `json:"price"`} // Walks every results page and streams listings out as rowsfunc fetchListings(*df.Ctx, df.None) (df.Rows[Listing], error) { return func(yield func(Listing, error) bool) { for page := 1; page <= 1200; page++ { for _, item := range scrapePage(page) { if !yield(item, nil) { return } } } }, nil} func main() { wf := df.NewWorkflow("competitor_listings", df.WorkflowOptions{}) wf.Node(fetchListings, df.Root, df.NodeOptions{ Key: "fetch_listings", Execution: &df.Execution{Machine: "gp-4", TimeoutSecs: 1800}, }) df.Main()}A Go scraper collects listings, a TypeScript step converts prices, and a Python step sends the report. DagFlows checks the data passed between them before the run starts.
Example run
fetch_listings GO 9,480 rows
enrich_prices TS 9,480 rows
weekly_report PY 0.8 s
Toolkits for Python, Node.js, and Go. Mix them in one pipeline, and DagFlows checks the data passed between steps.
There is no special format to move into, and nothing to rewrite if you ever leave.
Each run shows what started it, which version ran, how long it took, and what it printed.
Built to grow
No servers
Every run starts on DagFlows. There is nothing to set up, patch, or keep awake, however busy the day gets.
Pay for what you use
Credits are used only while a run is working. Between runs, nothing is counted.
Branches and tags
Pick a commit or a tag from any branch. Every run shows which version it used.
Why now
Companies now depend on scheduled jobs and data collection to run their business: reports, syncs, price checks, and scrapers. Each one needs a server, a schedule, and someone to notice when it breaks.
DagFlows turns that work into a push to GitHub. Revenue grows with usage, because teams pay for the compute their runs use.
Figures in square brackets are placeholders for verified data.
[Customer quote about what changed after their team moved its jobs to DagFlows.]
Pricing
Start free with 200 credits every month. Move up as your usage grows. You never need a card to start.
$0
200 credits every month
$9/ month
2,000 credits every month
$49/ month
15,000 credits every month
7.5× the credits of Pro
For larger teams that need more credits, custom terms, or a closer working relationship.
Need more in a month? Top up at any time: $1 buys 200 credits. A run spends credits for the CPU and memory it uses, for each second it runs.