Netlify vs AWS Amplify: why I switched and what I learned

tech

February 08, 2026

Netlify's New Credit-Based Pricing: Why 20 Builds Per Month Wasn't Enough

A few months ago, I decided to host my application on Netlify. A friend recommended it as a great platform for hosting static sites, and I was eager to give it a try. What I didn't realize at the time was just how quickly I'd burn through my monthly credits. Let me break down the numbers for you.

In September of last year, Netlify transitioned to a new credit-based pricing model.

Snippet info from Netlify docs

With the free tier, you get 300 credits per month, which you can use to deploy any framework within that limit (Netlify Docs).

I didn't look too closely at their pricing policy initially. I thought my builds weren't particularly heavy anyway β€” they averaged just over a minute each. What I didn't realize was that build minutes are no longer the metric that matters. Instead, each build costs 15 credits, which means you can only make 20 builds per month on the free tier. The silver lining? Failed builds don't count toward your credit allotment.

Note in the past with Netlify's legacy billing system, it was 300 minutes per month which would have taken you a lot further.

If you're someone who pushes frequent production deploys, this could be a deal breaker. That's exactly where I hit a wallβ€”my app was a complete greenfield project, and I was committing and deploying constantly.

The good news is that deploys to feature branches don't consume your credits. So if you're comfortable with larger, less frequent releases to production, Netlify's model might work well for you. But for me, in the early stages of my project with rapid iteration, it simply wasn't sustainable.

Migrating from Netlify to AWS Amplify: Setup and DNS

I decided to give AWS Amplify a shot. Amplify is an AWS service designed to help you deploy applications quickly and easily. The initial setup was straightforward β€” I linked my GitHub repo, and there are plenty of guides available to help you configure Amplify for your specific project. The trickiest part was reconfiguring my DNS settings to point to Amplify instead of Netlify.

The Vendor Lock-In Trade-Off: AWS-Specific Serverless Functions

AWS Amplify

As my project grew, I needed to add serverless functions. (For context - serverless functions are small, stateless pieces of backend code that run only when invoked, without requiring you to manage a server). You keep them in your repo, and platforms like AWS, Netlify, or Vercel automatically spin them up and invoke them on demand.

Since my app is built with Gatsby, I could have used Gatsby's built-in Functions feature by storing my logic in the /src/api directory which is exactly what I did initially. The catch? Gatsby Functions only work on hosting platforms that support them. Once I moved to Amplify, I had to adapt to its specific structure for serverless functions.

How to Set Up Serverless Functions in AWS Amplify (Lambda)

I spent my Saturday afternoon trying to figure out how to configure serverless functions in Amplify. Instead of using /src/api, Amplify requires you to create an amplify folder with the following structure:

amplify/
β”œβ”€β”€ backend.ts
└── functions/
    └── name-of-your-service/
        β”œβ”€β”€ resource.ts
        └── handler.ts
  • The backend.ts file is the main entry point for your Amplify Gen 2 backend where you register your functions.
  • The resource.ts Function configuration, e.g. env variables / secrets
  • The handler.ts Function code, a handler for your endpoint (runs on AWS Lambda)
  1. Defines which resources to deploy
  2. Configures the Function URL - Makes the Lambda accessible via HTTP
  3. Sets up CORS - Specifies which origins can call the function from the frontend
  4. Outputs the URL - Saves the function URL to amplify_outputs.json after deployment

When you push to your branch, here's what happens:

  1. Amplify builds the frontend (in my case, a Gatsby static site)
  2. Amplify deploys the backend (Lambda function via CDK)
  3. The Function URL is created and saved to amplify_outputs.json
  4. The frontend can read this file to retrieve the API URL

Netlify vs Amplify: Pricing, Build Times & Final Verdict

The main downside of using Amplify is that it tightly couples your project to AWS infrastructure. If you ever decide to migrate to another platform, you'll need to refactor all those serverless functions β€” which could be a significant undertaking.

On the pricing front, AWS charges per build minute, and you get 1,000 build minutes per month on the free tier. For Lambda functions, you get 1 million requests per month. Honestly, with my pet project, I'd be thrilled to get even 10 requests per month.

While vendor lock-in is a concern, I've learned a tremendous amount along the way. However, the biggest drawback I've encountered is the dramatic increase in build times. Remember how I mentioned my Netlify builds took just over a minute? When I first moved to Amplify, builds averaged around 2.5 minutesβ€”nearly twice as long, but still manageable. Then I added one small Lambda function to my project, and my build time skyrocketed to 10 minutes. That's genuinely painful.

I'm not ruling out the possibility of moving back to Netlify in the future and using my 300 credits more strategically. For now, though, I'm sticking with Amplify and learning more how to optimize my builds.

Profile picture

I’ve been living and working in London since 2022, shaping a new country into home. This blog brings together my experiences, missteps, and practical guidance on navigating life in the UK β€” from bureaucratic paperwork and daily routines to the moments of discovery that make the journey worthwhile.

Stay Connected

Get notified when I publish new articles about living in the UK, financial tips, and expat life.

No spam, unsubscribe at any time. Read the privacy policy.