Getting Started
Prerequisites
Before you begin, ensure you have:- macOS 26.0+ with Apple Silicon (M1/M2/M3/M4) - Intel Macs not supported
- Xcode Command Line Tools:
xcode-select --install - Node.js 20+ and pnpm:
npm install -g pnpm - Git for version control
- Apple Container CLI (optional, for container features)
Quick Start
Fork → Clone →pnpm install → pnpm tauri dev → Make changes → Submit PR
For detailed setup instructions, see the Development Setup guide.
Development Workflow
Branch Strategy
main- Stable release branchdevelop- Integration branch for new featuresfeature/feature-name- Feature developmentfix/issue-description- Bug fixesdocs/documentation-update- Documentation improvements
Standard Workflow
Make Changes
- Follow our Code Standards
- Write tests for new functionality
- Update documentation as needed
Commit Changes
Code Standards
TypeScript
- Strict typing required - No
anytypes without justification - Types over interfaces - Use Types for object shapes
- Explicit return types - For all public functions
Svelte Components
- Component-scoped styles - Use
<style>blocks in components - TypeScript in script blocks - Always use
<script lang="ts"> - Props with types - Explicitly type all props
Rust (Tauri Backend)
- Follow Rust conventions - Use
cargo fmtandcargo clippy - Error handling - Proper error types with context
- Documentation - Doc comments for public APIs
- Testing - Unit tests for complex logic
Database Schema (Drizzle)
- Descriptive table names - Clear, singular nouns
- Consistent field naming - camelCase for TypeScript compatibility
- Proper relationships - Use foreign keys appropriately
- Migration versioning - Sequential, descriptive migration names
Testing Guidelines
Frontend Testing
- Component tests - Test component behavior and rendering (Storybook with tauri need to integrate it)
- Integration tests - Test workflows
- Type tests - Ensure TypeScript types are correct
Backend Testing
- Unit tests - Test individual functions and modules
- Integration tests - Test Tauri commands end-to-end
- Database tests - Test schema and queries
Development Priority: Testing framework setup is needed.
Documentation Standards
Code Documentation
- TypeScript - JSDoc comments for public APIs
- Svelte - Component prop documentation
- Rust - Doc comments (
///) for public functions
README and Guides
- Clear headings - Use consistent markdown structure
- Code examples - Include working examples
- Step-by-step guides - Break down complex processes
- Links and references - Cross-reference related documentation
Commit Message Guidelines
We follow the Conventional Commits specification:Format
Types
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- style: Code style changes (formatting, semicolons, etc.)
- refactor: Code refactoring without feature changes
- test: Adding or updating tests
- chore: Build process or auxiliary tool changes
Examples
Areas for Contribution
Bug Fixes
- UI inconsistencies - Visual bugs and layout issues
- Performance issues - Memory leaks, slow operations
- Compatibility problems - Issues with different macOS versions (26.0+)
- Edge cases - Handling of unusual input or states
New Features
Check existing issues and roadmap before starting new features during development phase.
- Container management - New container operations and workflows
- UI improvements - Better user experience and accessibility
- Apple integration - Enhanced macOS container and sandbox features
- Developer tools - CLI improvements and automation scripts
- Performance optimizations - Faster operations and better resource usage
Documentation
- API documentation - Document Tauri commands and TypeScript APIs
- User guides - Step-by-step tutorials and how-to guides
- Developer guides - Architecture documentation and contribution guides
- Code examples - Real-world usage examples and best practices
UI/UX Improvements
- Accessibility - Better keyboard navigation, screen reader support
- Design consistency - Follow Apple Human Interface Guidelines
- Dark mode - Improvements to dark theme implementation
- Responsive design - Better support for different screen sizes
Pull Request Guidelines
Before Submitting
- Code follows project style guidelines
- Self-review of code completed
- Tests added/updated for changes
- Documentation updated if needed
- No merge conflicts with main branch
PR Description Template
Bug Reports
Before Reporting
- Search existing issues - Check if the bug is already reported
- Try latest version - Ensure you’re using the most recent build
- Minimal reproduction - Create the smallest possible reproduction case
Bug Report Template
Feature Requests
Feature Request Template
Security
Reporting Security Issues
Instead, email security issues to: [email protected] Include:- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Any suggested fixes
Security Best Practices
- Input validation - Sanitize all user inputs
- Secure storage - Encrypt sensitive data
- Authentication - Proper session management
- Dependencies - Keep dependencies updated
Recognition
Contributors will be recognized in:- README.md - Contributors section
- Release notes - Acknowledgment in release announcements
- GitHub - Contributor badge and statistics
Getting Help
- GitHub Discussions - Project Discussions
- Email - [email protected]
Additional Resources
- Tauri Documentation
- Svelte 5 Documentation
- Rust Book
- TypeScript Handbook
- Tailwind CSS Documentation
- Shadcn-Svelte Documentation
Thank you for contributing to Container Kit! Your contributions help make Apple container management better for everyone.