Thank you for your interest in contributing to start-it! This guide will help you get started.
- Node.js 14+
- npm 6+
- TypeScript knowledge
- Clone the repository:
git clone <repository-url>
cd start-it- Install dependencies:
npm install- Build the project:
npm run build- Run in development mode:
npm run devnpm run buildThis compiles TypeScript to JavaScript in the dist/ directory.
npm testRun the test suite to ensure everything works correctly.
To add a new framework template:
-
Create a new file in
src/templates/(e.g.,src/templates/rust.ts) -
Define your template following this structure:
import { TemplateConfig } from "../types";
export const rustTemplates: Record<string, TemplateConfig> = {
"Template Name": {
name: "Template Name",
description: "Description of the template",
files: [
{
path: "file/path.txt",
content: "File content here",
isExecutable: false, // optional
},
// ... more files
],
},
};- Export your templates in
src/templates/index.ts:
import { rustTemplates } from "./rust";
const allTemplates: Record<string, Record<string, TemplateConfig>> = {
// ... existing frameworks
Rust: rustTemplates,
};-
Update the CLI in
src/cli.tsto include your framework in the FRAMEWORKS array and add framework-specific options if needed. -
Add tests in
src/__tests__/generator.test.tsfor your new templates. -
Update
README.mdandEXAMPLES.mdwith documentation.
start-it/
├── src/
│ ├── cli.ts # CLI entry point
│ ├── generator.ts # Project generator logic
│ ├── types.ts # TypeScript type definitions
│ ├── templates/ # Framework templates
│ │ ├── index.ts # Template registry
│ │ ├── go.ts
│ │ ├── flutter.ts
│ │ ├── react-native.ts
│ │ ├── spring-boot.ts
│ │ ├── node.ts
│ │ └── python.ts
│ └── __tests__/
│ └── generator.test.ts # Tests
├── dist/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
├── jest.config.js
├── README.md
├── EXAMPLES.md
└── CONTRIBUTING.md
- Use TypeScript for all source files
- Follow existing code patterns and conventions
- Use meaningful variable and function names
- Add comments for complex logic
- Write tests for new features
- Ensure all tests pass before submitting a PR
- Aim for good test coverage
npm test- Create a new branch for your feature:
git checkout -b feature/your-feature-name- Make your changes and commit:
git commit -am 'Add your feature description'- Push to your fork:
git push origin feature/your-feature-name- Submit a pull request with a clear description of your changes
If you find a bug or have a suggestion, please open an issue on GitHub with:
- A clear description
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your environment (Node version, OS, etc.)
By contributing, you agree that your contributions will be licensed under the MIT License.
Feel free to open an issue or discussion if you have any questions!