custom-crm.md

In developmentCustom CRM & planning tool

Custom CRM & planning tool

Year
2026
Role
Creator & Lead Developer
Client
Confidential client
Categories
Stack
  • PHP 8.4
  • Laravel 13
  • Filament 5
  • MySQL
  • Livewire / Alpine.js
  • Tailwind CSS
  • Pest

Why it exists

The client has specialized in professional makeup, hairstyling and special effects for more than twenty years: from bridal makeup to photo shoots and productions. The work happens in the central Netherlands, where a small core team directs a group of permanent and freelance makeup artists and stylists, often at several locations at once.

That coordination ran on separate calendars, email and spreadsheets: error-prone and not scalable once the number of bookings grows. The request was for an internal platform of their own, as a single source of truth for client data, appointments and planning. Built up in phases on purpose instead of in one big bang: from an appointments module to a full CRM.

The solution

An internal back office on Laravel with a Filament admin panel, set up around the team's daily practice:

  • Client files with core and contact details of the company's clients, as the central source for the rest of the system.
  • Appointment management: scheduling, rescheduling and canceling appointments, with overview screens for the team and an audit trail of every change.
  • Public booking flow where clients book an appointment themselves: services that can be booked directly, next to slots that go past the planner first, taking closed locations and public holidays into account.
  • Availability per team member: the permanent and freelance makeup artists and stylists pass on their availability and location preferences; a booking on request sends the planner a notification right away, so he can match the right person.
  • Role-based access and an admin panel in the company's own branding.

Under the hood

PHP 8.4, Laravel 13 and Filament 5 on MySQL/MariaDB, with Livewire, Alpine.js and Tailwind on the front end and SCSS where custom work is needed. Strict TDD with Pest, SOLID and PSR-12, docblocks on every class and method, and a CI pipeline with tests, static analysis and Pint.

Calendar sync runs through the Google API; backups run via spatie/laravel-backup and can go off-site to S3, SFTP or Google Drive, with logging and error tracking underneath. The architecture is layered with clear module boundaries, deliberately close to the Filament defaults: an internal tool where stability comes before visual frills.

Status

In active development. The foundation is in place: admin panel, authentication, role-based access, CI and backups. The appointments module is under construction; client management and GDPR tooling (export, anonymization, retention periods) are next in line.