Software that does the work — not a website that describes it.
When the work has outgrown a spreadsheet and no product on the market fits the way you actually operate, you build. We design and build web applications — customer portals, operations dashboards, booking and approval systems, internal tools — in Arabic and English, connected to the systems you already run, with the source code yours.
Same screen. Different people.
Sees everything, and can change the rules themselves.
Runs the day. Can act; cannot rewrite the rules.
Their own account — and nothing else’s.
A website publishes. A web application does work. What changes between them is not the look — it is what the thing holds.
Which is why the two are quoted and maintained differently — and why an application built like a website tends to fail in its second year rather than its first.
An application is rarely alone. What decides whether an integration lasts is which system owns each piece of data — and what it does when the other side is slow or down.
Owns the process it was built for — and nothing it is not the source of truth for.
We also plan for the integration that is not available yet, so a missing connection does not block the whole build.
A place your customers, dealers or suppliers log in to see their own orders, documents, balances and requests — so the questions your team answers by phone answer themselves. Roles and permissions designed so nobody sees another account’s data.
One screen that pulls from the systems where the numbers actually live, with the definitions agreed once so finance and operations stop arguing about whose figure is right. Exports and scheduled reports in Arabic and English.
Requests, quotations, approvals and hand-offs with the rules enforced by the system rather than by memory — who can approve what, at which value, in which order — and a full audit trail of who did what and when.
Appointments, resources, capacity and staff calendars, with reminders over the channels people here actually read. Built around the awkward cases — double-booking, reschedules, no-shows and cancellation rules — because those are the ones that cost money.
Connections to your ERP or accounting system, payment gateways, carriers, SMS and WhatsApp, and any government or partner interface you depend on — built to survive the other side being slow or down, and documented so the next developer is not guessing.
Deployment on infrastructure that suits your data-residency position, backups that have been restored at least once in a drill, monitoring that pages a human, and an agreed response time — because an application without an owner degrades quietly.
We sit with the people who do the work today and map the process as it actually runs, including the workarounds. Then we agree what the first release must do to be worth using — and what is deliberately out.
A clickable version of the main screens in Arabic and English, put in front of real users before anything is built. Changing a screen at this stage costs an afternoon; changing it after launch costs a release.
We ship one working slice at a time to an environment you can open, so you are reacting to software rather than to status reports. Automated tests on the rules that matter, and a review at the end of each slice.
Data migrated and reconciled, users trained in their own language, permissions checked role by role, and a fallback plan for the first week. We usually run the old process alongside for a short overlap rather than switching everything overnight.
Monitoring, backups, security updates and an agreed support window — plus a standing rhythm for the changes that will come, because every application that gets used generates requests. What we do not do is disappear at handover.
An application is the one thing a multi-branch business can genuinely run from a single place — provided permissions are drawn per branch rather than per person, which is the part that gets skipped and then rebuilt.
A website mostly shows the same content to everyone and changes when someone edits it. A web application gives each user their own state: they log in, the data they see belongs to them, their actions change records, and rules decide what they are allowed to do. That difference drives everything else — an application needs a data model, roles and permissions, an audit trail, backups you have actually tested, and a plan for what happens when two people edit the same record. It is why the two are quoted and maintained differently, and why an application built like a website tends to fail in its second year rather than its first.
Yes. The code, the database schema and the deployment configuration are yours, in your own repository from the first commit rather than handed over as a zip file at the end. That matters more than it sounds: it means you can have the work audited by someone else, take it to another team, or hire in-house without renegotiating anything. We document the architecture, the environment variables and the deployment steps as part of delivery. Third-party licences — a paid library, a mapping service, a font — stay under their own terms, and we list them explicitly so there are no surprises.
Start from where it is used and what it needs from the device. Work done at a desk or on a laptop, by staff, partners or corporate customers, belongs on the web: one codebase, instant updates, no app-store review between you and a fix. Go native when you need the camera, background location, offline use in the field, or push notifications people genuinely act on — a delivery driver, a field technician, a consumer app you want on the home screen. A very common answer is both: the full system on the web, and a focused mobile app for the one job that happens away from a desk. We would rather scope that honestly than sell two builds.
Usually, and the first question is what the other side offers: a documented API, a database we can read, a file drop, or nothing but a screen. Each of those has a different cost and a different reliability, so we check before promising. Two things then decide whether the integration lasts. First, which system owns each piece of data — if two systems can both edit a customer record, they will eventually disagree, so one has to be the source of truth. Second, what happens when the other side is slow or down: queues and retries rather than a form that fails in the user’s face. We also plan for the integration that is not available yet, so a missing connection does not block the whole build.
Every application needs an owner, and you choose whether that is us or your team. If it is us, we agree a support arrangement in writing: response times by severity, a monitoring setup that alerts a person rather than a dashboard nobody watches, security and dependency updates, backups verified by an actual restore, and a monthly window for small changes. If it is your team, we hand over documentation, a walkthrough of the architecture and the deployment, and stay available for a defined transition period. What we advise against is the third option people drift into by default — nobody owns it, updates stop, and the first real problem arrives as an outage.
Tell us the process that currently runs across four spreadsheets and a WhatsApp group. We will come back with what the first release would have to do to be worth using, what it would connect to, and whether you should build it at all.
Tell us about your brand — we reply within one business day.