Vercel Cron Hobby: where scheduled jobs, Fluid Compute, and AI Gateway hit limits
Vercel Hobby works for personal projects, but Cron, function execution, CPU, memory, and commercial use have separate boundaries. This guide turns Cron, Fluid Compute, and AI Gateway into one Next.js acceptance workflow.
Vercel Cron Hobby can run scheduled jobs and AI calls for a personal project, but Cron count, function duration, Active CPU, memory, invocations, and commercial use must be evaluated separately. The current docs list a 300-second Hobby function limit, 4 included Active CPU hours, 360 GB-hours of Provisioned Memory, and one million included function invocations. Hobby is restricted to non-commercial personal use. This page was checked on November 10, 2026.
Assign one owner to each boundary
A typical indie backend job fetches external data each day, cleans it, writes to a database, and asks a model for a summary. Cron triggers the request. The function runs code. Fluid Compute describes CPU and memory behavior. AI Gateway handles model routing and observability. Calling all of that a single free quota hides the failure mode.
Read the Vercel Hobby plan beside the Vercel limits page. The plan page lists 4 Active CPU hours, 360 GB-hours of memory, and one million function invocations. The limits page lists a 300-second Hobby function maximum plus 2 GB and 1 vCPU defaults and maximums. Each page answers a different question, so one number cannot stand in for the complete acceptance test.
Validate the Cron schedule and its security first
Put one minimal Cron entry in vercel.json and make it write a timestamped run record. Confirm the expected trigger in deployment logs. Then trigger the same request twice and confirm that the job is idempotent. Protect the endpoint with CRON_SECRET or an equivalent server-side check. A public URL is not a secure scheduler.
The official Cron documentation now redirects from an older path to the Schedules documentation, which is a reminder that product entry points change. Record the Cron list, expression, and last run in the project notes. Use the current Cron Jobs section of the limits page for plan boundaries instead of relying on an old blog post that describes a different quota.
Read Fluid Compute as CPU plus memory
Fluid Compute separates Active CPU from Provisioned Memory. The official usage page says that time spent waiting for a database or an AI model does not count as Active CPU, while reserved memory can continue to exist during the wait. That makes I/O-heavy AI work more predictable, but it does not create an unlimited runtime.
Hobby functions still have a 300-second maximum. If a job downloads data, parses it, calls several models, and writes results, split those phases into retryable steps. Store state after each step. On a duplicate trigger, inspect the state before continuing. Do not stretch one function into a half-hour workflow, and do not use a browser refresh to keep a background process alive.
