Skip to main content

Project Forge

Project Forge is an extensible and composable project scaffolding tool. Developers can quickly generate new projects by only answering a few questions.

  • In current project scaffolding, variations in templates magnify complexity.
  • Maintainability increases as complexity increases.

A tool that lets platform teams pave a golden path and still allows developers to customize when necessary

Features

  • Create new projects from a composition of several patterns.
  • Compose individual files using template blocks.
  • Coming soon. Add new capabilities to an existing project by applying a pattern.
  • Coming soon. Update a generated project when its patterns are updated.

Introduction

Project Forge treats project building like building a sandwich. A sandwich is a combination of ingredients. The recipe for a sandwich lists the required ingredients and the assembly instructions. A person can easily alter the recipe by adding, removing, or substituting ingredients.

Other scaffolding tools treat project building like using a vending machine. Your choices are limited by what is available in the vending machine.

Composable project templates

  • patterns can contain templates that extend other pattern templates
  • developers can customize an existing pattern's definition and still use the original's templates

Project Forge's key feature is that it is designed to generate projects from multiple, smaller templates called patterns.

  • Special knowledge, special patterns. Let people with the proper expertise write specific patterns. For example, DevOps people create and update Helm or Terraform patterns, which developers can include in compositions that generate projects.
  • Loose coupling. Each pattern has its lifecycle for changes and updates independent of compositions that include it. Patterns are treated as installable libraries with version constraints.
  • Increased flexibility using simpler patterns. Other scaffolding solutions must include all possible options in the template. This requires complex template logic which increases template maintenance difficulty. Using compositions to specify the combination of simple patterns gives developers more flexibility while making pattern maintainers' jobs more manageable.

Building a project like a sandwich

A pattern is like a sandwich ingredient. It is the smallest individual part. You can render a pattern by itself, like eating a sandwich ingredient.

Pattern questions are like known ways of preparing sandwich ingredients. Just like a hamburger is an ingredient in a sandwich, "Doneness" with options of well, medium, and raw is a pattern question.

A composition is a recipe. It includes configuration and instructions only.

Overlays and tasks are like recipe instructions. Each overlay references a pattern and how to configure it for the composition, like "Hamburger, well done." A task performs an action during project generation, like "stir for 3 minutes."

Metadata

Release files for project_forge 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for project_forge 0.6.0
File Size Uploaded
project_forge-0.6.0.tar.gz 400.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for project_forge 0.6.0
File Interpreter ABI Platform
project_forge-0.6.0-py3-none-any.whl Python 3 none any Details

Total release size: 443.4 kB

Release files / project_forge-0.6.0.tar.gz

Download URL project_forge-0.6.0.tar.gz
Size 400.2 kB
Tags Source
SHA-256 checksum
How to use checksums
392d04733e0d0f8465ec2b293b31fff1fb1aafb756641d78f3f9e24c451e1bd7
BLAKE2b-256 checksum
How to use checksums
79eb4fc519426cdafd2c5ee55de708378d40ce5ab41fd42f3a5f847d46269bdb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.2

Release files / project_forge-0.6.0-py3-none-any.whl

Download URL project_forge-0.6.0-py3-none-any.whl
Size 43.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f3a7b2b2c616a7016e05dea392127153c679bad51d181516c9c627b558aa437
BLAKE2b-256 checksum
How to use checksums
40be2a83aa4d11d64050ee17d97e57226fa731e8643a20c35f6637fbe63cec49
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.7.2

Release history Release notifications | RSS feed

This release

0.6.0 This release

2 release files

0.5.1

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