StackForDev
Docker as your dev environment. Select a language and stack, get a tailored Dockerfile — no local language installation required.
Instead of installing Python, Node, Go, Rust, or Java on your machine, StackForDev generates a Dockerfile that acts as a transparent runtime proxy. You run commands inside the container against your volume-mounted project files. Your host stays clean.
Quick Start
pip install stackfordev
# Bootstrap a complete dev workspace in one command
stackfordev init -l python -s "Django Stack" -v 3.12
# Then:
docker compose build
source devrun.sh
devrun python manage.py runserver
Or just generate a Dockerfile:
stackfordev generate -l python -s "Django Stack" -v 3.12 --compose -o ./Dockerfile
Usage
# Bootstrap a full workspace (Dockerfile + docker-compose.yml + .dockerignore + devrun.sh)
stackfordev init -l python -s "Django Stack" -v 3.12
stackfordev init # interactive mode
# Interactive mode (prompts for missing options)
stackfordev generate
# Non-interactive
stackfordev generate -l python -s "Django Stack" -v 3.12
# With extra dependencies
stackfordev generate -l python -s "Data Science Stack" -v 3.11 -e "numpy,pandas,scikit-learn"
# Save to file
stackfordev generate -l go -s "Gin Stack" -v 1.23 -o ./Dockerfile
# Also generate docker-compose.yml and .dockerignore
stackfordev generate -l python -s "Django Stack" -v 3.12 --compose -o ./Dockerfile
# Generate offline (no API call)
stackfordev generate -l javascript -s "Express Stack" -v 22 --local
# Raw JSON output
stackfordev generate -l rust -s "Actix-Web Stack" -v 1.82 --json
# Show all supported languages, versions, and stacks
stackfordev info
Supported Languages & Stacks
Use stackfordev info for a live table. Summary:
| Language | Versions | Stacks |
|---|---|---|
| Python | 3.9, 3.10, 3.11, 3.12 | Django Stack, Flask Stack, Data Science Stack, Web Scraping Stack, Machine Learning Stack |
| JavaScript | 18, 20, 22 | Express Stack, React Stack, Vue.js Stack, Node.js API Stack, Full-Stack JavaScript |
| Go | 1.21, 1.22, 1.23 | Gin Stack, Beego Stack, Web Framework Stack, Microservices Stack, Data Processing Stack |
| Rust | 1.80, 1.81, 1.82 | Actix-Web Stack, CLI Tools Stack, WebAssembly Stack |
| Java | 11, 17, 21 | Spring Boot Stack, Maven Build Stack, Gradle Build Stack |
CLI Options
stackfordev generate [OPTIONS]
-l, --language TEXT Programming language
-s, --stack TEXT Dependency stack (e.g. 'Django Stack')
-v, --version TEXT Language version (e.g. 3.12)
-e, --extras TEXT Comma-separated extra dependencies
-o, --output PATH Save Dockerfile to path
--compose Also generate docker-compose.yml and .dockerignore
--local Generate offline without API call
--json Output raw JSON response
--help Show this message and exit.
stackfordev info Show supported languages, versions, and stacks
stackfordev init [OPTIONS]
-l, --language TEXT Programming language
-s, --stack TEXT Dependency stack
-v, --version TEXT Language version
-e, --extras TEXT Comma-separated extra dependencies
-d, --directory PATH Target directory (default: current directory)
--help Show this message and exit.
How It Works
- Select language, stack, and version (interactively or via flags)
- The CLI calls the StackForDev API, or generates locally with
--local - A tailored Dockerfile (and optionally
docker-compose.yml+.dockerignore) is returned - Build the image and run commands inside the container — no local language installation needed
Architecture
Request flow:
CLI / API call
→ API Gateway (rate-limited, CORS)
→ AWS Lambda (Python 3.11, container runtime, ECR)
→ Pydantic validation + injection checks
→ Template substitution (language + stack + version)
→ S3 dedup check → upload
→ JSON response {dockerfile, key, message}
Infrastructure: AWS Lambda + API Gateway + S3 + ECR, provisioned with Terraform. CloudWatch alarms monitor error rate and throttles. S3 lifecycle policy manages storage costs automatically.
Monitoring
- Errors alarm: fires when Lambda errors ≥ 5 in a 5-minute window → SNS notification
- Throttles alarm: fires when Lambda throttles ≥ 10 in a 5-minute window
- Log retention: CloudWatch Logs retained for 30 days, structured as JSON for Logs Insights queries
- Concurrency cap: Lambda reserved concurrency set to 10 to prevent runaway scaling
Contributing
See CONTRIBUTING.md for local setup, how to run tests, and how to add a new language template in 4 steps.
Changelog
See CHANGELOG.md.
License
MIT — see LICENSE for details.
Metadata
Release files for stackfordev 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| stackfordev-0.2.3.tar.gz | 14.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| stackfordev-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.6 kB
Release files / stackfordev-0.2.3.tar.gz
| Download URL | stackfordev-0.2.3.tar.gz |
|---|---|
| Size | 14.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cd7ebb11310969d05d535f85637ea94ce45990bd941c8f6664b5d3ea23d204c5
|
|
BLAKE2b-256 checksum How to use checksums |
b921a59ca8fb250f40c00be9be450cce40558b1853de3481402bc78b69764f55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 22, 2026.
Transparency logRelease files / stackfordev-0.2.3-py3-none-any.whl
| Download URL | stackfordev-0.2.3-py3-none-any.whl |
|---|---|
| Size | 20.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0d57647f6a4326e5bed1cace04d05a99d7836e1902c5e890cf0923ec7d46e362
|
|
BLAKE2b-256 checksum How to use checksums |
b08602df564b1385257d2f33fedf3b01ca9e1dd7a2d6ddc626e56b24b4e1beae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Feb 22, 2026.
Transparency log