First off, thank you for considering contributing to kit! This project aims to help Christian creatives keep in touch with their community, and your help makes that mission possible.
By participating in this project, you agree to maintain a welcoming, respectful environment. Please report unacceptable behavior to @cameronpak on X/Twitter.
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- A clear, descriptive title
- Detailed steps to reproduce the issue
- Expected behavior vs actual behavior
- Screenshots if applicable
- Your environment details (OS, browser, kit version)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear, descriptive title
- Provide a detailed description of the proposed functionality
- Explain why this enhancement would be useful
- Include mockups or examples if applicable
- Fork the repository
- Create a new branch (
git checkout -b feature/amazing-feature
) - Make your changes
- Run tests and formatting:
npm run format npm run build
- Commit your changes using conventional commits:
git commit -m "feat: add amazing feature"
- Push to your branch (
git push origin feature/amazing-feature
) - Open a Pull Request
-
Ensure you have:
- Node.js >=20.3.0
- NPM >=10.0.0
-
Clone your fork:
git clone https://github.com/your-username/kit.git
-
Install dependencies:
npm install
-
Copy environment variables:
cp .env.example .env
-
Start development server:
npm run dev
- Use 2 spaces for indentation
- Maximum line length: 120 characters
- Format with Prettier (run
npm run format
) - Follow existing code patterns
Follow the Conventional Commits specification:
feat:
new featurefix:
bug fixdocs:
documentation changesstyle:
formatting changesrefactor:
code restructuringtest:
adding/updating testschore:
maintenance tasks
- Enable strict mode
- Provide proper type definitions
- Avoid
any
types when possible
- Create .astro files for Astro components
- Use framework-specific components when necessary
- Implement proper component composition
- Use Astro's component props for data passing
src/
├── actions/ # Server actions
├── components/ # Reusable components
├── layouts/ # Page layouts
├── pages/ # Route pages
├── db/ # Database models
└── libs/ # Utility functions
Feel free to reach out on X/Twitter or open an issue.
By contributing, you agree that your contributions will be licensed under the same Attribution License that covers the project.