greening is an opinionated, full-stack Project as Code automation tool for solo developers and creative coders.
With just a few commands, you can scaffold a production-ready Python package complete with docs, tests, GitHub Actions workflows, PyPI packaging, and an auto-deployed GitHub Pages site. No boilerplate or setup hell, just instant polish.
- 🍃 Why
greening? - 🌿 Key features
- 🌲 Getting started
- 🌻 GitHub authentication
- 🌳 Blog posts
- 🌴 Roadmap
- 🍀 Support
Most devs never ship their tools. Not because the code isn’t good, but because the surrounding friction is too high:
- How do I structure the project?
- How do I set up CI/CD, tests, and linting?
- How do I make it look legit?
- How do I talk about it?
greening answers all of that in one opinionated workflow.
greening automates your project creation pipeline:
✅ greening init - generates a starter greening.yaml config file
✅ greening new - scaffolds your entire Python project in-place
Additional features:
- Builds and pushes a polished GitHub Pages site
- Automatically initializes a Git repo
- Optionally creates a GitHub repository via API
- Optionally pushes to GitHub (main branch)
- Injects metadata throughout the project using Cookiecutter
- Uses Jekyll + Minimal Mistakes for clean, brandable documentation
- Auto-documentation with Sphinx + Read the Docs support
- Automatically wire in Google Analytics if configured
pip install greeningThis creates a starter config file in your current directory:
greening init
It generates greening.yaml:
project_name: Test project
project_slug: test_project
github_username: chris-greening
author_name: Chris Greening
email: chris@christophergreening.com
# git_remote: git@github.com:chris-greening/test-repo.git
push: false
create_github_repo: trueRun this in the same directory as your config:
greening new
greening will generate your project in-place and optionally push it to GitHub.
To enable GitHub repo creation and pushing:
- Generate a GitHub Personal Access Token with
reposcope - Add it to your shell config:
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Then run:
source ~/.bashrc # or ~/.zshrc
See this blog post for more
Check the blog out for more info here
- Introducing Greening: Ship Beautiful Software, Fast
- Open Source is Soil: The Greening Philosophy
- The Philosophy Behind Greening: Developer Momentum
- How to Generate a GitHub Token for Pushing Repos with Greening
- How to Enable Google Analytics Tracking in Your Greening-Deployed Site
A focused, opinionated roadmap toward making Greening the most seamless developer automation tool for launching and shipping polished open source projects.
- Plugin ecosystem to support custom features, commands, etc. within the greening command-line tool
- Custom template support for creating tailor-made templates
- Idempotent execution so commands are safe to run repeatedly with no unexpected side effects
- Cleanup partial builds in the event of a command failure to prevent half-baked launches
Reach out to me if you want to connect or have any questions and I will do my best to get back to you
- Email:
- Twitter:
- Personal contact form:



