Over the past few weeks, I have been working on a project that I wanted to share. It is a CRM/ERP built with Laravel on the backend and Vue on the frontend. The goal was to create something lightweight, practical, and easy to use for managing customers, deals, and internal processes.
The idea started simple. I wanted to track companies, contacts, deals, products, tasks, and notes all in one place while keeping the interface clean and intuitive. Laravel makes handling relationships, controllers, and database operations simple. Vue provides a dynamic, reactive interface without constant page reloads.
Key Features
- Companies and Contacts – Manage all your clients and associates and link them to the right company.
- Deals and Products – Track ongoing deals and the products connected to them.
- Tasks and Notes – Organise work, follow up on actions, and keep notes for reference.
- User Management and Roles – Assign responsibilities, control access, and track activity.
- ERP Elements – Handle basic workflows for internal operations alongside customer data.
What I like most about this project is how clean it is. Laravel handles the backend logic and relationships. Vue components make the frontend interactive and responsive. Inertia.js ties everything together so the app feels like a single-page application without unnecessary complexity.
Getting Started
If you want to try it yourself, you can find the code here: MattYeend/CRM. Clone the repository, run composer install and npm install, then set up your .env file. After migrating and seeding the database, you can explore the app and adjust it to your own needs.
Final Thoughts
This CRM/ERP is not aimed at large enterprises. It is a solid foundation for managing customers, deals, and internal workflows. It also serves as a great learning project for hands-on experience with Laravel, Vue, and Inertia.js.
I plan to continue improving it over time by adding small features that enhance day-to-day use without adding unnecessary complexity.
If you give it a try, I would love to hear what you think and any suggestions you have for improving it.
