Grada helps wholesale teams move from scattered spreadsheets and manual follow-ups to a clean, reliable operations flow.
From catalog to PO to final documents, Grada keeps your team faster, more accurate, and easier to scale.
- Ship POs and documents faster with less back-and-forth
- Reduce manual data entry and avoid costly formatting mistakes
- Standardize workflows across catalog, purchasing, and dispatch
- Keep operations audit-friendly with structured records and history
- Smart Catalog: organize products, attributes, and reusable data
- PO Builder: generate buyer-ready PO files in the exact required format
- Received PO Processing: upload marketplace POs, review parsed lines, confirm quickly
- Dispatch Documents: generate barcode labels, invoices, and packing lists
- Ops Settings and Admin: keep rules, defaults, and visibility in one place
Product walkthrough: docs/current-product-features.md
- Node.js 20+
- pnpm 9+
- Python 3.11+
pnpm installcp apps/web/.env.example apps/web/.env
cp apps/api/.env.example apps/api/.env
cp apps/jobs/.env.example apps/jobs/.envapps/web/.env
NEXT_PUBLIC_API_URL=http://127.0.0.1:8000apps/api/.env
OPENAI_API_KEY=your_key_here
FRONTEND_ORIGINS=http://localhost:3000,http://127.0.0.1:3000Use either DB mode:
- Fast local mode:
DATABASE_URL=sqlite:///./kira.db - Docker parity mode:
DATABASE_URL=postgresql+psycopg://postgres:postgres@localhost:5432/kira
cd apps/api
python -m venv .venv
source .venv/bin/activate
pip install -e .[dev]
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000pnpm --filter @kira/web dev --hostname 0.0.0.0 --port 3000docker compose up --buildThis starts:
- Postgres on
5432 - Redis on
6379 - API on
8000 - Web on
3000
Repo root:
pnpm dev
pnpm build
pnpm lint
pnpm test
pnpm format
pnpm format:checkAPI checks:
cd apps/api
.venv/bin/ruff check .
.venv/bin/pytestWeb checks:
cd apps/web
pnpm lint
pnpm testapps/web: Next.js frontendapps/api: FastAPI backendapps/jobs: worker scaffold for future separationpackages/shared: shared TypeScript packagedocs/adr: architecture decisions
- API route groups are under
/api/v1 - API starts an in-process worker for parsing and PDF generation jobs
- Local files are stored under
apps/api/static/unless object storage is configured - API details: apps/api/README.md