Case Study

Building an Internal Sales CRM

Designing a centralized platform that streamlined commercial operations through role-based access, analytics, and modern frontend architecture.

salescrm.internal
Sales CRM Dashboard
salescrm.internal
Sales CRM Dashboard
Sales CRM Dashboard

40+

Commercial Users

Used Daily

RBAC

Secure Access

Role-Based

REST

API Integration

Connected

React Query

Server State

Optimized

01

Why This Project Existed

Understanding the business problem before writing a single line of code.

Commercial teams relied on multiple disconnected workflows to manage leads, campaigns, customer information, and performance reporting.

This fragmented process made it difficult to gain meaningful business insights while also introducing unnecessary manual work across different teams.

The goal was to build a centralized CRM that streamlined these workflows into a single platform, giving commercial teams a faster, more secure, and more intuitive way to manage their daily operations.

Role

Frontend Engineer

Timeline

Production Project

Users

40+ Commercial Team Members

Stack

Next.js • React • TypeScript

02

From Fragmented Workflows to a Unified Platform

The biggest challenge wasn't building features—it was simplifying how different teams worked together.

Before

  • • Information scattered across multiple tools.
  • • Manual reporting and duplicated work.
  • • Inconsistent access to business data.
  • • Slow collaboration between teams.

After

  • • One centralized CRM platform.
  • • Role-based access control.
  • • Real-time reporting dashboards.
  • • Faster day-to-day operations.

03

System Architecture

A frontend architecture designed for scalability, performance, and maintainability.

Next.js Frontend

Responsive interfaces built with reusable components and TypeScript.

React Query

Caching, synchronization and server state management.

Role-Based Access Control

Secure authorization ensured every user accessed only the features relevant to their role.

REST API

Communication between frontend and backend through secure REST endpoints.

Backend Services

Business logic, authentication and persistent data storage.

04

Key Engineering Decisions

Every technical decision was made to improve performance, maintainability, and developer experience.

Server State

React Query

Instead of manually managing asynchronous requests across multiple components, React Query centralized data fetching, caching, loading states, retries, and background synchronization.

React Query

Security

Role-Based Access

Different users interacted with different parts of the platform. Implementing role-based access ensured users only saw the features relevant to their responsibilities.

Role-Based Access

Performance

Dynamic Imports

Larger dashboard modules were loaded only when needed, reducing the initial JavaScript bundle and improving the application's perceived performance.

Dynamic Imports

Scalability

Reusable Components

Shared UI primitives made it easier to build new dashboard features while maintaining a consistent design language across the application.

Reusable Components

05

Core Product Features

The CRM focused on helping commercial teams work faster with a clean and intuitive interface.

salescrm.internal
Dashboard

Business Analytics Dashboard

A centralized dashboard that surfaced the most important commercial metrics at a glance.

  • Real-time KPI overview
  • Campaign performance tracking
  • Quick access to key business insights
salescrm.internal
Lead Management

Lead Management

Commercial teams could efficiently organize and manage customer pipelines.

  • Lead assignment
  • Status tracking
  • Search and filtering
salescrm.internal
Role Management
Role Management

Role Management

Access to different modules changed automatically based on user permissions.

  • Secure authorization
  • Permission-based navigation
  • Scalable access control

06

Project Outcomes

The result was a production-ready CRM that simplified commercial workflows while remaining scalable and maintainable.

40+

Daily Active Users

Commercial teams relied on the platform for their day-to-day operations.

100%

Responsive Experience

Optimized across desktop, tablet, and mobile devices.

RBAC

Secure Access

Role-based permissions ensured users only accessed relevant features.

REST

API Integration

Connected seamlessly with backend services for real-time data.

07

Reflection

Looking back on the project and the lessons it taught me.

Building this CRM fundamentally changed how I think about frontend engineering.

Before this project, I focused primarily on implementing user interfaces. Working on a production CRM taught me that great frontend engineering is equally about architecture, performance, maintainability, accessibility, and creating systems that scale.

I collaborated closely with backend engineers and product stakeholders to translate business requirements into intuitive user experiences while keeping the codebase modular and easy to extend.

The biggest lesson I took away is that successful products are built by balancing user needs, business goals, and engineering best practices—not by writing the most code.

Thanks for reading

Interested in how I build products?

Explore more projects in my portfolio or let's connect and build something meaningful together.