Initial CRM
A self-hosted, API-first CRM built from scratch to run the commercial workflow of Initial Infrastructures. Single-tenant by design, single-binary to deploy, and structured to receive its data from upstream systems (Crawlswarm and others) instead of being a place where humans paste it in.
What it manages: companies, contacts, leads, deals, customizable pipelines with stages, activity logs, tags, and a dashboard layer with Recharts. Drag-and-drop pipeline boards via dnd-kit so the commercial team moves opportunities by gesture, not by form.
API-first: dedicated ingest endpoints for batch imports (companies,
contacts, scraping results) plus a scoped integration API
(crm.companies:read, crm.contacts:write, etc.) for machine-to-machine
flows. Crawlswarm pushes its enriched leads directly into the CRM via an
API key, no manual export step.
Stack: React 18 + TypeScript + Vite + Tailwind on the frontend (Recharts for charts, dnd-kit for drag-and-drop, Radix primitives for popovers and menus). Express 4 + TypeScript on the backend with better-sqlite3 as the persistence layer - SQLite chosen on purpose for the simplicity of a single file to back up and migrate.
Deployment: runs as a single Node process behind Caddy (HTTPS auto) or Nginx, supervised by systemd. The backend also serves the built frontend in production so one VPS, one service, one reverse proxy is all you need.
Status: in production, operating Initial Infrastructures' commercial pipeline. Auth-gated behind the company domain.



