Thank you for your interest in Avyro. This project is in public beta — we welcome bug reports, documentation improvements, and focused pull requests.
- Node.js ≥ 20
- pnpm 9.15 (
corepack enable && corepack prepare pnpm@9.15.0 --activate) - Docker (recommended) for PostgreSQL and Redis
git clone git@github.com:MiriyamCore/Avyro.git
cd Avyro
# Or clone your fork and add upstream to MiriyamCore/Avyro
pnpm install
cp .env.example .env
docker compose up -d
pnpm db:generate
pnpm db:migrate
pnpm db:seed
pnpm devAfter pulling updates, apply new migrations before starting the API:
pnpm db:migrate:deployWeb: http://localhost:3000 · API: http://localhost:3001
Default seed login (local dev only): owner@demo.local / ChangeMeNow1!
- Discuss large changes first — open an issue for new features, architectural shifts, or compliance rule changes.
- Run checks:
pnpm typecheck pnpm test pnpm build - Keep PRs focused — one concern per pull request when possible.
- Match existing style — TypeScript, NestJS patterns in the API, Next.js App Router in the web app, Prisma for data access.
These are non-negotiable for tenant and ledger code:
- Scope all tenant data by
organization_id. - Post journals only through
AccountingPostingService. - Never use floating-point for money — use
Decimal/db.Decimal. - Never hard-code tax rates or organisation-specific IDs — use effective-dated
tax_codesconfiguration.
See avyro-SPEC.md and docs/ARCHITECTURE.md for deeper context.
- Follow patterns in the surrounding file — naming, imports, error handling.
- Prefer minimal, focused diffs over broad refactors.
- Add comments only for non-obvious business logic.
- Do not commit secrets, real TIN/BIN numbers, or production customer data.
- Bugs: include steps to reproduce, expected vs actual behaviour, and environment (OS, Node version).
- Security vulnerabilities: see SECURITY.md — do not open public issues for sensitive findings.
By contributing, you agree that your contributions will be licensed under the MIT License.