Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to RayMail

Thanks for taking the time to contribute.

## Getting set up

```bash
git clone https://github.com/DeveloperSarim/raymail.git
cd raymail/web
npm install
npm run dev
```

The webmail expects a JMAP server. Either point `JMAP_ENDPOINT` at an existing
Stalwart instance, or bring the whole stack up with `docker compose up -d` and
develop against that.

## Before you open a pull request

```bash
npm run typecheck   # must pass - the project is strict, including noUncheckedIndexedAccess
npm test            # must pass
npm run build       # must succeed
```

## What we look for

- **Keep TypeScript strict.** No `any` to make an error go away, no `@ts-ignore`
  without a comment explaining why it is unavoidable.
- **Add a test when you touch a security or delivery path.** Tracking tokens,
  session crypto, the click redirector and anything that sends mail all have
  consequences when they break.
- **Match the surrounding style** rather than introducing a new one.
- **Explain the why, not the what,** in comments. The code already says what.

## Reporting a security issue

Please do **not** open a public issue for a vulnerability. Open a private
security advisory through the repository's Security tab instead.

## Commit messages

Short imperative subject, and a body when the change needs justification:

```
Fix open redirect in the click tracker

The destination was taken from the URL rather than the signed token, so a
crafted link could redirect anywhere while still recording a click.
```