Product

PepperCRM

A modular CRM for leads, tasks and communications, built as a team

A CRM built by a team of four to manage leads, tasks and communications, where I wrote almost all of the backend.

What it is about

PepperCRM is a modular CRM to manage customers, sales and opportunities. It records leads, moves them through stages on a board, assigns tasks and keeps each customer's comments, files and emails. Four of us built it in the PepperTechDev organization between February and November 2025.

I wrote almost all of the backend, from the Spring Boot API and its security to its integration with MongoDB and Redis and its deployment.

What it does

  • Spring Boot API on Java 17 organized by business modules such as users, leads, tasks, tags, comments, files, messages and email.
  • Security with Spring Security and JWT, a rate-limiting filter and CORS configured per environment.
  • MongoDB Atlas as the database, Redis as the cache and an asynchronous mail service for notifications.
  • React and Vite frontend with a kanban board to move leads between stages, plus task management.
  • Swagger documentation, images on Docker Hub deployed to Render through a deploy hook, and Kubernetes manifests in progress.
  • I wrote 152 of the 154 commits people made to the API.

How it works

How PepperCRM fits together

The web app talks to the API, which stores in MongoDB, caches in Redis and sends email; the bottom row is delivery.

  1. Web

    • React and Vite
    • Kanban board of leads
    • Forms and tasks
  2. API

    • Spring Boot on Java 17
    • Spring Security, JWT and rate limiting
    • Business modules
  3. Data

    • MongoDB Atlas
    • Redis cache
    • Asynchronous mail service

Delivery

  • Images on Docker Hub
  • Deployment on Render
  • Kubernetes manifests

Decisions and their costs

  1. One module per part of the business

    A CRM brings together leads, tasks, comments, files and emails, and each part had to be testable and changeable on its own.

  2. A rate limit on the API

    A misconfigured client could flood the API.

Repositories

Every public repository of the project, with what it holds.

  • 2025

    PepperCRM-APIPepperTechDev

    PepperCRM's API with authentication, leads, tasks, tags, files and email, documented with Swagger.

    Java, Spring Boot, MongoDB, JWT
  • 2025

    PepperCRM-WebPepperTechDev

    PepperCRM's web app with a kanban board, leads and tasks.

    React, Vite, Tailwind CSS
  • 2025

    PepperCRM-DBPepperTechDev

    PepperCRM's MongoDB image.

    MongoDB, Docker
  • 2025

    PepperCRM-CachePepperTechDev

    PepperCRM's Redis image.

    Redis, Docker
  • 2025

    PepperCRM-MailPepperTechDev

    PepperCRM's mail service for local environments.

    Docker
GitHub organization: PepperTechDev

Stack

Pick a technology to see the projects that use it.