← All posts
Engineering1 Sep · 7 min read

The stack behind Inbxer

Boring technology, on purpose: Laravel, React, Reverb and MySQL. Here's what runs under the hood and why I picked each piece.

AbdelmjidAbdelmjidBuilding InbxerCopy link

Nothing about Inbxer's stack is exotic, and that's deliberate. A support tool that stores every customer conversation should be built on things a security reviewer already trusts, not a framework I'm still finding the edges of.

Backend

PHP 8.3 on Laravel 13, with Laravel Fortify handling authentication. Laravel's ecosystem is what makes a solo maintainer able to ship queues, scheduling, and a token-authenticated REST API without reinventing any of it.

Realtime

Laravel Reverb runs the WebSocket layer — thread updates, new messages and SLA state changes push to the browser the moment they happen. No polling loop quietly hammering the server every few seconds.

Frontend

React 19 and TypeScript, wired to the backend through Inertia.js so there's no separate API layer to keep in sync for the app itself. Tailwind CSS v4 and shadcn/ui for the interface, Vite for the build.

Data and files

MySQL by default, though anything Laravel supports works. Redis handles cache, queues and sessions. File and attachment storage goes through Spatie Media Library, local disk or any S3-compatible object store.

Testing and deploy

The test suite runs on Pest 4, and a CI pipeline running lint, types and tests on every PR is one of the next release improvements. Deployment is a single Docker Compose command — one app container running nginx, PHP-FPM, the queue worker, the scheduler and Reverb, alongside dedicated MySQL and Redis containers.

Read the source
Everything in this post is in the repository — MIT licensed, self-hostable today.
Open the repo