Thank you for your interest in contributing to SyncDraft — we appreciate your time and help!
This document explains how to get started, how to propose changes, and what we expect from contributors. If you're new to open source, welcome — we try to make onboarding as simple as possible.
- What we welcome
- Quick start (run locally)
- How to pick an issue
- Branches, commits & PRs
- Testing & linting
- Reviewing process
- Labels
- License & contributor terms
- Getting help
- Bug reports and reproducible test cases
- Documentation improvements and tutorials
- Small features and quality-of-life improvements
- Help triaging issues and mentoring new contributors
If you're unsure where to start, look for issues labeled good first issue or help wanted.
- Fork the repository and clone your fork:
git clone https://github.com/<your-username>/Distributed-Collaborative-Editor.git
cd Distributed-Collaborative-Editor- Install dependencies and start the backend and frontend in separate terminals:
Backend:
cd server
cp .env.example .env # set REDIS_URL, SUPABASE_SERVICE_ROLE_KEY, etc.
npm install
npm startFrontend:
cd syncraft
cp .env.example .env # set REACT_APP_SUPABASE_URL, REACT_APP_SUPABASE_ANON_KEY, REACT_APP_WS_URL
npm install
npm startDefault ports:
- Backend: ws://localhost:1234
- Frontend: http://localhost:3000
good first issue— for newcomershelp wanted— smaller but useful tasksbug— confirmed bugs and reproducible problemsenhancement— new features or UX improvements
If you'd like to work on an issue, comment on it so maintainers and others know you're working on it.
- Create a feature branch from
main:- git checkout -b feat/short-description
- git checkout -b fix/short-description
- Commit messages: use clear, present-tense summary lines, e.g.:
- "fix: handle redis connection error on startup"
- "feat: add export to docx option"
- Squash small fixup commits before merging, or use PR squash merge if enabled.
- Open a PR against
main. - In your PR description, include:
- What problem this solves
- Screenshots (if UI)
- How to test locally
- Related issue number (if any)
- Fill the PR template checklist (automatically added if using template).
- A maintainer or reviewer will provide feedback. Address requested changes by updating your branch.
- Once approved, a maintainer will merge.
- Add tests for significant changes when applicable.
- If you modify frontend styles or scripts, include screenshots and accessibility considerations.
- Lint and format your code before opening the PR (we recommend Prettier / ESLint — if you add tooling, document it here).
- Be responsive to code review comments.
- Keep PRs focused and small where possible.
- If a PR stays inactive for a long time, maintainers may close it; you can re-open or re-submit later.
Common labels we use:
- good first issue
- help wanted
- bug
- enhancement
- documentation
- blocked
If you think a new label would help triage, suggest it in an issue.
By contributing to this repository, you agree that your contributions will be licensed under the repository's MIT License (see LICENSE). If this is not acceptable, do not submit a patch.
If you have questions before starting:
- Open an issue describing what you want to do.
- Mention
@Sachin1395or ping in the issue.
We appreciate time and effort — thank you for helping make SyncDraft better!