Contributing¶
Thank you for your interest in contributing to Pipelit! This section covers everything you need to get started as a developer.
Guides¶
Development Setup¶
Fork the repository, install dependencies, and run the backend, worker, and frontend in development mode.
Testing¶
Run the test suite, understand the test structure, write new tests with Bearer token authentication, and check coverage.
Adding Components¶
Step-by-step guide to creating new workflow node types: registry entries, component implementations, SQLAlchemy models, Pydantic schemas, and frontend types.
Migrations¶
Alembic migration best practices: checking for conflicts, handling SQLite batch operations, testing against existing data, and common commands.
Code Style¶
Python and TypeScript conventions, type hints, formatting, and the most important rule: this project uses FastAPI + SQLAlchemy, not Django.
Quick Contribution Checklist¶
Before submitting a pull request:
- Branch -- create a feature branch from
master - Code -- follow the project's code style and conventions
- Test -- add or update tests for your changes
- Migrate -- create an Alembic migration if you changed database models
- Register -- if adding a new component type, register it in all required places
- Run tests -- ensure the full test suite passes
- Commit -- write clear, descriptive commit messages
Tech Stack Reminder¶
This project uses:
| Layer | Technologies |
|---|---|
| Backend | FastAPI, SQLAlchemy 2.0, Alembic, Pydantic, RQ (Redis Queue) |
| Frontend | React, Vite, TypeScript, Shadcn/ui, React Flow, TanStack Query |
| Execution | LangGraph, LangChain, Redis pub/sub, WebSocket |
Not Django
This project uses FastAPI + SQLAlchemy + RQ. Never reference Django models, Django ORM, Django settings, or any Django concepts. The backend is Python/FastAPI with SQLAlchemy models and Alembic migrations.