Documentation - Why I'm building Stelvio - Intro article with quickstart
Stelvio is a Python framework that simplifies AWS cloud infrastructure management and deployment. It lets you define your cloud infrastructure using pure Python, with smart defaults that handle complex configuration automatically.
With the stlv
CLI, you can deploy AWS infrastructure in seconds without complex setup or configuration.
- Developer-First: Built specifically for Python developers, not infrastructure experts
- Zero-Setup CLI: Just run
stlv init
and start deploying - no complex configuration - Python-Native Infrastructure: Define your cloud resources using familiar Python code
- Environments: Personal and shared environments with automatic resource isolation
- Smart Defaults: Automatic configuration of IAM roles, networking, and security
Support for additional AWS services is planned. See Roadmap.
Define AWS infrastructure in pure Python:
@app.run
def run() -> None:
# Create a DynamoDB table
table = DynamoTable(
name="todos",
partition_key="username",
sort_key="created"
)
# Create an API with Lambda functions
api = Api("todos-api")
api.route("POST", "/todos", handler="functions/todos.post", links=[table])
api.route("GET", "/todos/{username}", handler="functions/todos.get")
See the intro article for a complete working example.
# Create a new project
uv init my-todo-api && cd my-todo-api
# Install Stelvio
uv add stelvio
# Initialize Stelvio project
uv run stlv init
# Edit stlv_app.py file to define your infra
# Deploy
uv run stlv deploy
Go to our Quick Start Guide for the full tutorial.
Unlike generic infrastructure tools like Terraform, AWS CDK or Pulumi Stelvio is:
- Built specifically for Python developers
- Focused on developer productivity, not infrastructure complexity
- Designed to minimize boilerplate through intelligent defaults
- Maintained in pure Python without mixing application and infrastructure code
For detailed explanation see Why I'm building Stelvio blog post.
Stelvio is currently in early but active development.
Best way to contribute now is to play with it and report any issues.
I'm also happy to gather any feedback or feature requests.
Use GitHub Issues or email me directly at [email protected]
If you want to contribute code you can open a PR. If you need any help I'm happy to talk.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.