Skip to main content

StackForDev

CI PyPI version Python Versions License: MIT codecov

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

  1. Select language, stack, and version (interactively or via flags)
  2. The CLI calls the StackForDev API, or generates locally with --local
  3. A tailored Dockerfile (and optionally docker-compose.yml + .dockerignore) is returned
  4. Build the image and run commands inside the container — no local language installation needed

Architecture

Architecture Diagram

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)

Source distribution for stackfordev 0.2.3
File Size Uploaded
stackfordev-0.2.3.tar.gz 14.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for stackfordev 0.2.3
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.2.3 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page