🍃 Code Facet Generator
Dynamic facet-based code generator for multiple languages and frameworks.
🎥 Demo
📖 What is Code Facet Generator?
Code Facet Generator is a VS Code extension (or CLI tool) that generates ready-to-use configuration files for virtually any language, framework, or tool in your project.
No more googling "spring boot application.yml example" or "next.config.js boilerplate". Just pick your language, framework, and version — and get a production-ready config file instantly.
✨ Features
- 🎯 327+ ready-to-use configuration templates across 32 categories
- 🌍 Multi-language support — Java, JavaScript, Python, Go, Rust, C#, PHP, Ruby, and many more
- 📦 Multi-version support — each tool has multiple version-specific templates
- ⚡ Instant generation — select, click, done
- 🎨 Beautiful VS Code integration with TreeView, StatusBar, and Command Palette
- 🔧 Fully configurable via
info.json — add your own templates easily
- 🧩 Modular architecture — each facet is a standalone TypeScript file

📁 Project Structure
code-facet-generator/
├── 📄 package.json # VS Code extension manifest
├── 📄 tsconfig.json # TypeScript configuration
├── 📄 info.json # All facet definitions (32 categories, 327+ facets)
├── 📁 media/ # Icons and branding
│ ├── 🎨 facet-icon.svg
│ └── 🎨 facet-icon.png
├── 📁 lib/ # Generated facet templates (327+ files)
│ ├── 📁 java/ # Maven, Gradle, Spring Boot, Quarkus, Hibernate...
│ ├── 📁 javascript/ # React, Vue, Next.js, Nuxt, Node.js, Express...
│ ├── 📁 python/ # Django, Flask, FastAPI, Celery, Poetry...
│ ├── 📁 csharp/ # ASP.NET, Blazor, Entity Framework, WPF...
│ ├── 📁 go/ # Go modules, main.go, Docker...
│ ├── 📁 rust/ # Cargo.toml, main.rs...
│ ├── 📁 ruby/ # Gemfile, Rails, Sinatra, RSpec...
│ ├── 📁 php/ # Laravel, Symfony, Composer, PHPUnit...
│ ├── 📁 kubernetes/ # Deployment, Service, Ingress, Helm...
│ ├── 📁 database/ # MySQL, PostgreSQL, MongoDB, Redis...
│ ├── 📁 cicd/ # GitHub Actions, GitLab CI, Jenkins...
│ ├── 📁 infrastructure/ # Terraform, Ansible, Vagrant, CloudFormation...
│ ├── 📁 monitoring/ # Prometheus, Grafana, ELK, Datadog...
│ ├── 📁 mobile/ # Flutter, React Native, Ionic, Kotlin, Swift...
│ ├── 📁 config/ # .gitignore, .editorconfig, README, LICENSE...
│ ├── 📁 security/ # SonarQube, Snyk, Trivy...
│ ├── 📁 message-queue/ # RabbitMQ, Kafka, ActiveMQ...
│ ├── 📁 testing/ # K6, Postman, Cucumber...
│ ├── 📁 documentation/ # AsyncAPI, JSDoc, Docusaurus...
│ ├── 📁 game/ # Unity, Unreal Engine, Godot...
│ ├── 📁 embedded/ # Arduino, PlatformIO...
│ ├── 📁 desktop/ # Tauri, Qt, GTK...
│ ├── 📁 ai-ml/ # TensorFlow, PyTorch, Hugging Face, MLflow...
│ ├── 📁 blockchain/ # Hardhat, Truffle, Foundry, Anchor...
│ ├── 📁 api-gateway/ # Kong, Traefik, Envoy, HAProxy, Caddy...
│ ├── 📁 data-analytics/ # dbt, Spark, Flink, Debezium...
│ ├── 📁 authentication/ # Keycloak, Auth0, Ory Kratos...
│ ├── 📁 storage/ # MinIO, Ceph...
│ ├── 📁 build-tools/ # Make, CMake, Bazel, Rush, Pants...
│ ├── 📁 package-managers/ # Conan, vcpkg, CocoaPods, CPM...
│ └── 📁 graphics/ # Unity Shader Graph, HLSL...
├── 📁 src/ # Extension source code
│ ├── 📄 extension.ts # Entry point
│ ├── 📄 statusBarManager.ts # Status bar integration
│ ├── 📄 facetTreeProvider.ts # Tree view provider
│ ├── 📄 facetCommands.ts # ⚡ Command handlers
│ └── 📁 utils/ # Utilities
│ ├── 📄 configLoader.ts # info.json parser
│ ├── 📄 fileGenerator.ts # File writer
│ └── 📄 pathResolver.ts # Path resolver
└── 📄 .vscodeignore # VS Code ignore file
🚀 Supported Languages & Frameworks
☕ Java (17 tools, 68 variants)
| Tool |
Config File |
Versions |
| Maven |
pom.xml |
3.8, 3.9, 4.0 |
| Gradle |
build.gradle |
7.6, 8.0, 8.4 |
| JPA |
persistence.xml |
2.2, 3.0, 3.1 |
| Hibernate |
hibernate.cfg.xml |
5.4, 5.6, 6.0, 6.2, 6.3 |
| Spring Boot |
application.yml |
2.7, 3.0, 3.1, 3.2 |
| Quarkus |
application.properties |
3.0, 3.2, 3.4 |
| Micronaut |
application.yml |
3.0, 4.0 |
| MyBatis |
mybatis-config.xml |
3.0, 3.5 |
| Jakarta EE |
web.xml |
3.1, 4.0, 5.0 |
| Logback |
logback.xml |
1.2, 1.3, 1.4 |
| Log4j2 |
log4j2.xml |
2.17, 2.20, 2.22 |
| Liquibase |
changelog.xml |
4.20, 4.23 |
| Flyway |
V1__init.sql |
9.0, 10.0 |
| OpenAPI |
openapi.yaml |
3.0, 3.1 |
| Checkstyle |
checkstyle.xml |
10.0, 10.12 |
| PMD |
pmd.xml |
6.55, 7.0 |
| Tomcat |
server.xml, context.xml |
9.0, 10.0 |
💛 JavaScript / TypeScript (42 tools, 86 variants)
| Tool |
Config File |
Versions |
| Next.js |
next.config.js |
13, 14 |
| Nuxt.js |
nuxt.config.js |
3.0, 3.8 |
| Gatsby |
gatsby-config.js |
5.0 |
| Svelte |
svelte.config.js |
4.0 |
| SvelteKit |
svelte.config.js |
2.0 |
| Astro |
astro.config.mjs |
4.0 |
| Remix |
remix.config.js |
2.0 |
| React |
App.jsx |
18, 19 |
| Vue |
vue.config.js |
3.0, 3.3 |
| Angular |
angular.json |
17 |
| Solid.js |
vite.config.ts |
1.0 |
| Qwik |
qwik.config.ts |
1.0 |
| Stencil |
stencil.config.ts |
4.0 |
| Ember.js |
ember-cli-build.js |
5.0 |
| NestJS |
main.ts |
10.0 |
| Express |
app.ts |
4.18 |
| Fastify |
server.js |
4.0 |
| Koa |
app.js |
2.0 |
| Webpack |
webpack.config.js |
5.0, 5.89 |
| Vite |
vite.config.js |
4.0, 5.0 |
| Rollup |
rollup.config.js |
4.0 |
| Parcel |
.parcelrc |
2.0 |
| Babel |
babel.config.js |
7.0 |
| ESLint |
.eslintrc.json |
8.0, 9.0 |
| Prettier |
.prettierrc |
2.8, 3.0, 3.1 |
| Jest |
jest.config.js |
29, 30 |
| Vitest |
vitest.config.ts |
1.0, 1.2 |
| Cypress |
cypress.config.js |
12, 13 |
| Playwright |
playwright.config.ts |
1.40 |
| Tailwind |
tailwind.config.js |
3.0, 3.3 |
| Prisma |
schema.prisma |
5.0, 5.7 |
| TypeORM |
ormconfig.json |
0.3 |
| Sequelize |
.sequelizerc |
6.0 |
| Drizzle |
drizzle.config.ts |
0.29 |
| Socket.io |
server.js |
4.0 |
| PM2 |
ecosystem.config.js |
5.0 |
| NX |
nx.json |
17.0 |
| Turborepo |
turbo.json |
1.0 |
| Lerna |
lerna.json |
7.0 |
🐍 Python (18 tools, 28 variants)
| Tool |
Config File |
Versions |
| Django |
settings.py |
4.2, 5.0 |
| Flask |
app.py |
2.3, 3.0 |
| FastAPI |
main.py |
0.100, 0.104 |
| Pyramid |
development.ini |
2.0 |
| Django REST |
settings_rest.py |
3.14 |
| Celery |
celery.py |
5.3 |
| Alembic |
alembic.ini |
1.12 |
| Poetry |
pyproject.toml |
1.5, 1.7 |
| Pipenv |
Pipfile |
2023 |
| Tox |
tox.ini |
4.0 |
| PyTest |
pytest.ini |
7.0, 8.0 |
| Sphinx |
conf.py |
7.0 |
| MkDocs |
mkdocs.yml |
1.5 |
| Black |
pyproject.toml |
23.0 |
| isort |
.isort.cfg |
5.0 |
| MyPy |
mypy.ini |
1.0 |
| Flake8 |
.flake8 |
6.0 |
| Pylint |
.pylintrc |
3.0 |
🎮 More Categories
- C# / .NET — ASP.NET, Blazor, Entity Framework, WPF, xUnit, Serilog (11 tools)
- Go — Modules, main.go, Docker (3 tools)
- Rust — Cargo, main.rs (2 tools)
- Ruby — Gemfile, Rails, Sinatra, RSpec, RuboCop (5 tools)
- PHP — Composer, Laravel, Symfony, PHPUnit, PHPStan, PHP-CS-Fixer (6 tools)
- Kubernetes — Deployment, Service, ConfigMap, Ingress, Helm (7 tools)
- Mobile — Flutter, React Native, Ionic, Cordova, Kotlin, Swift (6 tools)
- Game Development — Unity, Unreal Engine, Godot, Shaders, Raylib (10 tools)
- AI / ML — TensorFlow, PyTorch, Hugging Face, ONNX, MLflow, W&B (5 tools)
- Blockchain / Web3 — Hardhat, Truffle, Foundry, Anchor (4 tools)
- API Gateways — Kong, Traefik, Envoy, HAProxy, Caddy, Apache (7 tools)
- Message Queue — RabbitMQ, Kafka, ActiveMQ (3 tools)
- Desktop — Tauri, Qt, GTK (4 tools)
- And many more... — 32 categories total!
📊 Statistics
| Category |
Count |
| 📦 Total Categories |
32 |
| 📄 Total Facet Files |
327+ |
| 🌍 Languages Covered |
15+ |
| 🛠️ Frameworks & Tools |
150+ |
| 🔢 Version Variants |
500+ |
🔧 How It Works
- Load — Extension reads
info.json on startup
- Display — TreeView shows all categories and facets
- Select — Click a facet, pick a version
- Generate — File is created at the correct path with boilerplate content
- Done! — Ready to use in your project
Example: Generating a pom.xml
- Click: Java → Maven → 4.0
- Generated: ./pom.xml
Example: Generating an application.yml
- Click: Java → Spring Boot → 3.2
- Generated: ./src/main/resources/application.yml
🎨 VS Code Integration
- 📁 TreeView — Browse all facets in the sidebar
- ⚡ Command Palette —
Ctrl+Shift+P → "Generate Facet"
- 📊 StatusBar — Quick access to recent facets
- 🔍 Search — Filter facets by name or language
🛠️ Development
# Clone
git clone https://github.com/user/code-facet-generator.git
# Install dependencies
cd code-facet-generator
npm install
# Build
npm run build
# Run extension in VS Code
# Press F5 in VS Code
Adding a New Facet
1.Create a new file in lib///.ts:
export function generate(params: any): string {
return `your config content here`;
}
2.Add the facet to info.json:
{
"category": {
"tool-name": {
"name": "filename",
"extension": ".ext",
"route": "./path/~",
"description": "Description",
"version": {
"1.0": "./lib/category/tool/v1.0.ts"
}
}
}
}
3.Done! The extension will pick it up automatically.
📝 License
🤝 Contributing


Contributions are welcome! Whether it's:
Check out CONTRIBUTING.md for guidelines.
Made with ❤️ for developers who hate boilerplate.
| |