|
| 1 | +# Contributing to LayerZero |
| 2 | + |
| 3 | +Thanks for checking out LayerZero! This is an actively maintained personal project, and contributions, bug reports, and suggestions are welcome. |
| 4 | + |
| 5 | +## Tech Stack |
| 6 | + |
| 7 | +Before diving in, make sure you're familiar with: |
| 8 | +- **Backend:** Node.js / Express (TypeScript) |
| 9 | +- **Caching:** Redis (via Upstash) |
| 10 | +- **Deployment:** Docker + GitHub Actions CI/CD, AWS EC2 |
| 11 | +- **Frontend:** Cloudflare Workers |
| 12 | +- **AI Models:** Gemini, Cerebras GPT-OSS-120B, Gemma, Sarvam 30B (routed via a shared model interface) |
| 13 | + |
| 14 | +## Getting Started |
| 15 | + |
| 16 | +1. Fork the repo and clone your fork: |
| 17 | + ```bash |
| 18 | + git clone https://github.com/<your-username>/layerzero.git |
| 19 | + cd layerzero |
| 20 | + ``` |
| 21 | +2. Install dependencies: |
| 22 | + ```bash |
| 23 | + npm install |
| 24 | + ``` |
| 25 | +3. Copy the example env file and fill in your own API keys: |
| 26 | + ```bash |
| 27 | + cp .env.example .env |
| 28 | + ``` |
| 29 | +4. Run locally: |
| 30 | + ```bash |
| 31 | + npm run dev |
| 32 | + ``` |
| 33 | + |
| 34 | +If you're using Docker instead: |
| 35 | +```bash |
| 36 | +docker compose up --build |
| 37 | +``` |
| 38 | + |
| 39 | +## Making Changes |
| 40 | + |
| 41 | +1. Create a new branch off `main`: |
| 42 | + ```bash |
| 43 | + git checkout -b fix/short-description |
| 44 | + ``` |
| 45 | +2. Keep changes focused — one fix or feature per PR makes review much faster. |
| 46 | +3. Match the existing code style (TypeScript strict mode, existing naming conventions). |
| 47 | +4. Test your changes locally before opening a PR. If you're touching model routing, caching, or the ingestion pipeline, please note what you tested manually in the PR description (automated test coverage is still a work in progress). |
| 48 | + |
| 49 | +## Submitting a Pull Request |
| 50 | + |
| 51 | +1. Push your branch and open a PR against `main`. |
| 52 | +2. In the PR description, include: |
| 53 | + - What the change does and why |
| 54 | + - Any relevant screenshots/logs if it's a bug fix |
| 55 | + - Whether it touches deployment config (Dockerfile, GitHub Actions workflows) — these get extra scrutiny since they affect the live EC2 deployment |
| 56 | +3. Be responsive to review comments — this is a small project maintained solo, so turnaround might take a few days. |
| 57 | + |
| 58 | +## Reporting Bugs / Suggesting Features |
| 59 | + |
| 60 | +Open an issue with: |
| 61 | +- **Bugs:** steps to reproduce, expected vs actual behavior, relevant logs |
| 62 | +- **Features:** what problem it solves, and if possible, a rough idea of implementation |
| 63 | + |
| 64 | +## Code of Conduct |
| 65 | + |
| 66 | +Be respectful, be constructive. This is a learning project as much as anything else — good-faith questions and beginner contributions are just as welcome as advanced ones. |
| 67 | + |
| 68 | +## Questions? |
| 69 | + |
| 70 | +Open an issue or start a discussion — happy to help you get oriented in the codebase. |
0 commit comments