Contribute to Fabrica
Help improve the project and grow the community
Fabrica is an open-source project built by the community. Whether you're a developer, designer, maker, or enthusiast, there are many ways to contribute!
Ways to Contribute
💻
Code Contributions
- • Fix bugs and improve software stability
- • Add new features (sensors, UI, automation)
- • Optimize performance and reduce memory usage
- • Write unit tests for better code quality
- • Improve documentation and code comments
🎨
Design Improvements
- • Design better 3D printed parts
- • Create alternative panel configurations
- • Optimize for different printer sizes
- • Design enclosures and accessories
- • Share CAD source files (STEP, F3D)
📝
Documentation
- • Improve build instructions and guides
- • Translate documentation to other languages
- • Write troubleshooting tips from experience
- • Create video tutorials and demos
- • Document your build process and share learnings
🧪
Testing & Feedback
- • Test new features and report issues
- • Validate instructions on different hardware
- • Try alternative components and share results
- • Create folding sequences for different garments
- • Provide usability feedback
💬
Community Support
- • Answer questions in GitHub Discussions
- • Help troubleshoot issues for other builders
- • Share your build photos and videos
- • Write blog posts about your experience
- • Promote the project on social media
🎓
Educational Content
- • Create workshop materials for makerspaces
- • Develop curriculum for STEM education
- • Host build sessions or meetups
- • Present at maker fairs and conferences
- • Mentor new builders
Contributing Code
Development Workflow
1
Fork the Repository
Create your own fork of the Fabrica repository on GitHub.
# Fork on GitHub, then clone your fork git clone https://github.com/YOUR_USERNAME/fabrica.git cd fabrica # Add upstream remote git remote add upstream https://github.com/yourusername/fabrica.git
2
Create a Feature Branch
Always work in a dedicated branch, not main.
# Create and switch to new branch git checkout -b feature/your-feature-name # Or for bug fixes: git checkout -b fix/issue-description
3
Make Your Changes
Write clean, well-commented code. Follow the existing code style. Test thoroughly on actual hardware before submitting.
4
Commit with Clear Messages
# Stage your changes git add . # Commit with descriptive message git commit -m "Add: New feature for simultaneous servo control" # or "Fix: Resolve I2C communication timeout issue" # or "Docs: Update calibration instructions"
5
Push and Create Pull Request
# Push to your fork git push origin feature/your-feature-name # Then create PR on GitHub
In your PR description, explain what you changed and why. Reference any related issues.
Code Review Process
- • A maintainer will review your PR within 1-2 weeks
- • Address any feedback or requested changes
- • Once approved, your code will be merged!
- • You'll be added to the contributors list
Coding Guidelines
Python Style (MicroPython)
- • Follow PEP 8 style guidelines
- • Use 4 spaces for indentation (no tabs)
- • Maximum line length: 100 characters
- • Use descriptive variable names
- • Add docstrings to functions and classes
- • Keep functions small and focused
Documentation Style
- • Use Markdown for all documentation
- • Include code examples where relevant
- • Add images/diagrams to clarify concepts
- • Keep language simple and beginner-friendly
- • Proofread for grammar and spelling
- • Test all instructions before publishing
3D Design Guidelines
- • Provide source files (STEP, Fusion 360)
- • Export clean STL files (manifold, no errors)
- • Design for printability (minimal supports)
- • Include tolerances for assembly (±0.2mm)
- • Document print settings and orientation
- • Test physical prints before sharing
Commit Message Format
Format:
Type: Brief description (50 chars max)Types:
- • Add: New feature
- • Fix: Bug fix
- • Docs: Documentation update
- • Refactor: Code restructure
- • Test: Add/update tests
Contributor Recognition
🏆
We Value Your Contributions
- • All contributors are listed in the project README
- • Significant contributions earn special badges
- • Feature contributors are credited in release notes
- • Active community members become maintainers
Developer Resources
Ready to Contribute? 🚀
Join our community of makers, developers, and enthusiasts. Every contribution, big or small, makes Fabrica better for everyone!