kubit-forge 0.0.1-canary.85d379a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +229 -0
- package/LICENSE +201 -0
- package/README.md +841 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +14294 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +772 -0
- package/dist/index.js +1979 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/README.md +243 -0
- package/dist/templates/config/README.md +94 -0
- package/dist/templates/config/config-templates.ts +138 -0
- package/dist/templates/config/defaults.ts +105 -0
- package/dist/templates/config/index.ts +6 -0
- package/dist/templates/features/.prettierignore.template +28 -0
- package/dist/templates/features/.prettierrc.template +10 -0
- package/dist/templates/features/README.md +111 -0
- package/dist/templates/features/bernova-foundations.ts.template +50 -0
- package/dist/templates/features/bernova-globalStyles.ts.template +33 -0
- package/dist/templates/features/bernova-mediaQueries.ts.template +6 -0
- package/dist/templates/features/bernova-theme.ts.template +1 -0
- package/dist/templates/features/bernova.config.json.template +58 -0
- package/dist/templates/features/changesets-config.json.template +11 -0
- package/dist/templates/features/changesets-readme.md.template +31 -0
- package/dist/templates/features/commitlint.config.js.template +23 -0
- package/dist/templates/features/cypress-support-commands.ts.template +22 -0
- package/dist/templates/features/cypress-support-e2e.ts.template +20 -0
- package/dist/templates/features/cypress.config.ts.template +23 -0
- package/dist/templates/features/eslint.config.js.template +13 -0
- package/dist/templates/features/husky-commit-msg.template +4 -0
- package/dist/templates/features/husky-pre-commit.template +4 -0
- package/dist/templates/features/index.ts +5 -0
- package/dist/templates/features/jest-setup.ts.template +1 -0
- package/dist/templates/features/jest.config.ts.template +23 -0
- package/dist/templates/features/lint-staged.config.js.template +5 -0
- package/dist/templates/features/playwright-example.spec.ts.template +14 -0
- package/dist/templates/features/playwright.config.ts.template +42 -0
- package/dist/templates/features/template-loader.ts +31 -0
- package/dist/templates/features/vitest-setup.ts.template +1 -0
- package/dist/templates/features/vitest.config.ts.template +11 -0
- package/dist/templates/generators/README.md +181 -0
- package/dist/templates/generators/index.ts +9 -0
- package/dist/templates/generators/plugin.ts +245 -0
- package/dist/templates/generators/react-app-bernova.ts +356 -0
- package/dist/templates/generators/react-component.ts +103 -0
- package/dist/templates/generators/react-hook.ts +56 -0
- package/dist/templates/generators/react-kubit-ui.ts +794 -0
- package/dist/templates/generators/react-page.ts +65 -0
- package/dist/templates-physical/kubit-full/.prettierrc +0 -0
- package/dist/templates-physical/kubit-full/README.md +223 -0
- package/dist/templates-physical/kubit-full/bernova.config.json +0 -0
- package/dist/templates-physical/kubit-full/eslint.config.js +0 -0
- package/dist/templates-physical/kubit-full/index.html +17 -0
- package/dist/templates-physical/kubit-full/package.json +53 -0
- package/dist/templates-physical/kubit-full/src/App.css +118 -0
- package/dist/templates-physical/kubit-full/src/App.tsx +75 -0
- package/dist/templates-physical/kubit-full/src/charts/ChartsShowcase.css +0 -0
- package/dist/templates-physical/kubit-full/src/charts/ChartsShowcase.tsx +0 -0
- package/dist/templates-physical/kubit-full/src/components/ComponentsShowcase.css +147 -0
- package/dist/templates-physical/kubit-full/src/components/ComponentsShowcase.tsx +0 -0
- package/dist/templates-physical/kubit-full/src/main.tsx +0 -0
- package/dist/templates-physical/kubit-full/src/styles/index.css +6 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/components/button.ts +0 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/components/card.ts +0 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/components/input.ts +0 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/foundations.ts +0 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/globalStyles.ts +0 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/mediaQueries.ts +0 -0
- package/dist/templates-physical/kubit-full/src/styles/theme/theme.ts +0 -0
- package/dist/templates-physical/kubit-full/src/test/setup.ts +0 -0
- package/dist/templates-physical/kubit-full/tsconfig.json +29 -0
- package/dist/templates-physical/kubit-full/tsconfig.node.json +11 -0
- package/dist/templates-physical/kubit-full/vite.config.ts +24 -0
- package/dist/templates-physical/kubit-full/vitest.config.ts +26 -0
- package/dist/templates-physical/react/.env.example +6 -0
- package/dist/templates-physical/react/.prettierrc +8 -0
- package/dist/templates-physical/react/README.md +81 -0
- package/dist/templates-physical/react/eslint.config.js +7 -0
- package/dist/templates-physical/react/index.html +13 -0
- package/dist/templates-physical/react/package.json +39 -0
- package/dist/templates-physical/react/src/app/App.module.css +39 -0
- package/dist/templates-physical/react/src/app/App.test.tsx +14 -0
- package/dist/templates-physical/react/src/app/App.tsx +17 -0
- package/dist/templates-physical/react/src/main.tsx +10 -0
- package/dist/templates-physical/react/src/styles/index.css +39 -0
- package/dist/templates-physical/react/src/test/setup.ts +57 -0
- package/dist/templates-physical/react/tsconfig.json +25 -0
- package/dist/templates-physical/react/tsconfig.node.json +10 -0
- package/dist/templates-physical/react/vite.config.ts +16 -0
- package/dist/templates-physical/react/vitest.config.ts +22 -0
- package/dist/templates-physical/react-bernova/.eslintrc.cjs +15 -0
- package/dist/templates-physical/react-bernova/.prettierrc +10 -0
- package/dist/templates-physical/react-bernova/README.md +150 -0
- package/dist/templates-physical/react-bernova/bernova.config.json +58 -0
- package/dist/templates-physical/react-bernova/eslint.config.js +7 -0
- package/dist/templates-physical/react-bernova/index.html +21 -0
- package/dist/templates-physical/react-bernova/package.json +43 -0
- package/dist/templates-physical/react-bernova/src/App.css +89 -0
- package/dist/templates-physical/react-bernova/src/App.tsx +51 -0
- package/dist/templates-physical/react-bernova/src/index.css +54 -0
- package/dist/templates-physical/react-bernova/src/main.tsx +10 -0
- package/dist/templates-physical/react-bernova/src/styles/foundations.ts +91 -0
- package/dist/templates-physical/react-bernova/src/styles/globalStyles.ts +118 -0
- package/dist/templates-physical/react-bernova/src/styles/mediaQueries.ts +18 -0
- package/dist/templates-physical/react-bernova/src/styles/theme.ts +94 -0
- package/dist/templates-physical/react-bernova/src/test/setup.ts +9 -0
- package/dist/templates-physical/react-bernova/tsconfig.json +31 -0
- package/dist/templates-physical/react-bernova/tsconfig.node.json +10 -0
- package/dist/templates-physical/react-bernova/vite.config.ts +20 -0
- package/dist/templates-physical/react-bernova/vitest.config.ts +18 -0
- package/dist/templates-physical/vanilla/.env.example +6 -0
- package/dist/templates-physical/vanilla/.prettierrc +8 -0
- package/dist/templates-physical/vanilla/README.md +76 -0
- package/dist/templates-physical/vanilla/eslint.config.js +7 -0
- package/dist/templates-physical/vanilla/index.html +13 -0
- package/dist/templates-physical/vanilla/package.json +28 -0
- package/dist/templates-physical/vanilla/src/app.module.css +39 -0
- package/dist/templates-physical/vanilla/src/app.test.ts +20 -0
- package/dist/templates-physical/vanilla/src/app.ts +31 -0
- package/dist/templates-physical/vanilla/src/main.ts +9 -0
- package/dist/templates-physical/vanilla/src/styles/main.css +39 -0
- package/dist/templates-physical/vanilla/tsconfig.json +23 -0
- package/dist/templates-physical/vanilla/vite.config.ts +14 -0
- package/dist/templates-physical/vanilla/vitest.config.ts +14 -0
- package/package.json +131 -0
- package/templates/kubit-full/.prettierrc +0 -0
- package/templates/kubit-full/README.md +223 -0
- package/templates/kubit-full/bernova.config.json +0 -0
- package/templates/kubit-full/eslint.config.js +0 -0
- package/templates/kubit-full/index.html +17 -0
- package/templates/kubit-full/package.json +53 -0
- package/templates/kubit-full/src/App.css +118 -0
- package/templates/kubit-full/src/App.tsx +75 -0
- package/templates/kubit-full/src/charts/ChartsShowcase.css +0 -0
- package/templates/kubit-full/src/charts/ChartsShowcase.tsx +0 -0
- package/templates/kubit-full/src/components/ComponentsShowcase.css +147 -0
- package/templates/kubit-full/src/components/ComponentsShowcase.tsx +0 -0
- package/templates/kubit-full/src/main.tsx +0 -0
- package/templates/kubit-full/src/styles/index.css +6 -0
- package/templates/kubit-full/src/styles/theme/components/button.ts +0 -0
- package/templates/kubit-full/src/styles/theme/components/card.ts +0 -0
- package/templates/kubit-full/src/styles/theme/components/input.ts +0 -0
- package/templates/kubit-full/src/styles/theme/foundations.ts +0 -0
- package/templates/kubit-full/src/styles/theme/globalStyles.ts +0 -0
- package/templates/kubit-full/src/styles/theme/mediaQueries.ts +0 -0
- package/templates/kubit-full/src/styles/theme/theme.ts +0 -0
- package/templates/kubit-full/src/test/setup.ts +0 -0
- package/templates/kubit-full/tsconfig.json +29 -0
- package/templates/kubit-full/tsconfig.node.json +11 -0
- package/templates/kubit-full/vite.config.ts +24 -0
- package/templates/kubit-full/vitest.config.ts +26 -0
- package/templates/react/.env.example +6 -0
- package/templates/react/.prettierrc +8 -0
- package/templates/react/README.md +81 -0
- package/templates/react/eslint.config.js +7 -0
- package/templates/react/index.html +13 -0
- package/templates/react/package.json +39 -0
- package/templates/react/src/app/App.module.css +39 -0
- package/templates/react/src/app/App.test.tsx +14 -0
- package/templates/react/src/app/App.tsx +17 -0
- package/templates/react/src/main.tsx +10 -0
- package/templates/react/src/styles/index.css +39 -0
- package/templates/react/src/test/setup.ts +57 -0
- package/templates/react/tsconfig.json +25 -0
- package/templates/react/tsconfig.node.json +10 -0
- package/templates/react/vite.config.ts +16 -0
- package/templates/react/vitest.config.ts +22 -0
- package/templates/react-bernova/.eslintrc.cjs +15 -0
- package/templates/react-bernova/.prettierrc +10 -0
- package/templates/react-bernova/README.md +150 -0
- package/templates/react-bernova/bernova.config.json +58 -0
- package/templates/react-bernova/eslint.config.js +7 -0
- package/templates/react-bernova/index.html +21 -0
- package/templates/react-bernova/package.json +43 -0
- package/templates/react-bernova/src/App.css +89 -0
- package/templates/react-bernova/src/App.tsx +51 -0
- package/templates/react-bernova/src/index.css +54 -0
- package/templates/react-bernova/src/main.tsx +10 -0
- package/templates/react-bernova/src/styles/foundations.ts +91 -0
- package/templates/react-bernova/src/styles/globalStyles.ts +118 -0
- package/templates/react-bernova/src/styles/mediaQueries.ts +18 -0
- package/templates/react-bernova/src/styles/theme.ts +94 -0
- package/templates/react-bernova/src/test/setup.ts +9 -0
- package/templates/react-bernova/tsconfig.json +31 -0
- package/templates/react-bernova/tsconfig.node.json +10 -0
- package/templates/react-bernova/vite.config.ts +20 -0
- package/templates/react-bernova/vitest.config.ts +18 -0
- package/templates/vanilla/.env.example +6 -0
- package/templates/vanilla/.prettierrc +8 -0
- package/templates/vanilla/README.md +76 -0
- package/templates/vanilla/eslint.config.js +7 -0
- package/templates/vanilla/index.html +13 -0
- package/templates/vanilla/package.json +28 -0
- package/templates/vanilla/src/app.module.css +39 -0
- package/templates/vanilla/src/app.test.ts +20 -0
- package/templates/vanilla/src/app.ts +31 -0
- package/templates/vanilla/src/main.ts +9 -0
- package/templates/vanilla/src/styles/main.css +39 -0
- package/templates/vanilla/tsconfig.json +23 -0
- package/templates/vanilla/vite.config.ts +14 -0
- package/templates/vanilla/vitest.config.ts +14 -0
package/README.md
ADDED
|
@@ -0,0 +1,841 @@
|
|
|
1
|
+
# Kubit Forge
|
|
2
|
+
|
|
3
|
+
> **A world-class, extensible CLI for modern web development with enterprise-grade features**
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/kubit-forge)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](https://www.typescriptlang.org/)
|
|
8
|
+
[](https://nodejs.org/)
|
|
9
|
+
[](https://pnpm.io/)
|
|
10
|
+
|
|
11
|
+
**Kubit Forge** is an open-source, production-ready CLI that empowers developers to build modern web applications with confidence. From zero-config project initialization to AI-powered diagnostics, Kubit Forge provides everything you need to develop, test, and deploy world-class applications.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Table of Contents
|
|
16
|
+
|
|
17
|
+
- [Why Kubit Forge?](#why-kubit-forge)
|
|
18
|
+
- [Features](#features)
|
|
19
|
+
- [Installation](#installation)
|
|
20
|
+
- [Quick Start](#quick-start)
|
|
21
|
+
- [Core Commands](#core-commands)
|
|
22
|
+
- [Plugin System](#plugin-system)
|
|
23
|
+
- [Recipe System](#recipe-system)
|
|
24
|
+
- [Monorepo Support](#monorepo-support)
|
|
25
|
+
- [Interactive Dashboard](#interactive-dashboard)
|
|
26
|
+
- [Asset Optimization](#asset-optimization)
|
|
27
|
+
- [Security & SBOM](#security--sbom)
|
|
28
|
+
- [Doctor Command](#doctor-command)
|
|
29
|
+
- [Configuration](#configuration)
|
|
30
|
+
- [Contributing](#contributing)
|
|
31
|
+
- [License](#license)
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Why Kubit Forge?
|
|
36
|
+
|
|
37
|
+
### Built for Modern Development
|
|
38
|
+
|
|
39
|
+
- **Zero Configuration** - Start building immediately with sensible defaults
|
|
40
|
+
- **TypeScript First** - Full type safety and IntelliSense support
|
|
41
|
+
- **Lightning Fast** - Powered by Vite for instant HMR and optimized builds
|
|
42
|
+
- **Extensible** - Plugin and recipe systems for unlimited customization
|
|
43
|
+
- **Enterprise Ready** - SBOM generation, security audits, and compliance tools
|
|
44
|
+
|
|
45
|
+
### Developer Experience
|
|
46
|
+
|
|
47
|
+
- **Interactive Dashboard** - Beautiful TUI for project management
|
|
48
|
+
- **AI-Powered Diagnostics** - Intelligent issue detection and auto-fix
|
|
49
|
+
- **Predictive Analysis** - Prevent problems before they happen
|
|
50
|
+
- **Package Manager Agnostic** - Works with npm, yarn, and pnpm
|
|
51
|
+
- **Monorepo Support** - First-class support for Turborepo, Nx, pnpm workspaces, and more
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Features
|
|
56
|
+
|
|
57
|
+
### Project Initialization & Scaffolding
|
|
58
|
+
|
|
59
|
+
Create production-ready projects in seconds:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# React + TypeScript
|
|
63
|
+
kubit-forge init react my-app
|
|
64
|
+
|
|
65
|
+
# Vanilla TypeScript
|
|
66
|
+
kubit-forge init vanilla my-app
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**What you get:**
|
|
70
|
+
|
|
71
|
+
- TypeScript configuration
|
|
72
|
+
- Vite build setup
|
|
73
|
+
- ESLint & Prettier
|
|
74
|
+
- Testing infrastructure
|
|
75
|
+
- Git initialization
|
|
76
|
+
- Package manager detection
|
|
77
|
+
|
|
78
|
+
### Template System
|
|
79
|
+
|
|
80
|
+
Bootstrap projects with pre-configured templates:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# List available templates
|
|
84
|
+
kubit-forge template:list
|
|
85
|
+
|
|
86
|
+
# Use a template
|
|
87
|
+
kubit-forge template:use react-ts-bernova my-app
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Available Templates:**
|
|
91
|
+
|
|
92
|
+
- `react-ts` - React + TypeScript
|
|
93
|
+
- `react-ts-bernova` - React + TypeScript + Bernova Design System
|
|
94
|
+
- `react-ts-storybook` - React + TypeScript + Storybook
|
|
95
|
+
- `vanilla-ts` - Vanilla TypeScript
|
|
96
|
+
|
|
97
|
+
### Add Command - Feature Installation
|
|
98
|
+
|
|
99
|
+
Add features to existing projects with zero configuration:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# Add linting
|
|
103
|
+
kubit-forge add eslint
|
|
104
|
+
kubit-forge add prettier
|
|
105
|
+
|
|
106
|
+
# Add testing
|
|
107
|
+
kubit-forge add vitest
|
|
108
|
+
kubit-forge add playwright
|
|
109
|
+
kubit-forge add testing-library
|
|
110
|
+
|
|
111
|
+
# Add styling
|
|
112
|
+
kubit-forge add bernova
|
|
113
|
+
kubit-forge add styled-components
|
|
114
|
+
|
|
115
|
+
# Add development tools
|
|
116
|
+
kubit-forge add storybook
|
|
117
|
+
kubit-forge add husky
|
|
118
|
+
kubit-forge add lint-staged
|
|
119
|
+
kubit-forge add commitlint
|
|
120
|
+
kubit-forge add changesets
|
|
121
|
+
|
|
122
|
+
# Add routing
|
|
123
|
+
kubit-forge add react-router
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### Development Commands
|
|
127
|
+
|
|
128
|
+
Streamlined development workflow:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Start development server
|
|
132
|
+
kubit-forge dev
|
|
133
|
+
|
|
134
|
+
# Build for production
|
|
135
|
+
kubit-forge build
|
|
136
|
+
|
|
137
|
+
# Run tests
|
|
138
|
+
kubit-forge test
|
|
139
|
+
|
|
140
|
+
# Lint code
|
|
141
|
+
kubit-forge lint --fix
|
|
142
|
+
|
|
143
|
+
# Format code
|
|
144
|
+
kubit-forge format
|
|
145
|
+
|
|
146
|
+
# Type check
|
|
147
|
+
kubit-forge typecheck
|
|
148
|
+
|
|
149
|
+
# Run all checks
|
|
150
|
+
kubit-forge check
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Quality & Diagnostics
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Show project information
|
|
157
|
+
kubit-forge info --detailed
|
|
158
|
+
|
|
159
|
+
# AI-powered diagnostics
|
|
160
|
+
kubit-forge doctor
|
|
161
|
+
|
|
162
|
+
# Auto-fix issues
|
|
163
|
+
kubit-forge doctor --fix
|
|
164
|
+
|
|
165
|
+
# Predictive analysis
|
|
166
|
+
kubit-forge doctor --predictive
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Plugin System
|
|
172
|
+
|
|
173
|
+
Extend Kubit Forge with powerful plugins:
|
|
174
|
+
|
|
175
|
+
### Plugin Commands
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Search for plugins
|
|
179
|
+
kubit-forge plugin:search testing
|
|
180
|
+
|
|
181
|
+
# Install a plugin
|
|
182
|
+
kubit-forge plugin:install @kubit/plugin-analytics
|
|
183
|
+
|
|
184
|
+
# List installed plugins
|
|
185
|
+
kubit-forge plugin:list
|
|
186
|
+
|
|
187
|
+
# Verify plugin integrity
|
|
188
|
+
kubit-forge plugin:verify @kubit/plugin-analytics
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Plugin Capabilities
|
|
192
|
+
|
|
193
|
+
- **Custom Commands** - Add new CLI commands
|
|
194
|
+
- **Lifecycle Hooks** - Hook into build, dev, and other events
|
|
195
|
+
- **Custom Generators** - Add code generators
|
|
196
|
+
- **Configuration Extensions** - Extend project configuration
|
|
197
|
+
- **Task Runners** - Add custom task execution
|
|
198
|
+
|
|
199
|
+
### Creating a Plugin
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
// my-plugin.ts
|
|
203
|
+
import { Plugin } from 'kubit-forge';
|
|
204
|
+
|
|
205
|
+
export default {
|
|
206
|
+
name: 'my-plugin',
|
|
207
|
+
version: '1.0.0',
|
|
208
|
+
|
|
209
|
+
commands: {
|
|
210
|
+
'my-command': async (args) => {
|
|
211
|
+
console.log('Running my custom command!');
|
|
212
|
+
},
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
hooks: {
|
|
216
|
+
'build:before': async () => {
|
|
217
|
+
console.log('Before build hook');
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
} satisfies Plugin;
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Recipe System
|
|
226
|
+
|
|
227
|
+
Automate complex workflows with declarative recipes:
|
|
228
|
+
|
|
229
|
+
### Recipe Commands
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
# List available recipes
|
|
233
|
+
kubit-forge recipe:list
|
|
234
|
+
|
|
235
|
+
# Run a recipe
|
|
236
|
+
kubit-forge recipe:run react-setup
|
|
237
|
+
|
|
238
|
+
# Add custom recipe
|
|
239
|
+
kubit-forge recipe:add ./my-recipe.toml
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Built-in Recipes
|
|
243
|
+
|
|
244
|
+
- **react-setup** - Complete React project setup
|
|
245
|
+
- **testing-setup** - Full testing infrastructure
|
|
246
|
+
- **ci-cd-setup** - CI/CD pipeline configuration
|
|
247
|
+
|
|
248
|
+
### Recipe Features
|
|
249
|
+
|
|
250
|
+
- **DAG-based Execution** - Parallel task execution with dependency resolution
|
|
251
|
+
- **Declarative Syntax** - TOML-based configuration
|
|
252
|
+
- **Composable** - Combine multiple recipes
|
|
253
|
+
- **Idempotent** - Safe to run multiple times
|
|
254
|
+
|
|
255
|
+
### Example Recipe
|
|
256
|
+
|
|
257
|
+
```toml
|
|
258
|
+
[recipe]
|
|
259
|
+
name = "react-setup"
|
|
260
|
+
description = "Complete React project setup"
|
|
261
|
+
version = "1.0.0"
|
|
262
|
+
|
|
263
|
+
[[tasks]]
|
|
264
|
+
id = "install-deps"
|
|
265
|
+
command = "add"
|
|
266
|
+
args = ["react", "react-dom"]
|
|
267
|
+
|
|
268
|
+
[[tasks]]
|
|
269
|
+
id = "add-eslint"
|
|
270
|
+
command = "add"
|
|
271
|
+
args = ["eslint"]
|
|
272
|
+
depends_on = ["install-deps"]
|
|
273
|
+
|
|
274
|
+
[[tasks]]
|
|
275
|
+
id = "add-prettier"
|
|
276
|
+
command = "add"
|
|
277
|
+
args = ["prettier"]
|
|
278
|
+
depends_on = ["install-deps"]
|
|
279
|
+
|
|
280
|
+
[[tasks]]
|
|
281
|
+
id = "add-testing"
|
|
282
|
+
command = "add"
|
|
283
|
+
args = ["vitest"]
|
|
284
|
+
depends_on = ["install-deps"]
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Monorepo Support
|
|
290
|
+
|
|
291
|
+
First-class support for monorepo tools:
|
|
292
|
+
|
|
293
|
+
### Supported Tools
|
|
294
|
+
|
|
295
|
+
- **pnpm workspaces**
|
|
296
|
+
- **yarn workspaces**
|
|
297
|
+
- **npm workspaces**
|
|
298
|
+
- **Turborepo**
|
|
299
|
+
- **Nx**
|
|
300
|
+
- **Lerna**
|
|
301
|
+
|
|
302
|
+
### Monorepo Commands
|
|
303
|
+
|
|
304
|
+
```bash
|
|
305
|
+
# Initialize monorepo
|
|
306
|
+
kubit-forge monorepo:init --tool pnpm
|
|
307
|
+
|
|
308
|
+
# Add package to monorepo
|
|
309
|
+
kubit-forge monorepo:add my-package
|
|
310
|
+
|
|
311
|
+
# List all packages
|
|
312
|
+
kubit-forge monorepo:list
|
|
313
|
+
|
|
314
|
+
# Show monorepo information
|
|
315
|
+
kubit-forge monorepo:info
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### Features
|
|
319
|
+
|
|
320
|
+
- **Workspace Detection** - Automatic detection of monorepo structure
|
|
321
|
+
- **Dependency Management** - Smart dependency resolution
|
|
322
|
+
- **Task Orchestration** - Parallel task execution across packages
|
|
323
|
+
- **Selective Builds** - Build only affected packages
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## Interactive Dashboard
|
|
328
|
+
|
|
329
|
+
Launch a beautiful TUI dashboard for project management:
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
kubit-forge dashboard
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Dashboard Features
|
|
336
|
+
|
|
337
|
+
- **Real-time Project Status** - Live updates on project health
|
|
338
|
+
- **Command Execution** - Run commands from the UI
|
|
339
|
+
- **Live Logs** - Stream logs in real-time
|
|
340
|
+
- **Plugin Management** - Visual plugin control
|
|
341
|
+
- **System Metrics** - CPU, memory, uptime monitoring
|
|
342
|
+
- **Keyboard Navigation** - Intuitive controls (1-5 for views, q to quit)
|
|
343
|
+
|
|
344
|
+
### Views
|
|
345
|
+
|
|
346
|
+
1. **Overview** - Project status and quick actions
|
|
347
|
+
2. **Commands** - Execute common commands
|
|
348
|
+
3. **Plugins** - Manage installed plugins
|
|
349
|
+
4. **Logs** - View real-time logs
|
|
350
|
+
5. **System** - System metrics and information
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Asset Optimization
|
|
355
|
+
|
|
356
|
+
Optimize and deploy assets with ease:
|
|
357
|
+
|
|
358
|
+
### Asset Commands
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
# Optimize images, fonts, and icons
|
|
362
|
+
kubit-forge assets:optimize --quality 85
|
|
363
|
+
|
|
364
|
+
# Compress assets
|
|
365
|
+
kubit-forge assets:compress --algorithm both
|
|
366
|
+
|
|
367
|
+
# Sync to CDN
|
|
368
|
+
kubit-forge assets:cdn:sync --provider cloudflare
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
### Supported CDN Providers
|
|
372
|
+
|
|
373
|
+
- **Cloudflare**
|
|
374
|
+
- **AWS S3**
|
|
375
|
+
- **Azure Blob Storage**
|
|
376
|
+
- **Custom providers** (via plugin)
|
|
377
|
+
|
|
378
|
+
### Optimization Features
|
|
379
|
+
|
|
380
|
+
- **Image Optimization** - WebP, AVIF conversion
|
|
381
|
+
- **Font Subsetting** - Reduce font file sizes
|
|
382
|
+
- **Icon Optimization** - SVG minification
|
|
383
|
+
- **Compression** - Gzip and Brotli compression
|
|
384
|
+
- **Cache Busting** - Automatic versioning
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## Security & SBOM
|
|
389
|
+
|
|
390
|
+
Generate Software Bill of Materials and security audits:
|
|
391
|
+
|
|
392
|
+
### SBOM Commands
|
|
393
|
+
|
|
394
|
+
```bash
|
|
395
|
+
# Generate SBOM
|
|
396
|
+
kubit-forge sbom:generate --format json
|
|
397
|
+
|
|
398
|
+
# Validate dependencies
|
|
399
|
+
kubit-forge sbom:validate
|
|
400
|
+
|
|
401
|
+
# Security audit
|
|
402
|
+
kubit-forge security:audit
|
|
403
|
+
```
|
|
404
|
+
|
|
405
|
+
### Supported Formats
|
|
406
|
+
|
|
407
|
+
- **JSON** - Standard JSON format
|
|
408
|
+
- **XML** - XML format
|
|
409
|
+
- **SPDX** - Software Package Data Exchange
|
|
410
|
+
- **CycloneDX** - OWASP CycloneDX format
|
|
411
|
+
|
|
412
|
+
### Security Features
|
|
413
|
+
|
|
414
|
+
- **Dependency Scanning** - Identify vulnerable dependencies
|
|
415
|
+
- **License Compliance** - Check license compatibility
|
|
416
|
+
- **Supply Chain Security** - Verify package integrity
|
|
417
|
+
- **Automated Reporting** - Generate compliance reports
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## Doctor Command
|
|
422
|
+
|
|
423
|
+
AI-powered diagnostics with auto-fix capabilities:
|
|
424
|
+
|
|
425
|
+
```bash
|
|
426
|
+
# Run diagnostics
|
|
427
|
+
kubit-forge doctor
|
|
428
|
+
|
|
429
|
+
# Auto-fix issues
|
|
430
|
+
kubit-forge doctor --fix
|
|
431
|
+
|
|
432
|
+
# Predictive analysis
|
|
433
|
+
kubit-forge doctor --predictive
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
### Doctor Capabilities
|
|
437
|
+
|
|
438
|
+
- **Intelligent Issue Detection** - AI-powered problem identification
|
|
439
|
+
- **Auto-fix** - Automatic issue resolution
|
|
440
|
+
- **Predictive Analysis** - Prevent issues before they happen
|
|
441
|
+
- **Dependency Health Checks** - Verify dependency integrity
|
|
442
|
+
- **Configuration Validation** - Validate project configuration
|
|
443
|
+
- **Security Vulnerability Detection** - Scan for vulnerabilities
|
|
444
|
+
- **Performance Analysis** - Identify performance bottlenecks
|
|
445
|
+
- **IDE Integration** - Support for VS Code and other IDEs
|
|
446
|
+
- **Personalized Recommendations** - Context-aware suggestions
|
|
447
|
+
|
|
448
|
+
### Example Output
|
|
449
|
+
|
|
450
|
+
```
|
|
451
|
+
Running diagnostics...
|
|
452
|
+
|
|
453
|
+
✓ TypeScript configuration is valid
|
|
454
|
+
✓ Dependencies are up to date
|
|
455
|
+
⚠ ESLint configuration has warnings
|
|
456
|
+
→ Auto-fix available: kubit-forge doctor --fix
|
|
457
|
+
|
|
458
|
+
✓ No security vulnerabilities found
|
|
459
|
+
⚠ Performance: Large bundle size detected
|
|
460
|
+
→ Recommendation: Enable code splitting
|
|
461
|
+
|
|
462
|
+
Predictive Analysis:
|
|
463
|
+
→ Potential issue: Deprecated dependency detected
|
|
464
|
+
→ Action: Update to @package/new-version
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Migrations & Upgrades
|
|
470
|
+
|
|
471
|
+
Safe upgrades and automated refactoring:
|
|
472
|
+
|
|
473
|
+
```bash
|
|
474
|
+
# Upgrade dependencies
|
|
475
|
+
kubit-forge upgrade
|
|
476
|
+
|
|
477
|
+
# Run migration
|
|
478
|
+
kubit-forge migrate <codename>
|
|
479
|
+
|
|
480
|
+
# List available migrations
|
|
481
|
+
kubit-forge migrate:list
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Migration Features
|
|
485
|
+
|
|
486
|
+
- **Automated Refactoring** - Safe code transformations
|
|
487
|
+
- **Breaking Change Detection** - Identify breaking changes
|
|
488
|
+
- **Rollback Support** - Undo migrations if needed
|
|
489
|
+
- **Dry Run** - Preview changes before applying
|
|
490
|
+
- **Custom Migrations** - Create organization-specific migrations
|
|
491
|
+
|
|
492
|
+
---
|
|
493
|
+
|
|
494
|
+
## Code Generation
|
|
495
|
+
|
|
496
|
+
Generate code scaffolds with best practices:
|
|
497
|
+
|
|
498
|
+
```bash
|
|
499
|
+
# Generate component
|
|
500
|
+
kubit-forge generate component Button
|
|
501
|
+
|
|
502
|
+
# Generate page
|
|
503
|
+
kubit-forge generate page Home
|
|
504
|
+
|
|
505
|
+
# Generate hook
|
|
506
|
+
kubit-forge generate hook useAuth
|
|
507
|
+
|
|
508
|
+
# Generate service
|
|
509
|
+
kubit-forge generate service api
|
|
510
|
+
|
|
511
|
+
# Generate utility
|
|
512
|
+
kubit-forge generate util formatDate
|
|
513
|
+
|
|
514
|
+
# Generate test
|
|
515
|
+
kubit-forge generate test Button
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
### Generator Features
|
|
519
|
+
|
|
520
|
+
- **TypeScript Support** - Full type safety
|
|
521
|
+
- **Best Practices** - Follow industry standards
|
|
522
|
+
- **Customizable Templates** - Override default templates
|
|
523
|
+
- **Consistent Structure** - Maintain project consistency
|
|
524
|
+
|
|
525
|
+
---
|
|
526
|
+
|
|
527
|
+
## Configuration
|
|
528
|
+
|
|
529
|
+
Configure Kubit Forge with `kubit.config.toml`:
|
|
530
|
+
|
|
531
|
+
```toml
|
|
532
|
+
[project]
|
|
533
|
+
name = "my-app"
|
|
534
|
+
version = "1.0.0"
|
|
535
|
+
description = "My awesome app"
|
|
536
|
+
|
|
537
|
+
[build]
|
|
538
|
+
outDir = "dist"
|
|
539
|
+
sourcemap = true
|
|
540
|
+
minify = true
|
|
541
|
+
|
|
542
|
+
[dev]
|
|
543
|
+
port = 3000
|
|
544
|
+
open = true
|
|
545
|
+
host = "localhost"
|
|
546
|
+
|
|
547
|
+
[quality]
|
|
548
|
+
lint = true
|
|
549
|
+
format = true
|
|
550
|
+
typecheck = true
|
|
551
|
+
test = true
|
|
552
|
+
|
|
553
|
+
[plugins]
|
|
554
|
+
enabled = ["@kubit/plugin-analytics", "@kubit/plugin-sentry"]
|
|
555
|
+
|
|
556
|
+
[paths]
|
|
557
|
+
src = "./src"
|
|
558
|
+
public = "./public"
|
|
559
|
+
dist = "./dist"
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
---
|
|
563
|
+
|
|
564
|
+
## Environment Variables
|
|
565
|
+
|
|
566
|
+
Manage environment variables securely:
|
|
567
|
+
|
|
568
|
+
```bash
|
|
569
|
+
# Initialize .env file
|
|
570
|
+
kubit-forge env init
|
|
571
|
+
|
|
572
|
+
# Validate environment variables
|
|
573
|
+
kubit-forge env validate
|
|
574
|
+
|
|
575
|
+
# Show environment info
|
|
576
|
+
kubit-forge env info
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
581
|
+
## Business Integration
|
|
582
|
+
|
|
583
|
+
Extend Kubit Forge for your organization:
|
|
584
|
+
|
|
585
|
+
### Enterprise Features
|
|
586
|
+
|
|
587
|
+
- **Custom Command Registration** - Add organization-specific commands
|
|
588
|
+
- **Private Plugin Registry** - Host internal plugins
|
|
589
|
+
- **Organization Templates** - Company-specific project templates
|
|
590
|
+
- **Compliance Tools** - Custom compliance checks
|
|
591
|
+
- **Custom Recipes** - Organization-specific workflows
|
|
592
|
+
|
|
593
|
+
### Example: Custom Command
|
|
594
|
+
|
|
595
|
+
```typescript
|
|
596
|
+
// .kubit/commands/deploy.ts
|
|
597
|
+
export default {
|
|
598
|
+
name: 'deploy',
|
|
599
|
+
description: 'Deploy to company infrastructure',
|
|
600
|
+
|
|
601
|
+
async execute(args) {
|
|
602
|
+
// Custom deployment logic
|
|
603
|
+
console.log('Deploying to production...');
|
|
604
|
+
},
|
|
605
|
+
};
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
## Installation
|
|
611
|
+
|
|
612
|
+
### Prerequisites
|
|
613
|
+
|
|
614
|
+
- **Node.js** >= 20.0.0
|
|
615
|
+
- **pnpm** >= 10.0.0 (recommended) or npm/yarn
|
|
616
|
+
|
|
617
|
+
### Global Installation
|
|
618
|
+
|
|
619
|
+
```bash
|
|
620
|
+
# Using pnpm (recommended)
|
|
621
|
+
pnpm add -g kubit-forge
|
|
622
|
+
|
|
623
|
+
# Using npm
|
|
624
|
+
npm install -g kubit-forge
|
|
625
|
+
|
|
626
|
+
# Using yarn
|
|
627
|
+
yarn global add kubit-forge
|
|
628
|
+
```
|
|
629
|
+
|
|
630
|
+
### Local Installation
|
|
631
|
+
|
|
632
|
+
```bash
|
|
633
|
+
# Using pnpm
|
|
634
|
+
pnpm add -D kubit-forge
|
|
635
|
+
|
|
636
|
+
# Using npm
|
|
637
|
+
npm install --save-dev kubit-forge
|
|
638
|
+
|
|
639
|
+
# Using yarn
|
|
640
|
+
yarn add -D kubit-forge
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
### Verify Installation
|
|
644
|
+
|
|
645
|
+
```bash
|
|
646
|
+
kubit-forge --version
|
|
647
|
+
kubit-forge --help
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
---
|
|
651
|
+
|
|
652
|
+
## Quick Start
|
|
653
|
+
|
|
654
|
+
### 1. Create a New Project
|
|
655
|
+
|
|
656
|
+
```bash
|
|
657
|
+
# Create React app
|
|
658
|
+
kubit-forge init react my-app
|
|
659
|
+
cd my-app
|
|
660
|
+
|
|
661
|
+
# Start development server
|
|
662
|
+
kubit-forge dev
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
### 2. Add Features
|
|
666
|
+
|
|
667
|
+
```bash
|
|
668
|
+
# Add testing
|
|
669
|
+
kubit-forge add vitest
|
|
670
|
+
|
|
671
|
+
# Add Storybook
|
|
672
|
+
kubit-forge add storybook
|
|
673
|
+
|
|
674
|
+
# Add linting
|
|
675
|
+
kubit-forge add eslint prettier
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### 3. Run Quality Checks
|
|
679
|
+
|
|
680
|
+
```bash
|
|
681
|
+
# Run all checks
|
|
682
|
+
kubit-forge check
|
|
683
|
+
|
|
684
|
+
# Or run individually
|
|
685
|
+
kubit-forge lint
|
|
686
|
+
kubit-forge typecheck
|
|
687
|
+
kubit-forge test
|
|
688
|
+
```
|
|
689
|
+
|
|
690
|
+
### 4. Build for Production
|
|
691
|
+
|
|
692
|
+
```bash
|
|
693
|
+
kubit-forge build
|
|
694
|
+
```
|
|
695
|
+
|
|
696
|
+
---
|
|
697
|
+
|
|
698
|
+
## Contributing
|
|
699
|
+
|
|
700
|
+
We welcome contributions from the community! Here's how you can help:
|
|
701
|
+
|
|
702
|
+
### Ways to Contribute
|
|
703
|
+
|
|
704
|
+
- **Report Bugs** - Open an issue on GitHub
|
|
705
|
+
- **Suggest Features** - Share your ideas
|
|
706
|
+
- **Submit PRs** - Fix bugs or add features
|
|
707
|
+
- **Improve Documentation** - Help others learn
|
|
708
|
+
- **Create Plugins** - Extend functionality
|
|
709
|
+
- **Share Recipes** - Automate workflows
|
|
710
|
+
|
|
711
|
+
### Development Setup
|
|
712
|
+
|
|
713
|
+
```bash
|
|
714
|
+
# Clone the repository
|
|
715
|
+
git clone https://github.com/kubit-ui/kubit-forge.git
|
|
716
|
+
cd kubit-forge
|
|
717
|
+
|
|
718
|
+
# Install dependencies
|
|
719
|
+
pnpm install
|
|
720
|
+
|
|
721
|
+
# Build the project
|
|
722
|
+
pnpm build
|
|
723
|
+
|
|
724
|
+
# Link for local development
|
|
725
|
+
pnpm dev:link
|
|
726
|
+
|
|
727
|
+
# Run tests
|
|
728
|
+
pnpm test
|
|
729
|
+
|
|
730
|
+
# Run linter
|
|
731
|
+
pnpm lint
|
|
732
|
+
```
|
|
733
|
+
|
|
734
|
+
### Pull Request Process
|
|
735
|
+
|
|
736
|
+
1. Fork the repository
|
|
737
|
+
2. Create a feature branch (`git checkout -b feat/amazing-feature`)
|
|
738
|
+
3. Commit your changes using [Conventional Commits](https://www.conventionalcommits.org/)
|
|
739
|
+
4. Push to your fork (`git push origin feat/amazing-feature`)
|
|
740
|
+
5. Open a Pull Request
|
|
741
|
+
|
|
742
|
+
### Commit Convention
|
|
743
|
+
|
|
744
|
+
We use [Conventional Commits](https://www.conventionalcommits.org/):
|
|
745
|
+
|
|
746
|
+
```bash
|
|
747
|
+
feat: add new plugin system
|
|
748
|
+
fix: resolve build issue
|
|
749
|
+
docs: update README
|
|
750
|
+
chore: update dependencies
|
|
751
|
+
test: add unit tests
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
### Code of Conduct
|
|
755
|
+
|
|
756
|
+
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
## Community
|
|
761
|
+
|
|
762
|
+
- **GitHub Discussions** - Ask questions and share ideas
|
|
763
|
+
- **Discord** - Join our community (coming soon)
|
|
764
|
+
- **Twitter** - Follow [@kubit_ui](https://twitter.com/kubit_ui)
|
|
765
|
+
- **Blog** - Read about new features and best practices
|
|
766
|
+
|
|
767
|
+
---
|
|
768
|
+
|
|
769
|
+
## Roadmap
|
|
770
|
+
|
|
771
|
+
### Current (v0.x)
|
|
772
|
+
|
|
773
|
+
- ✅ Core CLI functionality
|
|
774
|
+
- ✅ Plugin system
|
|
775
|
+
- ✅ Recipe system
|
|
776
|
+
- ✅ Monorepo support
|
|
777
|
+
- ✅ Interactive dashboard
|
|
778
|
+
- ✅ Asset optimization
|
|
779
|
+
- ✅ SBOM generation
|
|
780
|
+
- ✅ Doctor command
|
|
781
|
+
|
|
782
|
+
### Upcoming (v1.x)
|
|
783
|
+
|
|
784
|
+
- 🔄 Visual Studio Code extension
|
|
785
|
+
- 🔄 Cloud deployment integrations
|
|
786
|
+
- 🔄 Advanced caching strategies
|
|
787
|
+
- 🔄 Remote plugin registry
|
|
788
|
+
- 🔄 AI-powered code reviews
|
|
789
|
+
- 🔄 Performance profiling tools
|
|
790
|
+
|
|
791
|
+
### Future (v2.x)
|
|
792
|
+
|
|
793
|
+
- 📋 Multi-language support (Go, Rust, Python)
|
|
794
|
+
- 📋 Kubernetes integration
|
|
795
|
+
- 📋 Serverless deployment
|
|
796
|
+
- 📋 Advanced monitoring and observability
|
|
797
|
+
|
|
798
|
+
---
|
|
799
|
+
|
|
800
|
+
## Changelog
|
|
801
|
+
|
|
802
|
+
See [CHANGELOG.md](CHANGELOG.md) for a detailed history of changes.
|
|
803
|
+
|
|
804
|
+
---
|
|
805
|
+
|
|
806
|
+
## License
|
|
807
|
+
|
|
808
|
+
Kubit Forge is [MIT licensed](LICENSE).
|
|
809
|
+
|
|
810
|
+
---
|
|
811
|
+
|
|
812
|
+
## Acknowledgments
|
|
813
|
+
|
|
814
|
+
Built with ❤️ by the Kubit team and [contributors](https://github.com/kubit-ui/kubit-forge/graphs/contributors).
|
|
815
|
+
|
|
816
|
+
Special thanks to:
|
|
817
|
+
|
|
818
|
+
- [Vite](https://vitejs.dev/) - Lightning-fast build tool
|
|
819
|
+
- [TypeScript](https://www.typescriptlang.org/) - Type-safe JavaScript
|
|
820
|
+
- [Commander.js](https://github.com/tj/commander.js) - CLI framework
|
|
821
|
+
- [Changesets](https://github.com/changesets/changesets) - Version management
|
|
822
|
+
- [pnpm](https://pnpm.io/) - Fast, disk-efficient package manager
|
|
823
|
+
|
|
824
|
+
---
|
|
825
|
+
|
|
826
|
+
## Support
|
|
827
|
+
|
|
828
|
+
- **Documentation** - [docs.kubit-ui.com](https://docs.kubit-ui.com)
|
|
829
|
+
- **Issues** - [GitHub Issues](https://github.com/kubit-ui/kubit-forge/issues)
|
|
830
|
+
- **Discussions** - [GitHub Discussions](https://github.com/kubit-ui/kubit-forge/discussions)
|
|
831
|
+
- **Email** - team@kubit-forge.org
|
|
832
|
+
|
|
833
|
+
---
|
|
834
|
+
|
|
835
|
+
<div align="center">
|
|
836
|
+
|
|
837
|
+
**[Website](https://kubit-ui.com)** • **[Documentation](https://docs.kubit-ui.com)** • **[GitHub](https://github.com/kubit-ui/kubit-forge)** • **[NPM](https://www.npmjs.com/package/kubit-forge)**
|
|
838
|
+
|
|
839
|
+
Made with ❤️ for the open-source community
|
|
840
|
+
|
|
841
|
+
</div>
|