Press Run and watch a real script plan your crew's week.

For owners who check Monday’s forecast, then ring the crew: we script that chore. Pick a job site, the days and a rain limit, then press Run. Last 33 recorded runs: median 1.63 s.

Live code runner

loads with the page

What the script runs on

The console needs JavaScript to talk to the demo server.

Logno run yet

Press Run. The container’s output streams in here, line by line.

Last 33 recorded runs on the demo server: median 1.63 s, 95 in 100 under 2.08 s, 88% finished OK. Checked

  • Fresh container per run
  • 256 MB
  • half a CPU
  • 64 processes
  • read-only files
  • only api.weather.gov reachable

The Monday chore

Every Monday you open a forecast tab for each job site, then ring the crew to say which jobs move. That is a row of browser tabs and a phone call before the week has started.

We write the script that does it and tells you which jobs to move. Below, one runs for real.

Three signs a chore should be a script. You copy numbers from one tool into another, and one typo costs you. A service you rely on holds the data but has no button for what you need. Or a no-code automation works until the odd case, then quietly stops.

With a script, the tabs become one short list sorted into go, watch or reschedule. The same rule applies the same way on every run, because the rule is written in the script, not kept in one person's head. In the demo below, the rain limit is one setting you change.

Today you learn something broke when a job is missed. A script keeps a log of every step, and a failed source stops the run loudly instead of passing along a wrong answer. We add an alert to that stop.

A first job takes three steps. You describe the chore: what goes in, what should come out and what a wrong answer looks like. Then we write the script, run it on your real data, keep a log of every run and check it works before adding anything else. Last, it runs on a schedule or on demand, with an alert when a source fails and a one-page how-to.

Run it

This is a live run. Each press starts a fresh container on this server and fetches the real National Weather Service forecast.

Your run: the answer and where the time went

Run it from the console at the top

ResultJSON from the script

How the script calls each day

go
rain under 25%, wind under 18 mph
watch
rain 25–39%, or wind 18–24 mph
reschedule
rain 40% or more, or wind 25 mph or more

The answer appears here when the script finishes.

Measured time
–

Where the time goes appears after a run.

The script that ran
job.mjs The script loads from the demo server with the page.
How the container is locked down
  • The container flags load from the demo server with the page.
Raw JSON
{}

The real script, live: the last 33 recorded runs here took a median of 1.63 s.

  1. Choose one of ten job-site cities and 1 to 7 forecast days.
  2. Set the rain limit you will accept, then press Run. A fresh container starts.
  3. Watch the log stream in line by line. The answer appears when the script finishes: each day marked go, watch or reschedule, with the measured time.

Run it again with a different rain limit. The three controls change what goes in, and the script stays fixed. By default a day is go under 25% rain and 18 mph wind. It is reschedule at 40% rain or more, or 25 mph wind or more.

Facts you can check

The demo script reads the Weather Service's own data door [its API], not a web page. A change to the website's look does not touch it.

Live

Live demo API and runner sandbox

One Node service sits behind the demos: seven demos, each with its own state, caps and a kill switch. [Podman, systemd]

  • 33, median 1.63 s Runs recorded by this server Runner stats Checked
  • 256 MB Memory per run Runner limits Checked
  • Half a CPU CPU per run Runner limits Checked
  • 64 Processes per run Runner limits Checked
  • 11, all passed Sandbox self-test checks Build notes Checked

Break-out tests use the settings of a real run. Of 11 checks, 9 try to escape the box: write files, reach the internet, reach the host, fork-bomb, eat memory and more. The other 2 confirm the weather service still answers and a runaway container gets killed. All 11 passed.

The one source reachable from inside is the National Weather Service forecast.

Re-read the run record yourself, as this page does: curl -s https://demos.fullstack-freelancer.dev/api/runner/stats and the sandbox limits: curl -s https://demos.fullstack-freelancer.dev/api/runner/meta

Safe by design

The script is fixed and every press starts a fresh container with read-only files, so the server stays clean run after run. You steer it with three controls: the city, the forecast days and the rain limit. [Podman]

One script, its live log, and the measured time after each run.

If the weather service stalls, the script retries once, then stops cleanly and explains why in the log.

Each run logs a scrambled form of the visitor's IP address to block abuse, with a quick bot check when needed. [HMAC-SHA256, Cloudflare Turnstile]

Tell us what you would change

Name the website holding your data, the missing button and what should happen next, and we tell you whether a script is the right fix and what the first small step is.

Start a project