We appreciate your interest in contributing to Streamlit Plugins! Whether you're fixing bugs, adding features, improving documentation, or helping with frontend components, your help is invaluable.
Please take a moment to review the following guidelines to ensure a smooth contribution process.
By participating in this project, you agree to abide by our Code of Conduct. Please treat everyone with respect and kindness.
If you find a bug or an issue, please open an issue. Be sure to include:
- A clear and descriptive title.
- Steps to reproduce the issue.
- Relevant screenshots or GIFs, if applicable.
- Details about your environment (Streamlit version, Python version, etc.).
We love hearing your ideas for improving Streamlit Plugins! If you have a feature request, open a feature request issue and describe:
- The feature you'd like to see.
- Why this feature would be useful.
- Any potential implementation ideas.
If you'd like to contribute code, you can work on either:
- Backend (Python): Core Streamlit plugins and server-side logic.
- Frontend (React + TypeScript): Custom Streamlit components with modern web technologies.
- Clone the repository:
git clone https://github.com/quiradev/streamlit-plugins.git cd streamlit-plugins
- Create and activate a virtual environment for Python development:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- Install Python dependencies:
pip install -r requirements.txt
- Install frontend dependencies (if working on components):
cd frontend npm install
- The backend is written in Python and extends Streamlit functionality.
- Core plugins and functionality live in the
streamlit_plugins
directory.
Ensure your Python code works as expected by running the test suite:
pytest
Custom components are developed using React and TypeScript. These components interact with Streamlit via the Streamlit Component API.
- Navigate to the
frontend
directory:cd frontend
- Start the development server:
This will start a local server at
npm start
http://localhost:3000
where you can preview your components. - Build the frontend components:
npm run build
Frontend tests can be written using Jest or other JavaScript testing frameworks. Run tests with:
npm test
Once your custom component is ready, package it by running:
npm run build
Place the built files in the appropriate Python directory to make it accessible as a Streamlit plugin.
- Follow PEP 8.
- Use meaningful variable and function names.
- Add comments where the code might not be self-explanatory.
- Use Prettier for formatting.
- Use functional components and React hooks.
- Keep components small and focused.
- Follow best practices for TypeScript type safety.
Run linters before committing:
flake8 # For Python
npm run lint # For TypeScript
If you have any questions or need help, feel free to reach out by opening an issue or contacting the maintainers.
Thank you for helping make Streamlit Plugins awesome! 🎉