[PR #3096] [CLOSED] Add structkit #13696

Closed
opened 2026-04-27 03:10:15 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/vinta/awesome-python/pull/3096
Author: @httpdss
Created: 4/27/2026
Status: Closed

Base: masterHead: master


📝 Commits (1)

  • daad77d Add structkit to productivity tools list

📊 Changes

1 file changed (+1 additions, -0 deletions)

View changed files

📝 README.md (+1 -0)

📄 Description

Project

StructKit

Checklist

  • One project per PR
  • PR title format: Add structkit
  • Entry format: - [structkit](https://github.com/httpdss/structkit) - A command-line tool that scaffolds project files and directories from a YAML configuration.
  • Description is concise and short

Why This Project Is Awesome

Which criterion does it meet? (pick one)

  • Industry Standard - The go-to tool for a specific use case
  • Rising Star - 5000+ stars in < 2 years, significant adoption
  • Hidden Gem - Exceptional quality, solves niche problems elegantly

Explain:

StructKit sits in a gap that the established scaffolders don't fill cleanly. Cookiecutter requires a nested template repo layout and Python+Jinja knowledge. Yeoman is JS-only. PyScaffold is locked to the Python-package use case. StructKit lets you describe an entire project — files, directories, contents, permissions, even pre/post-generation shell hooks — in a single readable YAML file, regardless of the target language.

Differentiating capabilities:

  • Single-file YAML config; no nested template directory to learn
  • Remote content fetching from any HTTP source (GitHub repos, Gists, internal registries) referenced inline in the YAML
  • Jinja2-style template variables and project-wide variable injection
  • Lifecycle hooks for running formatters, installers, or git init after generation
  • Dry-run preview mode that prints the planned tree without writing
  • Language-agnostic — used today for Python, Terraform, Next.js, Kubernetes, and microservice templates
  • MIT licensed, actively maintained, v3.0.0

How It Differs

  • vs cookiecutter - One readable YAML file instead of a template repo with nested directories. Remote content fetching built in. No requirement to learn a separate Cookiecutter template layout.
  • vs copier - Simpler config model focused purely on initial scaffolding. Copier's strength is project-update workflows; StructKit stays small and composable for the generation step alone.
  • vs yeoman - Language-agnostic, no Node.js dependency, no generator authoring framework to learn.
  • vs pyscaffold - Not constrained to the Python-package layout; works for any project type from a Terraform module to a microservice cluster.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/vinta/awesome-python/pull/3096 **Author:** [@httpdss](https://github.com/httpdss) **Created:** 4/27/2026 **Status:** ❌ Closed **Base:** `master` ← **Head:** `master` --- ### 📝 Commits (1) - [`daad77d`](https://github.com/vinta/awesome-python/commit/daad77d9ac231085edc6aefa5c7ed12e6d8d626e) Add structkit to productivity tools list ### 📊 Changes **1 file changed** (+1 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+1 -0) </details> ### 📄 Description ## Project [StructKit](https://github.com/httpdss/structkit) ## Checklist - [x] One project per PR - [x] PR title format: `Add structkit` - [x] Entry format: `- [structkit](https://github.com/httpdss/structkit) - A command-line tool that scaffolds project files and directories from a YAML configuration.` - [x] Description is concise and short ## Why This Project Is Awesome Which criterion does it meet? (pick one) - [ ] **Industry Standard** - The go-to tool for a specific use case - [ ] **Rising Star** - 5000+ stars in < 2 years, significant adoption - [x] **Hidden Gem** - Exceptional quality, solves niche problems elegantly Explain: StructKit sits in a gap that the established scaffolders don't fill cleanly. Cookiecutter requires a nested template repo layout and Python+Jinja knowledge. Yeoman is JS-only. PyScaffold is locked to the Python-package use case. StructKit lets you describe an entire project — files, directories, contents, permissions, even pre/post-generation shell hooks — in a single readable YAML file, regardless of the target language. Differentiating capabilities: - Single-file YAML config; no nested template directory to learn - Remote content fetching from any HTTP source (GitHub repos, Gists, internal registries) referenced inline in the YAML - Jinja2-style template variables and project-wide variable injection - Lifecycle hooks for running formatters, installers, or git init after generation - Dry-run preview mode that prints the planned tree without writing - Language-agnostic — used today for Python, Terraform, Next.js, Kubernetes, and microservice templates - MIT licensed, actively maintained, v3.0.0 ## How It Differs - **vs cookiecutter** - One readable YAML file instead of a template repo with nested directories. Remote content fetching built in. No requirement to learn a separate Cookiecutter template layout. - **vs copier** - Simpler config model focused purely on initial scaffolding. Copier's strength is project-update workflows; StructKit stays small and composable for the generation step alone. - **vs yeoman** - Language-agnostic, no Node.js dependency, no generator authoring framework to learn. - **vs pyscaffold** - Not constrained to the Python-package layout; works for any project type from a Terraform module to a microservice cluster. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-04-27 03:10:15 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/awesome-python#13696