Contributing
Thanks for your interest in contributing to Claude Deck! We welcome pull requests and issues from everyone.
Getting Started
- Fork the repo and clone it:
bash
git clone https://github.com/<your-username>/claude-deck.git
cd claude-deck- Run the install script (requires Python 3.11+ and Node.js 18+):
bash
./scripts/install.sh- Start the dev servers:
bash
./scripts/dev.shBackend runs at http://localhost:8000, frontend at http://localhost:5173.
Code Style
Frontend
- TypeScript strict mode (
noUnusedLocals,noUnusedParameters) - ESLint — run
cd frontend && npm run lintbefore submitting - Tailwind CSS + shadcn/ui for styling
- Path alias
@/*maps to./src/*
Backend
- Python with type hints throughout
- Async/await patterns
- Pydantic models for request/response validation
Project Structure
Each feature lives in its own module under frontend/src/features/. When adding a new feature:
- Create a directory in
frontend/src/features/<name>/ - Add a page component, sub-components, API functions, and types
- Register the route in
frontend/src/App.tsx - Add the backend route module in
backend/app/api/v1/ - Register the router in
backend/app/api/v1/router.py
Submitting Changes
- Create a branch for your change
- Make your changes and test them locally
- Run
cd frontend && npm run lintto check for lint errors - Open a pull request with a clear description of what you changed and why
Reporting Issues
Found a bug or have a feature idea? Open an issue and include:
- What you expected to happen
- What actually happened
- Steps to reproduce (if applicable)
License
By contributing, you agree that your contributions will be licensed under the MIT License.
