Contributing
Thank you for your interest in contributing! This guide covers how to set up the development environment and follow project conventions.
Prerequisites
Section titled “Prerequisites”- Node.js v22+
- pnpm v9+ (this repo pins pnpm 11 via
packageManager) - (Optional) FFmpeg for live remux of progressive MP4 while downloading
- (Optional) A TMDB API key — via Settings → Modules (see TMDB) or
TMDB_API_KEY - (Optional) A Prowlarr, Jackett, or Torrentio setup for torrent search
Development setup
Section titled “Development setup”-
Fork and clone the repository
Terminal window git clone https://github.com/Artpou/seedarr.gitcd seedarr -
Install dependencies
Terminal window pnpm install -
Set up environment variables
Copy
.env.exampleto.envand fill in the values you need. At minimum:Terminal window API_PORT=3002WEB_URL=http://localhost:3000VITE_API_URL=http://localhost:3002TMDB_API_KEY=your_tmdb_api_key_here -
Initialize the database
Terminal window pnpm db:push -
Start the development servers
Terminal window pnpm dev- Web: http://localhost:3000
- API: http://localhost:3002
- Website (docs + landing): http://localhost:4321
Commands
Section titled “Commands”pnpm check # lint + types + tests + knippnpm lint:fix # auto-fix with Biomepnpm db:generate # generate Drizzle migrationspnpm db:migrate # apply migrationsAlways run pnpm check before submitting a pull request.
Coding standards
Section titled “Coding standards”- TypeScript strict mode — never use
any - Biome for lint/format (2-space indent, 120 cols, double quotes)
kebab-casefiles,PascalCasecomponents- API types from
@seedarr/sdk; request DTOs from@seedarr/contracts - UI primitives stay app-local (
apps/web/src/shared/ui,apps/website/src/components/ui)
For architecture details, see Architecture and AGENTS.md in the repository.