← All work

LinkDev product · 2026

CRM Next.

A kanban sales pipeline, with automations the team designs without writing code.

Visual workflowsBullMQ queuesHMAC webhooks
Sales pipeline kanban with the value of each stage and a checklist on every deal
My activities on a phone, with overdue ones at the top

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

  1. 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

  2. 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.

  3. 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

Visual editor for a workflow that captures leads from a webhook, with condition, board, stage and record nodes
Dashboard with deals by stage and each stage’s share of the pipeline
A deal’s activity checklist, with its history by stage
Next case

Task Gaming