Quickstart
Greening is a dev automation tool for solo developers who want to ship polished software fast, without spending hours setting up the same boilerplate over and over.
This guide walks you through creating a new project from scratch using Greening.
โ๏ธ What the Commands Do
-
greening init
Creates a startergreening.yaml
config file in your current directory. greening new
Scaffolds a complete project using the config:- Sets up your Python project
- Creates a virtual environment at
venv/
(optional) - Initializes a Git repo
- Optionally creates and pushes to a GitHub repo
greening deploy
Builds and deploys a static site to GitHub Pages (like your docs or about page) to thegh-pages
branch. Great for publishing your project landing page.
๐ Step-by-Step
1. Create a Config File
Run:
greening init
Then edit the newly created greening.yaml
:
project_name: My Greening Project
project_slug: my_greening_project
author_name: Your Name
email: you@example.com
github_username: your-handle
create_github_repo: true
push: true
venv:
create: true
python: python3
๐ Youโll also need a
GITHUB_TOKEN
set in your environment to auto-create/push the repo. See GitHub docs here
2. Scaffold the Project
Run:
greening new
Greening will:
- Generate the project structure using a Cookiecutter template
- Create a
venv/
if configured - Initialize Git and optionally push to GitHub
3. Deploy Your Site (Optional)
With a single command you can generate a clean GitHub Pages site that auto-deploys to GitHub
greening deploy
This:
- Renders your site using Cookiecutter
- Checks out (or creates) a
gh-pages
branch - Commits and optionally pushes your static site
๐งช Example Folder After Scaffolding
my_greening_project/
โโโ venv/ # Optional virtual environment
โโโ my_greening_project/ # Your Python package
โโโ tests/
โโโ pyproject.toml
โโโ README.md
โโโ .git/
โโโ .github/
โโโ greening.yaml
๐ Reusability & Scale
Once your config is dialed in, you can reuse it across every project. Greening ensures:
- Consistent structure
- Documented from day one
- Ready to publish at any moment