The ERP that knows things have a history.
Generic ERPs do not fit the needs of secondhand businesses, leading to operational drag and limiting their ability to scale their impact.
Kivvi provides a native ERP system for secondhand businesses, handling intake, condition grading, repair workflows, and impact tracking, with a focus on automation and compliance with Swiss law and regulations.
Kivvi exists to solve the problem of generic ERPs not fitting the needs of secondhand businesses, providing a system that understands the unique workflows of these businesses.
To become the operating system for the circular economy, enabling businesses to scale their impact.
The stack has not been written down yet.
Investigate this project with Loki →Fixed a lost-update race that could leave a paying Cloud subscriber on the free plan (Stripe webhooks now merge company settings via Postgres `jsonb ||` instead of read-modify-write), documented the three previously-undocumented Stripe env vars, and repaired the pre-commit hook that ENOENT'd on every apps/web change — PR #109 merged, CI green, Deploy green for cdb78d2.
Fixed a lost-update race that could leave a paying Cloud subscriber on the free plan (Stripe webhooks now merge company settings via Postgres `jsonb ||` instead of read-modify-write), documented the three previously-undocumented Stripe env vars, and repaired the pre-commit hook that ENOENT'd on every apps/web change.
Stood up the Kivvi↔Loki agent bus (agent-msg CLI + inbox auto-check hook), proved the round-trip over BOTH the file-inbox and the pending_commands queue channel, locked the collaboration protocol, and retired a case-drift session-file duplicate.
(prev) Fixed root `npx tsc --noEmit` probe (9007da7). This turn: ran full diagnostic sweep, confirmed all authoritative checks green, no actionable autopilot work — handing back.
Stripped 14 throwaway audit/prod/refresh screenshot JPGs (~1.2MB) that the unpushed selfhost commit (bdbcb71) accidentally bundled into the repo root alongside its real 4-line DB_SSL change. Amended that commit to its intended content only (now 648edf0), kept the jpgs on disk, and hardened .gitignore to mirror the existing /*.png screenshot rule with /*.jpg + /*.jpeg (commit 7891746).