nuvo.ma
Nuvo
An online store built for cash on delivery across Morocco.
- Role
- Solo: product, design, code and infrastructure
- Year
- 2026
- Website
- nuvo.ma
The problem
In Morocco, most customers pay on delivery and ask their questions on WhatsApp. Nuvo is a storefront designed around that reality: ordering takes seconds, nothing is paid online, and the owner runs the catalogue, orders and stock from a dedicated back office.
What I built
- 01 A fast storefront in French, English and Arabic (right to left), with variants, brands, promotions and coupons.
- 02 Express checkout guarded by per-IP and per-phone rate limits and Cloudflare Turnstile against fake orders.
- 03 Product import with Claude: paste a product page, get store-ready content in three languages with the right images, validated against a JSON schema.
- 04 A back office for orders and their status history, stock movements, home page sections, banners and pages.
- 05 A responsive image pipeline and Slack notifications for every new order.
Details I obsessed over
- A visitor’s language is kept even when they follow a relative link from a banner.
- Claude’s answer is constrained by a schema, and every failure (refusal, rate limit, invalid key) gets a human error message.
- The administration moves to its own domain with a single environment variable.
Stack
- Laravel 13
- PHP 8.4
- Claude API
- MySQL
- Redis
- Turnstile
- Alpine.js
- Tailwind CSS
- Blade
- Docker