Digitalgardn
A marketplace that connects freelancers and clients: a Laravel REST API and a React interface, built on my own. Freelancers publish services, clients order and pay from a wallet, the two talk in real time, and an administration area runs the platform.

Built with
- Laravel
- PHP
- MySQL
- Laravel Sanctum
- Laravel Reverb
- Pusher
- React
- Vite
- Redux Toolkit
- TanStack Query
- React Hook Form
- Zod
- Axios
- Tailwind CSS
- shadcn/ui
- WebSocket
Role
Sole developer, backend and frontend, from the first line to the last.
The problem
A marketplace is not one application but several that must agree: a catalogue, an order with a state machine, money held in a wallet, a conversation, and an administration area over all of it. Each one can be built alone; the difficulty is that an order changing state has to move money, open a conversation and reach two browsers at once.
Approach
Status transitions are validated against the caller's role rather than trusted from the client, and each one raises an event that the wallet, the conversation and both browsers listen to — Laravel Reverb over private channels, with the frontend cache invalidated by the same event. The obvious alternative, polling and letting the client decide what a seller may do, was rejected: it puts the rule in the place least able to enforce it.
Outcome
The platform covers the whole path: registration, a public catalogue, an order, payment from the wallet, a conversation, a review, and an administration area with statistics and moderation. It is published under the MIT licence and the code is public.