Thanks for your interest in contributing to Humanly. Please also read the Code of Conduct. It applies in every project space.
Humanly is licensed under the MIT License. There is no CLA. By opening a pull request, you agree that your contribution is licensed under the same MIT license as the rest of the project, and that you have the right to license it.
- Fork the repository.
- Clone your fork:
git clone https://github.com/<your-username>/humanly.git. - Follow the Development section in the README to install dependencies and start the local services.
- Create a branch from
main:git checkout -b my-feature. - Make your changes.
- Run the relevant local app or package to verify the behavior.
- Run checks for the area you changed:
pnpm type-check
pnpm test:runnable
pnpm build:all- If you changed the database schema, add a migration under
packages/backend/src/db/migrationsand verify it carefully. - Commit and push your branch.
- Open a pull request against
main.
If you add or change focused tests, run the narrowest relevant package command as well and document the exact command in the pull request.
- Describe what your PR does and why.
- Keep PRs focused: one feature, fix, or documentation improvement per PR.
- Include migration files when changing the database schema.
- Include screenshots or short recordings for visible UI changes when useful.
- Call out any known limitations, skipped checks, or follow-up work.
- TypeScript is used across the workspace.
- Follow existing package boundaries and local patterns before adding new abstractions.
- Next.js and Tailwind CSS power the Publisher Portal and Writer Portal.
- Express, PostgreSQL, Redis, and SQL migrations power the backend.
- Keep shared contracts in
packages/sharedwhen both frontend and backend need the same types or validation logic. - Treat auth, sessions, permissions, persistence, AI behavior, and writing-event tracking as high-risk areas that need focused verification.
Open an issue on GitHub with:
- What you expected to happen.
- What actually happened.
- Steps to reproduce.
- Browser, OS, and environment details when relevant.