Scheduled jobs, without Airflow
Still running important jobs through cron or GitHub Actions?
Runwright gives scheduled scripts, notebooks and container jobs shared logs, alerts, reruns and AI failure diagnosis, without adopting a full workflow orchestrator.
Enter your email to join the early-access list:
Early users will be invited to test Runwright with one real scheduled job. No spam.
| Recent | Type | Name | Next run | Last run |
|---|---|---|---|---|
| py | daily_kpis.py | in 14h | Succeeded | |
| notebook | retrain_model.ipynb | in 3d | Succeeded | |
| py | sync_partner_feed.py | in 22m | Failed |
09:31 sync_partner_feed.py failed after 12 seconds · View logs · Rerun
AI diagnosis KeyError: 'region'. The feed dropped the region column · View suggested fix
Where do your scheduled jobs live today?
Move recurring code into one place, without rewriting it
Runwright is built for the jobs that already work, but are hard to operate: scripts on laptops, notebooks run by hand, cron jobs on forgotten servers, and scheduled tasks buried in CI/CD.
Using cron?
Keep the simplicity, add shared logs, history, alerts, ownership and one-click reruns.
Using GitHub Actions?
Keep your code in Git, but get a UI designed for recurring business jobs rather than deployments.
Using a simple scheduler?
Keep the easy job setup, add containers, team controls, richer run operations and private-network execution.
Considering Airflow?
Use Runwright when you need reliable scheduled jobs, not a full orchestration framework or platform project.
Runwright fits the awkward middle ground.
More visibility than cron. A fraction of the overhead of an orchestrator.
Everything you need to operate recurring code
Stop wondering whether the job ran
Runwright gives recurring jobs the visibility they are usually missing.
Scheduling you can trust
Cron with a timezone, validated before it saves. Or skip the schedule and run jobs on demand.
See every run
View status, duration, logs and the exact source version used.
Rerun in one click
Repeat a failed or previous run without rebuilding its configuration.
Know when it breaks
Failure alerts land in Slack with a link straight to the failing run.
AI on every run
Know what went wrong before opening the logs
Runwright analyses each run and gives you a plain-English summary of what happened, what looks unusual and what to try next.
Failures explained
Understand the likely cause without digging through raw logs.
Fixes suggested
Get a reviewable code change or practical next step.
Ask your run history
Ask questions such as “Why has this job slowed down this week?”
$ python sync_partner_feed.py
Loaded 18,422 partner records
KeyError: 'region'
AI diagnosis
The latest feed no longer contains the expected region column.
Suggested fix
Validate the incoming schema before transforming the feed, or update the mapping for the new field name.
Run history signal
Row count is down 38% versus the previous seven successful runs.
Silent failures caught
Runwright can flag empty outputs, unusual warnings or major changes even when a job exits successfully.
Built for real recurring work
From notebook reports to operational scripts
Replace a fragile cron job
Move a script off someone's laptop or undocumented server. Keep its schedule, logs and history in one place.
Schedule a notebook
Run an .ipynb automatically and keep its output history for every run.
Run an existing container
Use your own image when a job needs specialised packages, system dependencies or another language.
Bring what you already have
No rewrite required
Python scripts
Run an existing .py file with your selected Python version and dependencies.
Jupyter notebooks
Execute notebooks on a schedule via papermill. Cell output lands straight in the run log.
Containers
Bring an existing image and command. Any language that runs in the container can run through Runwright.
Git repositories
Each run pulls fresh from your repo and records exactly which commit was executed.
S3 and mounted file shares as job sources are on the roadmap.
Run it where your data lives
Simple for users. Controlled by your platform team.
Runwright manages jobs, schedules and run history while execution happens inside your own cloud, VPC or network. The runner connects outbound, so you do not need to expose inbound ports.
- No inbound access: the runner opens the connection, so you expose no ports.
- Your credentials stay yours: jobs read your internal services directly; nothing sensitive leaves your network.
- Revocable per team: each runner has its own token, shown once and revocable anytime.
Early access
Your scheduled jobs shouldn't be this much work.
No spam. Just product updates and an invitation when your workspace is ready.