cronly

Use Cases

Common patterns for web apps that need background processing.

Async Processing

Offload slow tasks from your request-response cycle. Return immediately to users while work happens in the background.

Next.js Vercel

Email Sequences

Schedule follow-up emails without managing queues or workers.

// Schedule welcome email 24 hours after signup
await fetch('https://cronly.eu/api/jobs', {
  method: 'POST',
  headers: { 'Authorization': 'Bearer YOUR_API_KEY' },
  body: JSON.stringify({
    name: 'welcome-email',
    url: 'https://myapp.com/api/send-welcome',
    run_at: new Date(Date.now() + 86400000).toISOString()
  })
});
SaaS Reports

Report Generation

Generate PDFs or exports without timing out. Email when ready.

// Return immediately, process in background
await cronly.createJob({
  name: 'generate-report',
  url: 'https://myapp.com/api/reports/generate',
  run_at: new Date().toISOString(),
  body: JSON.stringify({ reportId, userId })
});
return Response.json({ status: 'processing' });
Webhooks Stripe

Webhook Relay

Acknowledge webhooks fast, process reliably later.

// Stripe webhook - return 200 immediately
export async function POST(req) {
  const event = await req.json();
  await cronly.createJob({
    name: `stripe-${event.id}`,
    url: 'https://myapp.com/api/process-stripe',
    run_at: new Date().toISOString()
  });
  return Response.json({ received: true });
}

Scheduled Tasks

Replace server cron jobs with managed, observable scheduling.

Billing

Subscription Renewals

Process recurring billing daily at 6 AM UTC.

{
  "name": "process-renewals",
  "url": "https://myapp.com/api/billing/renewals",
  "cron": "0 6 * * *"
}
Maintenance

Database Cleanup

Clean up old sessions every night at 2 AM.

{
  "name": "cleanup-sessions",
  "url": "https://myapp.com/api/maintenance/cleanup",
  "cron": "0 2 * * *"
}
Monitoring

Health Checks

Monitor external APIs every 15 minutes.

{
  "name": "healthcheck-stripe",
  "url": "https://myapp.com/api/health/stripe",
  "cron": "*/15 * * * *"
}

Why Cronly?

No infrastructure

Just HTTP endpoints. Works with any stack, any platform.

Cron + one-time jobs

Recurring schedules and delayed jobs in one simple API.

Built-in retries

Automatic exponential backoff. No retry logic to build.

EU-hosted

Your data stays in Europe. GDPR-friendly by design.

Alternatives comparison

Alternative Limitation
setTimeout/setInterval Doesn't survive restarts, no visibility
Database polling You're building job infrastructure
SQS/RabbitMQ Overkill - workers, DLQs, monitoring
Vercel/CloudFlare cron No one-time jobs, no retries, platform lock-in