The most surprising thing about Netlify’s limits is how much you can actually do on the free tier before hitting a wall.

Let’s say you’ve got a static site, maybe a personal blog or a small marketing page, deployed on Netlify. It’s humming along, serving requests, and you’re not paying a dime.

{
  "site": {
    "id": "your-site-id",
    "name": "your-awesome-site",
    "url": "https://your-awesome-site.netlify.app",
    "build_image": "ubuntu-22.04-xcode14.2-node18",
    "plan": "free",
    "features": {
      "build_minutes": 300,
      "bandwidth": 100,
      "storage": 1,
      "functions_runtime": 125,
      "functions_invocations": 1000000,
      "concurrent_builds": 1
    }
  }
}

This JSON snippet, if you were to query the Netlify API, shows the core resources available on a "free" plan. Notice build_minutes, bandwidth in GB, storage in GB, functions_runtime in hours, and functions_invocations. These are the primary throttles.

The problem Netlify’s free tier solves is providing a robust, performant hosting solution for small to medium projects without upfront cost. It democratizes deployment for individuals and early-stage startups. Internally, Netlify leverages a global CDN for bandwidth, managed infrastructure for builds, and serverless functions for dynamic capabilities.

Here’s how the limits play out in practice:

  • Build Minutes: Every time you push a change and Netlify rebuilds your site, it consumes build minutes. A complex Gatsby or Next.js build can easily chew through 5-10 minutes per run. On the free tier, you get 300 minutes per month. This means roughly 30-60 builds a month for a moderately complex site, which is usually plenty for a personal blog or a small project.
  • Bandwidth: This is the total data transferred from Netlify’s CDN to your visitors. 100 GB per month is substantial for static sites. A typical page might be 1MB. This means 100,000 page views a month. Unless you’re experiencing viral traffic, this is rarely the first limit you’ll hit.
  • Functions Runtime: Netlify Functions (based on AWS Lambda) allow you to add dynamic server-side logic. You get 125 hours of execution time per month on the free tier. A function that runs for 1 second, 100,000 times, is about 28 hours of runtime. This is a generous allowance for typical API endpoints or form handlers.
  • Functions Invocations: You get 1 million invocations per month. This means your functions can be triggered a million times. Combined with the runtime limit, this means most functions will run for very short durations.

The Pro plan, on the other hand, raises these limits significantly: 1,200 build minutes, 500 GB bandwidth, 100 GB storage, 250 hours of functions runtime, and 10 million function invocations. Crucially, it also unlocks features like concurrent builds (allowing multiple builds to run simultaneously, speeding up deployment queues) and team collaboration.

The one thing most people don’t realize is that Netlify’s build system is highly optimized. It doesn’t rebuild your entire site from scratch every time. It uses caching extensively. If you only change a single markdown file, it might only take seconds to rebuild, consuming a fraction of a build minute. The "build minutes" are not just for the build process itself, but also for any post-processing or deployment steps.

The next concept you’ll likely encounter is how to optimize your builds to stay within the free tier limits longer, or when to strategically upgrade to Pro for features like concurrent builds.

Want structured learning?

Take the full Netlify course →