Cronhoster
Scheduled scripts, self-hosted. The filename is the schedule.
cron/
digest.every.30m.cron.js → every 30 minutes
backup.daily.0300.cron.js → daily at 03:00
sweep.hourly.15.cron.js → at :15 past every hour
ping.every.30s.cron.js → every 30 seconds
_draft.every.10s.cron.js → ignored (leading _ = local only)
How it works
The same drop-a-folder idea as localhoster, but the payload is work to run on a clock. Keep a folder of plain JavaScript on your machine; name a file for when it should run and a stateless client mirrors the folder to your own server, where a small Node runner executes each script on time.
The name is the schedule
A top-level file called <name>.every.30m.cron.js or
<name>.daily.0300.cron.js runs on that cadence. No crontab, no dashboard — the
schedule lives in the filename.
Your own runner
Scripts run inside a dedicated Node application, not the box's system cron. It owns
timing, overlap and logging, so behaviour is identical on your laptop and on the server.
One run at a time
Each script is single-instance by base name: if a run is still going when the next tick arrives, the tick is skipped rather than piling a second copy on top.
Just a folder of JavaScript
The only special files are the entry points — everything else in the folder is yours to organise.
Bring your own modules
Only top-level files matching the schedule pattern are run. Shared libraries, helpers and sub-folders sync alongside and are imported normally — they are never invoked on their own.
Develop in place
Prefix a file with _ and the runner ignores it, so you can write and test a job
locally before it goes live. Drop the underscore when it's ready.
Better together
On its own, cronhoster just runs code on a clock. Pair it with its siblings when a job needs data, identity or a public face.
+ Datahoster →
Read and write durable records from a scheduled job — roll up yesterday's numbers, prune stale rows, or refresh a cache on a timer.
+ Porthoster →
The other half of the server family: where cronhoster runs work on a clock, porthoster keeps a service listening on a port. Same folder-per-server workflow.
+ Userhoster →
Send each member their digest, expire trials, or process sign-ups in the background against real accounts.
+ Localhoster →
Regenerate a static site on a schedule and let sitehoster publish the result — a tiny build farm you control.