Dynamic facet-based code generator for multiple languages and frameworks.
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.
- ๐ฏ 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
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โ 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!
| Category | Count |
|---|---|
| ๐ฆ Total Categories | 32 |
| ๐ Total Facet Files | 327+ |
| ๐ Languages Covered | 15+ |
| ๐ ๏ธ Frameworks & Tools | 150+ |
| ๐ข Version Variants | 500+ |
- Load โ Extension reads
info.jsonon 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
- Click: Java โ Maven โ 4.0
- Generated: ./pom.xml
- Click: Java โ Spring Boot โ 3.2
- Generated: ./src/main/resources/application.yml
- ๐ 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
# 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 Codeexport function generate(params: any): string {
return `your config content here`;
}{
"category": {
"tool-name": {
"name": "filename",
"extension": ".ext",
"route": "./path/~",
"description": "Description",
"version": {
"1.0": "./lib/category/tool/v1.0.ts"
}
}
}
}- MIT ยฉ GhurbeSABZI
-
Adding new facets
-
Updating existing templates
-
Fixing bugs
-
Improving documentation
