0%
Aymen
Back to Works
MobileShipped2026

Wesh Maklti

Bilingual meal-planning app — personalised plans, calorie targets and subscription tiers, with a mobile client and an admin dashboard.

My Role
Full Stack Developer
Timeline
Feb 2024 — Aug 2026
Status
Shipped
Wesh Maklti
Overview

Wesh Maklti is a meal-planning service for an Arabic- and French-speaking audience: each subscriber gets meal plans and calorie targets fitted to their profile, with access split across two subscription tiers, Balanced and Premium. The product spans a web app, a mobile app, and a back-office dashboard for running the service.

Everything sits on a single Express + TypeORM backend that serves every surface — the React Native (Expo) mobile client as well as the web frontend — while the admin dashboard is built on shadcn components. The service has run in production since early 2024, and has been through a full migration to a new DigitalOcean server with a CI/CD pipeline.

The Challenge

The problem to solve

The real difficulty was duration rather than any single feature: keeping one bilingual product coherent in Arabic and French, across web and mobile, while operating it continuously in production from early 2024 onward. No infrastructure work started from a blank page — the full server migration and the introduction of CI/CD both had to happen against a live service, not a staging sandbox.

The Solution

How it was built

A single Express + TypeORM backend exposes one API to every client: the React Native mobile app built on Expo, the web frontend, and a shadcn-based admin dashboard used to operate the service. Subscription access is cut into two tiers, Balanced and Premium, which decide what each account can use.

On the operations side, the deployment was moved wholesale to a new DigitalOcean box and put behind a CI/CD pipeline, and the app has stayed in production since early 2024 without a rewrite.

Key Features

What it does

🥗

Personalised meal plans

Each user gets meal plans with calorie targets matched to their profile, on web and mobile alike.

🌐

Fully bilingual AR/FR

The product is bilingual end to end — Arabic and French are both first-class across the app.

💳

Balanced and Premium tiers

Subscription access is split into two tiers that gate what each account can use.

📊

shadcn admin dashboard

A back-office dashboard built on shadcn components for the day-to-day operation of the service.

📱

Expo mobile client

A React Native app built on Expo that talks to the same Express API as the web frontend.

🚀

CI/CD deployments

Deploys run through a CI/CD pipeline to a DigitalOcean server — infrastructure that went through a full box-to-box migration while the service stayed in production.

Technologies Used

Built with

Frontend

TypeScript

TypeORM's decorator-based entities are TypeScript-native, and sharing one typed language between the API and the React Native client keeps request and response contracts honest.

Mobile

React Native

React Native delivers the mobile client from one JavaScript codebase wired to the same Express API, instead of maintaining separate native apps alongside the web frontend.

Expo

Expo takes on the React Native build and release toolchain, so the mobile app could evolve without hand-maintained native projects.

Backend

Express.js

Express keeps the backend a thin Node HTTP layer over TypeORM — a single REST API consumed by both the web frontend and the Expo mobile client.

Data

PostgreSQL

Users, meal plans and subscription tiers are relational data, and Postgres supplies the transactional integrity and constraints that TypeORM's entity model maps onto.