B2B Distribution CRM

Founder & engineer · 2022

  • Laravel
  • Blade
  • Alpine.js
  • MySQL

Problem

Running a small B2B distribution business on spreadsheets and WhatsApp made it hard to track which customers owed what, which orders were pending, and what stock was actually left. It needed a CRM built around how the business actually operated, not a generic off-the-shelf tool with modules that didn’t match the workflow.

Constraints

  • Hosting budget was shared/cheap hosting, not a VPS or cloud platform — the stack had to run comfortably there.
  • Built and maintained by one person alongside running the business itself, so boring, well-documented tools (Laravel, Blade) won over anything more novel.

Architecture

Architecture diagram — available on request

A server-rendered Laravel and Blade application, with Alpine.js for the interactive bits — order forms, inline edits — that didn’t justify a separate frontend framework or build step. MySQL for storage, deployed to shared hosting.

Stack

Laravel, Blade, Alpine.js, MySQL.

My role

Built and have run this as the business’s own CRM — requirements, implementation, and ongoing maintenance, wearing both the founder and engineer hats.

Outcome

Still the system of record for the business’s orders and customers.