Measured outcomes

Case studies

Every project starts with a numeric measure and is judged by it. What follows are measured results, not estimates.

Generative AI and secure API architecture

Jooya — Persian AI search engine

Challenge

Existing Persian chatbots answer without citing sources, so a user cannot judge whether the answer is right. The second problem was security: an API key cannot ship inside an Android package, because anyone can open the APK and extract it.

Solution

A two-part architecture: a static Next.js client packaged as an Android APK holding no key at all, plus a proxy server that keeps the key, performs the live web search and streams the answer back. Every answer ships with its source list.

Result

The API key never reaches a user's device, and answers always carry their sources — the distinction that separates Jooya from a plain chatbot.

۰
API keys on the user's device
Jooya — Persian AI search engine

AI-generated educational content

Dikteh-yar — an AI writing assistant for year three

Challenge

Preparing dictation exercises, homework, answer keys and weakness reports for a class costs a teacher hours of repetitive work. Generating that automatically for children carries two hard constraints: the output must be strictly structured, and it must be safe for a child to read.

Solution

A provider-agnostic AI layer producing JSON validated with Zod, plus child-safety rules. The teacher reviews and approves generated content before it is sent. The app runs as an offline-first PWA with an IndexedDB queue and produces print-ready right-to-left Persian worksheets.

Result

The teacher only picks the lesson; seven exercise types, homework, answer keys and a weekly report are produced. The app also works without an API key at all, falling back to safe built-in templates, and keeps working offline.

۷
exercise types generated automatically
Dikteh-yar — an AI writing assistant for year three

App development and Persian document output

VakilYar — an Android legal calculator

Challenge

Legal calculations — dowry, late-payment damages, inheritance, blood money — involve sensitive user data. Sending it to a server creates a privacy risk and makes the app depend on connectivity. The second challenge was producing right-to-left Persian PDFs on Android without a heavy library.

Solution

Every calculation runs on the device and the app requests no internet permission at all. PDFs are produced with native Android tooling and right-to-left typesetting, saved to the Downloads folder. History lives in a local JSON file, with no extra database.

Result

The release build came down to 1.42 MB with R8, from 16 MB in development, and asks the user for no permissions at all: no internet, no file access, no location.

۱٫۴۲
MB final app size
VakilYar — an Android legal calculator

Process automation and web app

Nobatdeh — an appointment booking system

Challenge

Phone booking for a one-person business means constant interruption to answer calls, and no written record. Publishing a native app to the stores adds cost and complexity a business that size does not need.

Solution

A PWA that installs on the phone without any app store. The customer's last service is preselected and the first free day is chosen automatically. Persian calendar, SMS login, a tracking code, calendar export and a waiting list for freed slots.

Result

A booking takes two taps. Cancelling frees the slot for others immediately and notifies the waiting list — with no phone call involved.

۲
taps to book
Nobatdeh — an appointment booking system

Mobile app and educational content generation

Classyar — a teacher's daily assistant

Challenge

A year-four teacher has to build exercises for every lesson, type or print them, and send them to the class group. That cycle repeats daily and consumes much of the time outside class. It also had to work in a school with weak connectivity.

Solution

An Android app in Flutter and Material 3, fully Persian and right-to-left. Building an exercise, saving it, generating the PDF and picking files all work offline. The result is shared straight to the Bale messenger through Android's share sheet.

Result

From dashboard to finished exercise takes six taps: lesson, chapter, level, count, generate. One more button sends it to the class.

۶
taps to a finished exercise
Classyar — a teacher's daily assistant

Generative AI and child user experience

Ganjyab Iran — an AI educational game

Challenge

History and geography content for an eight to eleven year old has to be both accurate and written in language they can follow. Producing that by hand for thirty-one provinces is slow, and generating it automatically needs a guardrail so nothing unsuitable reaches a child.

Solution

A Persian, mobile-first PWA in which the child travels the provinces of Iran with an AI guide named Dana. Each stop has four parts: the province's history and geography in child-friendly language, a safe physical movement, a simple puzzle, and claiming the province's treasure.

Result

Learning, physical movement and play are combined in one loop. The app installs as a PWA and keeps working offline after the first load.

۳۱
provinces with their own content
Ganjyab Iran — an AI educational game

In-browser audio signal processing

Rasa — an Aparat audio extension

Challenge

Many Aparat videos are simply too quiet, and the browser's volume slider cannot go past one hundred percent. Naively amplifying creates a second problem: peaks clip and the audio turns harsh.

Solution

A Manifest V3 extension for Chrome and Edge building a Web Audio processing chain: gain up to three times, a gentle lift around 2.5 kHz where speech intelligibility sits, and a dynamics compressor at the end that tames peaks and lifts quiet passages.

Result

Volume goes up to three times without clipping. The extension has no backend, no account, no analytics and no dependencies, and remembers the user's settings between visits.

۳×
volume boost without clipping
Rasa — an Aparat audio extension

What would your project measure?

A short conversation identifies which of your processes returns the most, and the number it should be judged by.

Request a consultation