Changelog

What's new in JustRun

Every feature, fix, and improvement we ship. Follow along as we build the cron service we always wanted.

v0.9.1

Escalation Policies, Teams, Advanced Job Config & More

  • Multi-phase escalation policies with AI diagnosis — alert phase 1, escalate to phase 2 after N retries, AI-written findings at phase 3
  • Escalation AI Wizard — 3 questions generates your entire escalation policy
  • 3-tier escalation inheritance: global default → space → job override
  • Alert rules engine — 5 rule types: on failure, N consecutive failures, slow response, uptime below %, body change
  • Job chains now execute: trigger job B after A succeeds, fails, matches status code, or body contains string
  • Dead letter queue — permanently failed jobs surface on dashboard with Retry/Dismiss
  • Team collaboration — invite members by email, owner/admin/member roles, shared job visibility
  • Weekly AI audit — Claude Haiku audits your job configuration twice a week, insights on dashboard
  • CLI tool — npx @justrun/cli: login, list jobs, create, run, pause, delete from terminal
  • Advanced job config — auth type (Bearer/Basic/API key), success criteria, pause until, concurrent run protection, catch-up, slow alert threshold, jitter, signing secret
  • Response time chart with uptime % in job detail panel
  • Badge monitoring — SVG status badges for READMEs, private by default with token-based access
  • Column sorting on dashboard — click headers to sort by name, last run, status, response time, next run
  • Dashboard stats from dedicated /jobs/stats endpoint — always accurate regardless of page/filter
  • Escalation policies page with phase builder and AI Wizard modal
  • 30 competitor comparison pages and 19 migration guides
  • AES-256-GCM encryption at rest for all sensitive fields (webhook URLs, auth tokens, signing secrets)
  • DNS rebinding protection — dual-pass URL validation with TTL check
  • Badge tokens — private by default, generate shareable token per job
  • OAuth redirect_uri allowlist, CORS restricted to justrun.sh, atomic AI quota increments
v0.9.0

Brand Redesign + New Pricing

  • Complete dark-first redesign with emerald accent palette, new typography system, and ambient glow effects across every page
  • Overhauled pricing structure: Hobby $3/mo, Maker $7/mo, Pro $19/mo, Scale $49/mo — all plans include AI diagnostics
  • Free tier expanded from 5 to 10 jobs with 5-minute minimum intervals and 1-day execution history retention
  • Added 30 pre-built job templates across 13 categories including WordPress, monitoring, DevOps, e-commerce, analytics, and more
  • New stack comparison section on landing page showing architecture differences vs legacy cron services (Hono vs PHP, NATS vs MySQL polling)
  • Redesigned pricing cards with highlighted "Popular" badge and feature breakdowns per tier
v0.8.0

API Keys, MCP Server & Webhooks

  • API key generation and management UI — keys are SHA-256 hashed before storage, only shown once on creation
  • MCP (Model Context Protocol) server for Claude, Cursor, and other AI agents to create, list, pause, and manage cron jobs programmatically
  • Webhook alert delivery on job failures with support for Slack incoming webhooks, Discord webhook URLs, and generic signed HTTP webhooks
  • All outgoing webhook payloads are signed with HMAC-SHA256 using a per-user secret for verification
  • Comprehensive API documentation at /docs with 30+ endpoints, request/response examples, and authentication guide
  • New API key scopes: read-only, execute, and full-access with per-key rate limits
v0.7.0

Security Hardening

  • SSRF protection on all outbound job requests — blocks private IP ranges (10.x, 172.16-31.x, 192.168.x), link-local addresses, and cloud metadata endpoints (169.254.169.254)
  • Rate limiting across all API endpoints: 100 requests/minute for general use, 10 requests/minute for job executions, with sliding window counters
  • Plan-based limit enforcement on job creation — attempting to exceed your plan quota returns a clear upgrade prompt
  • Security headers added to all responses: Content-Security-Policy, Strict-Transport-Security (HSTS), X-Frame-Options, X-Content-Type-Options
  • Batched scheduler queries reduce database load by 60% — jobs are fetched in time-windowed batches instead of individual lookups
  • Input validation hardened with Zod schemas on every API route, rejecting malformed cron expressions and invalid URLs at the edge
v0.6.0

Dashboard Overhaul

  • Execution sparklines on job cards showing the last 20 runs as a mini success/failure graph — green for 2xx, red for errors, gray for pending
  • Public status badges (SVG) for any job — embed in GitHub READMEs, docs, or status pages to show real-time job health
  • CSV export for execution history — download filtered results with timestamps, status codes, response times, and error messages
  • Dark mode as default with light mode toggle, persisted to localStorage and applied before first paint to prevent flash
  • Command palette (Cmd+K / Ctrl+K) for instant navigation — search jobs, spaces, settings, and actions without leaving the keyboard
  • Active nav highlighting in the sidebar based on current route, with smooth transition animations
  • New onboarding flow for first-time users: guided tour of dashboard, job creation, and alert setup with dismissible tooltips
  • Bulk select and actions — pause, resume, delete, move to space, and tag multiple jobs at once with shift-click and Cmd+A support
v0.5.0

Migration & Templates

  • One-click import from EasyCron — paste your EasyCron API key and all jobs, schedules, and settings are migrated automatically
  • One-click import from cron-job.org — export your jobs as JSON and upload directly into JustRun with schedule mapping
  • 12 starter job templates covering WordPress (wp-cron, backup, update check), uptime monitoring (HTTP, SSL, DNS), DevOps (deploy hooks, cache purge, log rotation), and more
  • Job editing in a slide-out panel — click any job card to open a detail drawer with inline editing, execution history, and quick actions
  • Spaces management with grouped stats — create workspaces for different projects, see aggregate success rates and job counts per space
  • Tags and filtering system — assign color-coded tags to jobs, filter the dashboard by tag, space, status, or schedule frequency
v0.4.0

Jobs Actually Run

  • Real HTTP execution engine — jobs now make actual outbound requests with configurable methods (GET, POST, PUT, DELETE), headers, and request bodies
  • Automatic retries with configurable strategy: exponential backoff (default), linear, or fixed interval with up to 5 retry attempts
  • Execution history table showing status codes, response times (ms), response body previews, retry counts, and timestamps for every run
  • Run Now button on every job card triggers immediate execution outside the normal schedule — useful for testing and debugging
  • Scheduler daemon starts on application boot with a 1-second tick loop, checking the priority queue for due jobs and dispatching them to the execution worker
  • Timeout handling — jobs that exceed the 30-second response limit are marked as failed with a timeout error and trigger retry logic
v0.3.0

The Foundation

  • Hono API framework with typed routes for jobs CRUD, spaces management, billing endpoints, API key operations, and health checks
  • Next.js 15 frontend with App Router, React Server Components, and Supabase Auth (email/password + GitHub OAuth)
  • Interactive cron expression builder on the landing page — select frequency, time, and day with a visual UI that outputs valid cron syntax
  • Supabase PostgreSQL database with Row Level Security (RLS) policies ensuring users can only access their own jobs, spaces, and execution history
  • Drizzle ORM schema with 8 tables: users, jobs, executions, spaces, api_keys, alerts, tags, and job_tags with proper foreign keys and indexes
  • Monorepo structure with Turborepo — apps/web (Next.js), apps/api (Hono), packages/db (Drizzle schema), packages/shared (types and utilities)
  • CI pipeline with GitHub Actions: lint, type-check, and build on every push to main