Technical
What Is Serverless and Why I Build Everything on It
A client asked me how much their server costs would be. I said zero. They did not believe me. Then I showed them three months of AWS bills, each one showing $0.00. Here is how serverless makes that possible.
What Serverless Actually Means
Serverless does not mean no servers. It means you do not manage, provision, or pay for servers when they are idle. Your code runs in response to events (HTTP requests, schedules, file uploads), and you pay only for the compute time you actually use.
The three pillars of serverless:
- No idle costs: Pay per request, not per hour. Zero traffic means zero cost.
- Auto-scaling: From zero to thousands of concurrent requests without configuration
- No ops: No SSH, no patching, no capacity planning, no midnight pages
The AWS Free Tier Stack
Here is my go-to serverless stack and what it costs per month:
AWS Lambda: 1M requests/month free
API Gateway: 1M requests/month free
DynamoDB: 25GB storage, 25 RCU/WCU free
SES: 3,000 emails/month free
S3: 5GB storage free
CloudFront: 1TB transfer freeFor a blog platform with moderate traffic (a few thousand visitors per day), this is more than enough. The monthly bill stays at $0.00 indefinitely.
When Serverless Wins
Serverless is the right choice when:
- Traffic is unpredictable: A blog post goes viral and Lambda scales from 0 to 1000 concurrent executions automatically. No capacity planning needed.
- Budget is tight: $0/month beats $20/month for a VPS that sits idle 99% of the time
- You are a small team: No DevOps engineer needed. AWS handles infrastructure.
- The workload is request-driven: APIs, webhooks, scheduled tasks, event processing
When Serverless Loses
Be honest about the tradeoffs:
- Cold starts: First request after idle takes 1-2 seconds to initialize
- Execution limits: Lambda has a 15-minute maximum (not suitable for long-running jobs)
- Vendor lock-in: Your code depends on AWS services and their specific APIs
- Debugging: CloudWatch logs are functional but not as convenient as local log files
My Production Architecture
Client Browser
|
v
Vercel (Next.js frontend, free tier)
|
v
API Gateway + Lambda (FastAPI backend, free tier)
|
v
DynamoDB (database, free tier)
|
v
SES (email delivery, free tier)Total infrastructure cost: $0/month. Handles thousands of daily requests. Scales automatically if traffic spikes. No servers to maintain, update, or monitor.
The Mental Model
Think of serverless as functions-as-a-service. You write a function. AWS runs it when someone makes a request. You pay for the milliseconds it takes to execute. When nobody is using your app, you pay nothing. That is the entire model, and it works.
See the AWS Lambda documentation for getting started with serverless.
RELATED READING
The Consulting Shift I Am Making In Year Two
After a year of writing and building, my consulting practice is changing shape. Shorter engagements. Sharper outcomes.
ReadThe Frontend Shift: Shipping Less JavaScript In Year Two
A year ago I reached for Next.js for everything. This year I often reach for nothing.
ReadThe Serverless Lesson I Would Write On A Sticky Note
After a year of shipping serverless projects, one rule explains most of the wins and all of the losses.
Read