Cron is free until it's not.

Read this before you DIY.

The trap

Cron works. Until it doesn't.

Cron runs your script. That’s all it does.

When the script fails, it just fails. There are no retries.

When the server reboots, your jobs are dead until you SSH back in.

When two runs overlap, they both run. Race conditions follow.

The bill

The hidden cost of free

Setup feels free. The bill is your time.

Every failure is your problem. Every alert is your responsibility.

At any reasonable hourly rate, that free cron costs more than $9 in the first month.

Migration

What you keep

Your code. Rotor runs the same scripts you already wrote.

Your VPS. Use Rotor for scheduling. Keep Hetzner for everything else.

Upgrade

What changes

Retries that work. Failures resume from the last completed step.

Logs you can search. Per-step duration, payloads, errors.

Secrets in an encrypted vault. Not in /etc/.env on a VPS.

Alerts when a run fails. Not when something downstream breaks.

Honesty

When cron is still the right tool

One-shot tasks. Renewing a Let’s Encrypt cert.

Local dev. Personal automations.

Anything where failure is acceptable.

Production workflows are not on that list.

How Rotor compares to Cron + VPS

Auto-retry on failure

Rotor

Yes

Cron + VPS

No
Step-level state persistence

Rotor

Yes

Cron + VPS

No
Encrypted secrets vault

Rotor

Yes

Cron + VPS

No
Searchable run history

Rotor

Yes

Cron + VPS

No
Alerts on failure

Rotor

Yes

Cron + VPS

No
MCP callable in production

Rotor

Yes

Cron + VPS

No
No server to maintain

Rotor

Yes

Cron + VPS

No

The math

VolumeRotorCron + VPS
Basic durability$9/moHobbyFree + Hetzner ~$5/mo + your on-call time

30-day money back on any Rotor plan.

Switch in an afternoon

  1. Install the Rotor SDK in your existing project: npm i rotor-sdk

  2. Wrap your cron handler in a Rotor workflow function

  3. Replace setTimeout/intervals with step.sleep()

  4. Move secrets from .env to the Rotor vault

  5. Register your schedule: rotor schedules create --cron "0 * * * *"

  6. Cancel the old cron job after your first successful Rotor run

Try Rotor for $9.

30-day money back. Hard caps protect you from runaway bills.

Start shipping

Try Rotor for $9.

30-day money back. Hard caps protect you from runaway bills.

Start shipping