A client rang me last year, proper panicked. His agency's marketing site had gone down mid-campaign. Not a server crash, not a DDoS. Netlify had just throttled his bandwidth because he'd blown past the free tier limit on a Tuesday afternoon, three weeks before his billing cycle reset. He'd been on the Starter plan since 2021 and never once thought about it. Neither had I, honestly, until that call.
That incident made me sit down and actually map out what Netlify's free tier gives you, where it quietly cuts you off, and whether the upgrade to Pro is worth it or whether there's a smarter workaround. After building and hosting north of 12,000 sites across Seahawk's lifetime, I've put enough projects through Netlify to have opinions worth sharing.
What the Netlify Starter Plan Actually Includes
Let's be concrete. The Netlify Starter plan is free, no credit card required, and it covers one member per team. Here's what you get:
- 100GB bandwidth per month across all your sites
- 300 build minutes per month shared across all projects
- Netlify Functions: 125,000 requests and 100 hours of runtime per month
- Forms: 100 form submissions per month
- 1 concurrent build (queue everything else)
- Continuous deployment from Git (GitHub, GitLab, Bitbucket)
- Instant rollbacks
- Custom domains with automatic HTTPS via Let's Encrypt
- Netlify Edge network (CDN) included
- Deploy previews for pull requests
That list looks impressive. And for a personal portfolio, a small brochure site, or a hobby project, it genuinely is. The HTTPS automation alone used to take me 20 minutes per site manually. Now it's zero effort.
But notice what's missing from the marketing copy: those limits are shared across your entire team account. One account, all your sites, one pool.
Where the Bandwidth Limit Actually Bites
100GB sounds like a lot. It is not always a lot.
Think about it this way. A reasonably optimised site with a 2MB average page weight, and if you're not compressing images properly that number climbs fast, will chew through 1GB every 500 visitors. Scale that to 50,000 monthly visitors and you're looking at 100GB gone. On one site.
I had a Gatsby blog project for a food and travel client back in 2022. Good content, proper SEO work behind it. The site started pulling around 60,000 sessions a month, which we were thrilled about, until I noticed bandwidth was hitting 85GB and we still had nine days left in the month. We moved them to Netlify Pro pretty sharpish.
The thing people don't account for: Netlify counts outbound bandwidth, meaning every asset your visitors download. Unoptimised hero images, embedded fonts, JavaScript bundles that haven't been properly code-split, all of it counts. Run your site through WebPageTest before you host anywhere and get your page weight under control. That single habit has saved several of my clients from unnecessary upgrades.
What Happens When You Hit the Limit
Netlify doesn't just slow you down. They serve a Netlify-branded error page to your visitors instead of your site. It's not graceful. There's no warning email with enough lead time to actually act on it. The site goes down. That's what happened to my client.
You can set up spend notifications in the dashboard, and I strongly recommend doing this on day one, but they're not always triggered with enough buffer. Check your bandwidth usage weekly if your sites are getting real traffic.
The 300 Build Minutes Problem
This is the limit that catches agencies first, not bandwidth.
300 minutes sounds fine for one site. But if you're managing five to ten client projects under one Netlify account, and each has a CI/CD pipeline triggering on every push, you will exhaust this by mid-month. A Next.js or Gatsby build on a content-heavy site can run anywhere from 3 to 15 minutes depending on how well you've configured caching.
Here's what I do at Seahawk for free-tier projects:
- Enable build caching properly. Netlify caches the
node_modulesdirectory between builds if you configure it. Don't skip this. It can cut build times by 60-70% on repeat deploys. - Use branch deploy controls. Turn off automatic deploys for every branch and only trigger on
mainorproduction. No reason to burn minutes on a feature branch nobody's reviewed yet. - Batch content changes. If you're on a CMS like Sanity or Contentful, don't publish every small edit as a separate deploy. Use scheduled or manual triggers.
- Split accounts if necessary. Two Netlify accounts each get 300 minutes. Not elegant, but it works for small agencies.
The Netlify build configuration docs cover cache settings in detail. Worth an afternoon of your time.
Netlify Functions on the Free Tier
The 125,000 function invocations per month sounds enormous until you're using Functions for something like form processing, authentication callbacks, or API proxies that fire on every page interaction.
My honest take: for basic serverless tasks on a low-traffic site, the free tier is fine. The moment you're running anything resembling real application logic, user sessions, dynamic data fetching, webhook processing at volume, you'll want to at least pencil in the cost of Netlify Pro (currently $19/month per member) or reconsider whether Netlify Functions is the right tool at all. Cloudflare Workers has a very generous free tier for pure function compute, and I've used it alongside Netlify hosting on a couple of projects where compute needs were heavier.
Forms: The 100 Submission Cap is Tiny
Genuinely the most underestimated limit on the Starter plan.
100 form submissions per month across all your sites. If you have a contact form on a live business site that gets any traffic worth mentioning, you will hit this. I hit it on a three-page brochure site for a local accountancy firm within two weeks of launch.
For free-tier projects where forms matter, I now bypass Netlify Forms entirely and wire directly to Formspree or a simple Zapier webhook. The Netlify Forms feature is genuinely good and the spam filtering works well, but the 100-submission limit makes it a toy for anything client-facing.
Concurrent Builds and Deploy Queue Latency
One concurrent build means everything else queues. On a quiet personal project, you'll never notice. On a team workflow where two developers are pushing simultaneously, you'll notice immediately.
I ran into this at Seahawk during a particularly hectic sprint for a retail client's relaunch. Three devs, all pushing fixes, all waiting for the single build slot to free up. Feedback loops got slow. We ended up temporarily bumping to Pro just for that fortnight then dropping back down. Netlify lets you cancel and downgrade mid-cycle, so this kind of surgical upgrade is genuinely viable.
When Upgrading to Pro Actually Makes Sense
Not every project needs Pro. Here's how I think about it:
- Client site with 20,000+ monthly visitors: probably upgrade. Bandwidth risk isn't worth the client trust damage.
- Team of two or more developers actively deploying: upgrade for concurrent builds alone.
- Any site using Netlify Forms seriously: upgrade or replace the forms tool.
- Personal project, portfolio, or staging site: stay on free, manage it intelligently.
Netlify Pro is $19/month per team member at the time of writing. For a single freelancer, that's $228/year. Compare that to what one site outage during a product launch costs in client goodwill, and the maths isn't hard.
There are also genuinely strong alternatives worth knowing. Cloudflare Pages has an extremely generous free tier (500 builds/month, unlimited bandwidth) and I've migrated a few lighter projects there when Netlify's build minutes became the bottleneck. Vercel is the obvious comparison too, especially for Next.js. Neither is strictly better, they each have their own sharp edges.
What I Actually Recommend for New Projects
Be deliberate about which account you put things on. At Seahawk, we keep internal and experimental projects on free accounts and move client-facing production sites to paid accounts by default. The $19/month is a business expense. Treating it as optional for live client work is a false economy.
Audit your bandwidth monthly. Set the spend alerts. Compress your images before deployment, use a tool like Squoosh or run sharp in your build pipeline. And if you're managing more than four or five active sites, seriously consider whether a single Netlify account is the right structure or whether separate accounts per client with proper billing makes more sense organisationally.
---
FAQ
Does Netlify's free tier include a custom domain?
Yes. You can connect any custom domain you own to a Netlify Starter site. Netlify handles DNS configuration (if you use Netlify DNS) and provisions a free TLS certificate automatically via Let's Encrypt. No cost for the domain connection itself, though you still pay your registrar for the domain.
What happens to my site if I exceed the bandwidth limit?
Netlify replaces your site with a Netlify error page until your billing cycle resets or you upgrade. There's no automatic throttling or slowdown first. It's a hard stop. This is why monitoring your usage mid-month matters.
Can I have multiple sites on one free Netlify account?
Yes, there's no stated cap on the number of sites. The limits (bandwidth, build minutes, form submissions, function invocations) are pooled across all sites on the account. More sites just means those pools drain faster.
Is Netlify's free tier suitable for a client's production site?
It depends on traffic and your risk tolerance. For very low-traffic sites under 20,000 monthly visitors with minimal form usage, it can work if you're watching the metrics. For anything client-facing where downtime has real consequences, I'd pay for Pro. The $19/month is not worth gambling over.
How do build minutes get calculated?
Netlify counts the actual time your build process runs on their infrastructure, rounded up to the nearest minute. A cancelled build still consumes the minutes it used before cancellation. Parallel builds (available on higher plans) don't save total minutes, they just let multiple builds run at the same time.
