Get Your Lambda On: Local Serverless Development Without the Pain

Serverless is supposed to make life easier. You write some code, push it to the cloud, and the infrastructure takes care of itself. No servers to manage, no idle costs, infinite scale… What's not to love?

However, the reality is often much less convenient for developers working with serverless platforms like AWS Lambda.

At EuroPython 2025, Damian Wysocki, Python Developer at Mirumee Commerce Lab, gave a talk about this exact problem and how we’ve approached solving it with two open-source tools: Smyth and Lynara.

If you missed the talk, you can view the slides here.

The Reality of Serverless Development

The core idea behind serverless is compelling, especially for smaller teams. You only pay when your code runs, and you don’t have to deal with infrastructure overhead. But as soon as you try to build anything non-trivial, cracks begin to show.

  • You can’t easily control the runtime environment.
  • You end up testing in production.
  • You spend more time staring at CloudWatch logs than writing code.

Even the smallest change can mean a full redeploy just to verify that something works.

The development loop becomes painfully slow. Debugging becomes a guessing game. And suddenly, that “zero maintenance” platform feels heavier than a container stack you could have spun up yourself.

We Just Wanted a Faster Feedback Loop

What we really wanted was something simple: a way to work with AWS Lambda that felt like working with any other web framework. Make a change, run a test, see a result without going through the cloud.

We evaluated the usual suspects:

  • pytest gives you fast, deterministic feedback, but doesn’t emulate a full HTTP environment.
  • The serverless framework offers deployment support, but doesn’t play nicely with Python 3.12 and exposes Lambdas over HTTP in a way that complicates local testing.
  • LocalStack gets closer, but it’s still slow. Code refreshes can take up to two minutes. That’s often faster than real AWS, but it still slows down local dev loops more than we’d like.
Traditional Lambda Workflow

We didn’t want to spin up new workflows. We just wanted our service to reload when we saved a file, like it does in every other web project we’ve ever worked on.

Smyth: Local Lambda Development That Feels Like Real Dev

That’s why we built Smyth.

Smyth is a CLI tool designed to make Lambda development feel normal. It mimics the AWS runtime locally, without needing a live cloud environment. 

You can test, iterate, and debug without ever leaving your terminal or waiting two minutes for your code to warm up.

It’s offline-friendly, quick to start, and tailored specifically for Python workflows. The runtime is close enough to production that you’re not writing code “in theory,” you’re building against what will actually run.

Lynara: Run FastAPI on Lambda Without Lock-In

The second part of the stack is Lynara, a small ASGI adapter that lets you run FastAPI, Starlette, or any other ASGI-compatible app on AWS Lambda.

No vendor-specific abstractions. No rewrites. No surprise costs.

With Lynara, you can deploy ASGI apps to Lambda in a clean, minimal way, keeping your app logic exactly the way it is, while gaining the benefits of serverless deployment.

It’s meant to be boring in the best way. You write your app, and it just works. 

Whether you’re deploying to Lambda in staging, using EC2 in production, or mixing and matching based on your environment, Lynara gives you the flexibility to decide.

Real Projects, Real Use Cases

These tools didn’t come from a lab experiment. We built them because we needed them on real projects:

  • AI workflows using FastAPI and Celery that needed fast startup and async support
  • Mobile backends that received just a few requests a day
  • An invoice generator that’s only used occasionally, but needs to be available and reliable

Serverless made sense in all of these cases… until we tried using it. 

Smyth and Lynara closed the gap between what serverless promises and how working with it feels.

Open Source, Made to Be Used

We open-sourced both tools because we believe they should be easy to adopt, easy to leave, and built for real-world use - not locked behind frameworks or complexity.

Our approach to open source is simple:

  • Build things we need. 
  • Make them useful for others. 
  • Keep the friction low.

If you’re working with Lambda and want to skip the usual headaches, these are ready to drop in.

And if you're coming from EuroPython - thanks for stopping by!

Explore More Open-Source Tools From Mirumee Commerce Lab

GitHub

Let’s engineer great products and systems together

Have a particular project in mind? Contact us help you to transform your ideas into a unique end-to-end product.