Welcome to Stelvio
Stelvio is a Python framework that makes AWS development simple for Python devs.
It lets you build and deploy AWS applications using pure Python code and a simple CLI, without dealing with complex infrastructure tools.
Head over to the Quick Start guide to get started.
Stelvio is in Early Development
Stelvio is actively developed as a side project. While the core features are stable, expect some API changes as we improve the developer experience.
Currently supports Lambda, DynamoDB, API Gateway, and more AWS services coming soon!
Why I Built This
As a Python developer working with AWS, I got tired of:
- Switching between YAML, JSON, and other config formats
- Figuring out IAM roles and permissions
- Managing infrastructure separately from my code
- Clicking through endless AWS console screens
- Writing and maintaining complex infrastructure code
I wanted to focus on building applications, not fighting with infrastructure. That's why I created Stelvio.
How It Works
Here's how simple it is to create and deploy an API with Stelvio:
from stelvio.app import StelvioApp
from stelvio.config import StelvioAppConfig, AwsConfig
app = StelvioApp("my-api")
@app.config
def config(env: str) -> StelvioAppConfig:
return StelvioAppConfig(aws=AwsConfig(region="us-east-1"))
@app.run
def run() -> None:
from stelvio.aws.api_gateway import Api
api = Api('my-api')
api.route('GET', '/users', 'users/handler.get')
api.route('POST', '/users', 'users/handler.create')
Then deploy with one command:
Stelvio takes care of everything else:
- Creates Lambda functions automatically
- Sets up API Gateway with routing
- Handles IAM roles and permissions
- Manages environment variables
- Deploys everything to AWS
What Makes It Different
Zero-Setup CLI
Get started in seconds with stlv init
. No complex configuration, no manual tool installation, no YAML files. Just install Stelvio and start deploying.
Just Python
Write everything in Python. No new tools or languages to learn. If you know Python, you know how to use Stelvio.
Environment Management Built-In
Deploy to your personal environment by default, or share staging/production environments with your team. All resources are automatically isolated and named.
Smart Defaults That Make Sense
Start simple with sensible defaults. Add configuration only when you need it. Simple things stay simple, but you still have full control when you need it.
Type Safety That Actually Helps
Get IDE support and type checking for all your AWS resources. No more guessing about environment variables or resource configurations.
Ready to Try It?
Head over to the Quick Start guide to get started.
What I Believe In
I built Stelvio believing that:
- Infrastructure should feel natural in your Python code
- You shouldn't need to become an AWS expert
- Simple things should be simple
- Your IDE should help you catch problems early
- Good defaults beat endless options
- Developer experience matters as much as functionality
Let's Talk
- Found a bug or want a feature? Open an issue
- Have questions? Join the discussion
- Want updates and tips? Follow me on X
License
Stelvio is released under the Apache 2.0 License. See the LICENSE file for details.