First off, thank you for considering contributing! Projects like this live and breathe through community involvement. Whether you are fixing a typo in a lesson or optimizing the Skulpt engine logic, your help is welcome.
Help us build the curriculum! We need writers who can explain complex Python concepts in a beginner-friendly way.
- Target: The Python Ledger.
- Format: Markdown files using our custom
<InteractivePython>component (You do not need to know React, its rendered automaticly for you if usinginteractivetag on a code block. - Goal: Create hands-on projects (like the Text Adventure) that reinforce the ledger theme or expand and fix lessons.
Help us polish the interactive experience.
- Target:
/src/components/InteractivePython/. - Tech: React, Skulpt.js, CodeMirror.
- Focus: Improving terminal UI, handling edge cases in Python execution, or adding support for Python standard libraries.
- Find an Issue: Check the GitHub Issues for tags like
good first issueorhelp wanted. - Fork & Clone: Fork the repo and clone it locally.
- Install Dependencies:
npm install
- Create a Branch:
git checkout -b feature/your-feature-name
- Run Locally: Use
npm startto see your changes in real-time.
Warning
For working with engine you will also need to clone the curriculum repository so they are side by side.
Do not mix the repositories, they should be completly independant from each other.
- main: The stable production branch. Do not commit directly here.
- feature/: For new engine features.
- fix/: For bug fixes.
If you are writing a new lesson:
- Start with a clear learning objective.
- Use the
<InteractivePython>component at least once per page for hands-on practice. - Ensure the code examples are compatible with Python 3 (Skulpt's current implementation).
- Check out curriculum repository for more information or join us on Discord
- We use Prettier for formatting. Please run
npm run formatbefore submitting a PR. - React components should follow functional patterns and use hooks.
- Ensure your code builds locally without errors.
- Update the
README.mdor documentation if you’ve added a new feature. - Submit your PR with a clear description of what changed and why.
- Link the PR to the relevant Issue (e.g.,
Closes #123). - Wait for a maintainer to review your code. We try to respond within 48 hours!
By contributing, you agree to follow our Code of Conduct. Be kind, be helpful, and let’s build the best Python learning tool on the web!
Questions? Join our Discord Community!