Content As Records, Not As Code.
A Laravel CMS and REST API that owns every translatable section of the Rawasy site, its media, its publish state and its SEO text.
- Role
- Backend Engineer
- Timeline
- Production System
- Industry
- Corporate Platform
- Status
- Live
What this system is
The platform models the public site as data. Services, sectors, solutions and articles are records with translations, media and a draft/published lifecycle; the frontend reads only what has been published, through REST endpoints that validate every request. Administration sits behind authentication and role-based permissions, and the whole thing runs on a dedicated PHP-FPM pool behind Nginx and Cloudflare, released deliberately rather than edited on the server.
What we needed to solve
A multilingual corporate site whose content lives in code needs a developer and a deploy for every wording change, every new service, every article — and offers no place to collect the requests the site generates.
How we shipped it
A Laravel platform where each piece of site content is a translatable record with its own media, publish state and SEO fields, administered behind authentication and permissions, and served to the frontend through versioned public REST endpoints — so the site changes as data, not as code.
How the system is wired
Four layers, one contract. MySQL holds the translatable content and the requests the site collects; Eloquent models and policies express what each role may do with them; the REST layer publishes the approved subset to the frontend; and Nginx with a dedicated PHP-FPM pool, behind Cloudflare, serves it.
MySQL schema for translatable content, media references, publish state, and the contact and business requests the site generates.
Eloquent models, relationships and authorisation rules covering services, sectors, solutions, articles and media.
Public REST endpoints serving published content to the frontend, with Sanctum-authenticated administration and validation on every request.
Nginx with a dedicated PHP-FPM pool on a Hostinger VPS, fronted by Cloudflare, with controlled deployment.
Engineering choices
In the wild
Hard problems, handled
A multilingual corporate site whose content lives in code needs a developer and a deploy for every wording change, every new service, every article — and offers no place to collect the requests the site generates.
A Laravel platform where each piece of site content is a translatable record with its own media, publish state and SEO fields, administered behind authentication and permissions, and served to the frontend through versioned public REST endpoints — so the site changes as data, not as code.
Maintaining performance under realistic production load.
Indexed queries, paginated lists, image optimisation, and lean client bundles kept the platform responsive end-to-end.
Built to stay fast
Design and interaction
Ready to ship and operate
What it does
Why we chose what we chose
Built on Laravel 12, PHP 8.3, MySQL.
Mature ecosystem, strong typing where applicable, and predictable performance characteristics for the workload.
REST-first integration boundary.
Keeps clients (web, mobile, partner) decoupled and trivially swappable without coupling to a single transport.
Results
The site this platform serves
Every service, sector, solution and article administered here is rendered by the Rawasy multilingual frontend, which ships as its own case study.
The live link opens the public site. The administrative platform at systemrawasy.murshied.com requires a sign-in and is not publicly reachable.
Other case studies
Building something similar?
Let's scope your platform — dashboard, mobile apps, APIs, the full stack.
