Architect
Architect is a straightforward and technology-agnostic project scaffolding tool.
This means you can prepare templates for projects using any technology and Architect will spit out a perfect new project.
For its templating Architect uses the Handlebars templating language. Please check the documentation for more information.
>> 📚 Documentation <<
TL;DR
Architect uses Handlebars and Git to create proper projects from template repositories.
- Add any file to your template repository and add Handlebars expressions to it. (docs)
- Add an
.architect.json
configuration file with your questions (docs) - Download the
architect
executable for your platform from the latest Release. - Execute
architect <PATH-TO-REPO>
in your desired local directory, answer user-defined questions, et voila, you got a fully functional project created from a template. (docs)
Sample .architect.json
{
"name": "My Awesome Microservice Template",
"version": "1.0",
"questions": [
{
"name": "author.name",
"type": "Text",
"pretty": "What's your name?"
},
{
"name": "author.email",
"type": "Text",
"pretty": "What's your email address?"
},
{
"name": "project.package",
"type": "Identifier",
"pretty": "What should be the root package for your Kotlin sources?",
"default": "com.github.example"
},
{
"name": "project.features",
"type": "Selection",
"pretty": "Which features would you like to use?",
"items": [
"jdbc",
"kafka",
"redis",
"mySpecialLibrary"
],
"default": [
"jdbc",
"mySpecialLibrary"
],
"multi": true
},
{
"name": "project.tests",
"type": "Option",
"pretty": "Do you want to generate test stubs?"
},
{
"name": "current.time",
"type": "Custom",
"format": "^\\d\\d:\\d\\d$",
"pretty": "What's the current time?"
}
],
"filters": {
"conditionalFiles": [
{
"condition": "project.features.mySpecialLibrary",
"matcher": "libs/mySpecialLibrary-*.jar"
}
],
"includeHidden": [
".github/**",
".gitignore"
],
"nonTemplates": [
"**/*.{gradle.kts,jar}"
]
}
}
License and Contributions
Architect is provided under the terms of the BSD 3-Clause License.
Contributions are welcome, but you must have all rights to the contributed material and agree to provide it under the terms of the aforementioned BSD 3-Clause License.
A good idea would be to check out the Architect 1.0 project, it tracks all the work needed to get Architect to 1.0.