Case study
How we built Tajrova
How OBELIX Agency built Tajrova for small sellers in Egypt: an orderable online catalog with WhatsApp orders, per-store data isolation, safe image handling and Excel product import.

Tajrova is a platform we built at OBELIX Agency for small and home-based sellers in Egypt. Every seller gets an online store with their products and prices, customers order from it, and the order reaches the seller on WhatsApp. It runs at tajrova.com.
Here is how we saw the problem, how we built the solution, and the decisions that made the difference.
The problem: the catalog is a pile of WhatsApp photos
Small sellers in Egypt sell on WhatsApp and Instagram. The catalog is a set of photos sent to every customer, prices live in messages, and orders get lost in chats. When they look at a full ecommerce store, they find a long setup, online payments they are not ready for, and a monthly cost that is large for their volume.
What was missing sat in between: a tidy catalog behind one link, where the customer picks and orders, and the seller receives the order on the WhatsApp they already use.
The solution: an orderable catalog and a seller dashboard
- A public store for every seller: categories, search, a page per product with photo, price and quantity, a cart and a checkout page.
- The order is saved first, then WhatsApp opens: the server calculates prices and stores the order with a number, then the customer sends it to the seller on WhatsApp. No order gets lost, and prices can't be changed on the customer's side.
- A mobile dashboard for the seller: orders by status with search, products and categories, delivery and pickup zones, store look and subscription.
- A control panel for the OBELIX team: store setup, product import, payment review, an audit log and pilot metrics.
Technical decisions and why we made them
- Laravel with Blade: store pages render on the server, so they load fast on mid-range phones and average connections, with no heavy JavaScript.
- Per-store data isolation: every query is scoped to its store, and dedicated tests check that one seller can't read or change anything that belongs to another.
- Safe image handling: each upload has its real type detected, is re-encoded to WebP on the server, and has location and camera data (EXIF) stripped before it is shown.
- Excel product import: a seller or our team can upload a CSV or XLSX sheet, preview it with per-row errors before saving, and the whole import rolls back if anything fails.
- Manual payment with proof: instead of a payment gateway on day one, the seller uploads a transfer receipt and our team confirms it. That made launch faster and fits the market.
- Server security: a Content Security Policy, separate cookies for sellers and the control panel, locked sensitive paths and encrypted database backups.
Speed and SEO
- The home page inlines its CSS, so the first render doesn't wait for extra files.
- Tour screenshots come in sizes from 400 to 780 pixels, and phones get the smallest one.
- Self-hosted fonts, and an Arabic and English blog with correct links between the two languages.
Quality before release
Every change goes through more than 200 automated tests, PHPStan, and browser tests on mobile and desktop that cover accessibility and keyboard navigation. Releases ship as a ready-made package from GitHub and roll back automatically if the health check fails.
What we learned
- Don't force a new habit on the market. WhatsApp is where sellers and customers are comfortable, so we made it the last step instead of removing it.
- Start with the simplest payment that works. Manual proof let us launch and learn before integrating a gateway.
- Security is not a phase. Data isolation, image safety and backups were built with the first line of code.
Want to build a product like this?
Tajrova is one of our own products, alongside Dorak and Wasilo. If you have an idea for a store, a platform for merchants or an ordering system for your company, talk to us.
See Tajrova for yourself: tajrova.com

