Why I Added LocalStack to My Dev Workflow (and Why It Didn't Fix Everything)

How using LocalStack cut my AWS iteration time, reduced surprises in integration tests, and the real tradeoffs that kept me running occasional tests on real AWS.

Written by: Rohan Deshpande

Person working on a laptop with coffee and notes, development environment visible
Image credit: Pixabay / StartupStockPhotos

When you’re shipping features that touch S3, SNS, Lambda or DynamoDB, the slowest part of building isn’t writing code — it’s waiting for an environment to behave. Waiting for cloud deployments, compiling infra changes, or dealing with flakey test runs eats momentum. After a few painful deploy-test-fix cycles that cost me hours (and a few late-night chai runs), I added LocalStack to my local workflow. It cut my iteration time dramatically — but it also taught me when “close enough” isn’t.

This isn’t a praise piece or a vendetta. It’s a practical account of how I use LocalStack daily, the problems it solves for teams in India, and the concrete limits that still force me back into the real AWS occasionally.

What LocalStack actually gave me

How I wire it into code (high level)

A typical local-dev command I use:

Why this matters in India

Tradeoffs and the bits that bite

A pragmatic workflow that worked for us

Some practical tips that saved time

When to skip LocalStack

My final take: use LocalStack, but don’t worship it LocalStack changed the day-to-day rhythm of building cloud features for us. We ship faster, catch obvious wiring problems earlier, and save avoidable cloud costs. But it’s a tool, not a replacement for a real cloud — especially for hard security and infra edge cases. For Indian teams balancing bandwidth, cost, and velocity, it’s a practical middle ground: cheap, fast, and effective — until it isn’t. Accept that you’ll still need a sliver of real-AWS testing, and design your CI pipeline around that reality.

If you try this, start small: pick two services you use the most, wire LocalStack to your dev scripts, and add a one-line staging smoke test against real AWS. That single extra safety net will save the “it worked locally” regret later.