Thank you for your interest in contributing to StreamMind AI! This guide will help you get started.
- Node.js ≥ 18
- pnpm ≥ 8
- Git
# Fork and clone
git clone https://github.com/YOUR_USERNAME/streammind-ai.git
cd streammind-ai
# Install dependencies
pnpm install
# Copy environment config
cp .env.example .env
# Fill in your TMDB_API_KEY
# Build all packages
pnpm build
# Start development
pnpm devapps/
api/ → Backend API (Fastify)
extension/ → Chrome Extension (React + Vite)
packages/
shared-types/ → Zod schemas + TypeScript types
llm-adapter/ → LLM orchestration layer
catalog-core/ → TMDB integration
recommendation-core/ → Business logic
- TypeScript everywhere — no
anytypes. - Strict mode — all compiler checks enabled.
- Zod schemas — validate all external data at boundaries.
- SOLID principles — especially Dependency Inversion for providers.
- Meaningful names — code should read like documentation.
- Small functions — each function does one thing.
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Run checks:
pnpm typecheck && pnpm lint && pnpm test - Commit with a clear message:
feat: add Anthropic adapter - Push and open a PR against
main - Fill out the PR template
- Wait for review
We follow Conventional Commits:
feat: add new feature
fix: fix a bug
docs: update documentation
refactor: refactor code without changing behavior
test: add or update tests
chore: maintenance tasks
- Create
packages/llm-adapter/src/providers/YourAdapter.ts - Implement the
LLMProviderinterface - Handle provider-specific errors
- Register in the provider factory
- Add UI option in the extension
- Update documentation
- Add tests
- NEVER log API keys
- NEVER store API keys server-side
- Validate ALL external input
- Validate ALL LLM output
- Test for prompt injection
- Follow the principle of least privilege
Open an issue with the question label. We're happy to help!