LinkDev product · 2026
CRM Next.
A kanban sales pipeline, with automations the team designs without writing code.


The problem
Manual work · Disconnected systems
A small sales team lives on follow-ups: call back, send the proposal, move the card. When that depends on someone remembering, the deal goes cold. And a CRM that cannot exchange data with the company’s other systems becomes one more place to type the same thing twice.
What I built
I built the NestJS backend and the Next front end. Boards have stages with checklists, history and a sequential lock, so nobody skips a stage. There are leads, contacts, companies, a calendar and activities, a visual workflow editor, inbound and outbound webhooks, Stripe billing, gamification with XP, badges and goals, and an audit log. Access goes through JWT, tenant and permission guards, with roles per board.
Technical decisions
01Workflows run on a queue
The engine has 13 node strategies, one for each block type in the editor, and runs are processed on a BullMQ queue. A slow or failing workflow does not block the request that triggered it, and a new node type is just one more strategy file.
Where it lives in the code: backend/src/workflows/engine/*.strategy.ts
02Webhooks both ways
Outbound webhooks are signed with HMAC-SHA256, so the receiver can check they came from the CRM and were not tampered with. The inbound webhook triggers a workflow: an outside system sends the lead and the automation takes it from there.
03Stripe billing with a verified webhook
Checkout and the customer portal run on Stripe, and the webhook that notifies the CRM has its signature verified before anything changes. Card data stays on Stripe’s side.
Numbers
26
Prisma models
19
NestJS modules
18
pages
Stack
- NestJS 11
- Prisma
- BullMQ
- Stripe
- Next.js 16
- React 19
- React Flow
- dnd-kit
- React Hook Form
- Zod
- Recharts
- PostgreSQL
- Redis
Screens



Task Gaming