We love contributions! Nala is an open-source project and we welcome help from anyone.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/nala-cal-poly-demo.git - Start the app with Docker:
docker compose up --build - Make your changes
- Open a pull request
See the README for full setup instructions. The quickest path:
docker compose up --build
# App: http://localhost:5173
# API: http://localhost:3001Source files are volume-mounted, so edits hot-reload without rebuilding.
Check open issues for things to pick up. Good areas for contributions:
- New voices/languages - Add voice options or language support
- UI improvements - Animations, accessibility, mobile polish
- New starter prompts - Better onboarding suggestions
- Performance - Optimize WebLLM loading, reduce bundle size
- Testing - Add integration tests, improve coverage
- Documentation - Tutorials, guides, examples
- Keep it simple - Small, focused PRs are easier to review
- Follow existing patterns - Match the code style already in the project
- Test your changes - Run
npm run test:clientbefore submitting - Describe your PR - Explain what you changed and why
- TypeScript strict mode
- Functional React components with hooks
- Named exports (no default exports)
- Files:
kebab-case.ts/kebab-case.tsx - Components:
PascalCase - CSS: BEM-style class names
# Client tests
cd client && npx vitest run
# Server tests (requires PostgreSQL)
cd server && DATABASE_URL=postgresql://localhost:5432/nala_test npx vitest runBy contributing, you agree that your contributions will be licensed under the Apache 2.0 License.