MIDDLEWARE
Twenty minutes on the phoneTwenty minutes عربي

00An interactive demo

Try what we build.

Every screen here runs on invented figures for an olive-oil press and soapworks that trades pantry goods — yours would run on your own book in Al-Ameen.

Invented figures — not yours

01See the business

What the owner sees on his phone tomorrow morning.

One screen that never leaves the page: every lever moved below lands here, and the row it moved carries “Entered by you”.

02Stop losing money

Stock that did not move, ranked by the capital it frees.

The grace period is your own number; move it and the list changes, and the Morning with it.

Held by the owner on the laptop · Lever: Grace period, months
Your companyHeld by the ownerBook: now · Program: last read 18:10

Invented figures — not yours

Dead Stock

No sale in 12 months
57items

in Dead Stock · $9,800 of $81,500

Moved: Morning › Stock

0468

New P-6412 · pasta · 500 g — arrived 02/10/2026 — inside the grace period, not counted

P-6210 · sunflower oil · 5 Lstock 48 · last sale 12/09/2025$1,120
P-5262 · sumac · 1 kgstock 41 · last sale 26/11/2024$226
P-6368 · dish soap · 1 Lstock 22 · last sale 09/01/2025$225
P-5252 · sumac · 50 gstock 50 · last sale 05/03/2025$224
P-5372 · semolina · 10 kgstock 35 · last sale 14/09/2025$222
P-6136 · tinned cheese · 2.5 kgstock 5 · last sale 02/06/2025$222

Ranked by capital freed · another 51 items

03Get paid

Who is past terms, by how much, and since when.

Payment terms are one lever read by the Morning, the counter and the reminder; the statement reaches the customer on WhatsApp in one tap, by a person.

Held by the accountant on the laptop · Lever: Payment terms, days
Your companyHeld by the accountantBook: now · Program: last read 18:10

Invented figures — not yours

Receivables Ageing

Receivables at 30-day terms
23customers

past terms · $12,900 of $46,700

Moved: Morning › Past Terms

Open receivables $46,700 · 128 customers

Past 30-day terms$12,900
Up to 30 days$33,800
31 to 60 days$7,400
61 to 90 days$3,900
Over 90 days$1,600

Cheque register

4 cheques post-dated and due this week · 1 bounced

C-156Due Wednesday 21/10$380
C-301Due Thursday 22/10$260
C-233Due Saturday 24/10$540
C-118Due Sunday 25/10$410
C-340Bounced · 12/10$220

Largest balances past terms

C/S-22 · supplier & customer · Midan also a supplierOldest item 50 days$1,850
C/S-31 · supplier & customer · Abu Rummaneh also a supplierOldest item 39 days$1,150
C-223 · café · JaramanaOldest item 92 days$900
C-256 · supermarket · DummarOldest item 69 days$700
C-412 · catering · QabounOldest item 98 days$700
C-104 · grocery · MezzehOldest item 65 days$640
Held by the accountant on the phone · Lever: Account
Your companyHeld by the accountantBook: now · Program: last read 18:10

Invented figures — not yours

The Statement

Balance · C-104
$640

Oldest item 65 days · last payment 26/09

C-104 · grocery · Mezzeh

Nothing moved on the Morning

Your statement to 19/10/2026 — balance $640 — attached

A person sends it on WhatsApp in one tap

Your companyStatement to 19/10/2026
C-104 · grocery · Mezzeh
S-26-18124 Invoice · 15/08$420
S-26-19237 Invoice · 28/08$380
R-26-03177 ×1.00 Receipt · 26/09−$160
Balance $640 · oldest item 65 days

04Run the floor

The counter, the van and the gate, on one book.

A bill written here appears in the accountant's file, the customer's statement and the owner's Morning, at the same value in every hand.

Held by the counter salesman on the phone · Lever: Quantity
Your companyHeld by the counter salesmanBook: now · Program: last read 18:10

Invented figures — not yours

The Counter

Bill total
$168

After this bill $478 of $800

Landed on: the accountant › the Bridge · the Statement · the Morning

3 bills waiting to be typed

C-104 · grocery · MezzehPast terms · 65 days against 30
C-156 · restaurant · JaramanaPaper on the counter
C-233 · café · Abu RummanehPasted by a person from the WhatsApp group · a draft to confirm
Draft bill on accountC-212 · minimarket · Jaramana
P-1000 · extra-virgin olive oil · 1 L × 24$168
Balance before this bill$310
Credit limit$800

Last price to this customer $7.00 · 24/09

Held by the rep on the phone · Lever: Signal
Your companyHeld by the repBook: now · Program: last read 18:10

Invented figures — not yours

The Outbox

On the van today
23bills

3 sent · in tonight's file · the program's number after import

Signal

Moved: Morning › Floor

Van 3 · 23 bills today

V3-1019-021 · C-408 · catering · Abu RummanehIn tonight's file$84
V3-1019-022 · C-338 · sweet shop · Rukn al-DinIn tonight's file$66
V3-1019-023 · C-121 · sweet shop · JaramanaIn tonight's file$64
Tonight's fileLeaves at 18:30 · the accountant imports it104
Sold on the route todayThe gate counts them sold either way164
Held by the warehouse keeper on the phone · Lever: Cartons back on the van
Your companyHeld by the warehouse keeperBook: now · Program: last read 18:10

Invented figures — not yours

The Gate

Variance at the gate
—

A blind count — the expected figure shows after the save

not counted yet

Landed on: the Morning

Van 3 at the gate · 23 bills on the route today

The morning's load ticket

P-3010 · green olives · 60 cartons from L-2606 (best before 03/2027) — oldest sellable first · L-2601 inside the refusal window: 12 cartons the market will not accept

What the van carried

P-1000 · extra-virgin olive oil · 1 L
P-1004 · extra-virgin olive oil · 500 ml
P-2040 · laurel soap · 200 g
P-3010 · green olives · 1 kgL-2606
P-4020 · apricot jam · 1 kgL-2624
P-5250 · honey · 250 g

05Make

What went into the line, what came out, and the gap in litres.

Today's count at labelling is the supervisor's number; the standard is an assumed one until you set your own.

Held by the line supervisor on the phone · Lever: Bottles at labelling — today's count
Your companyHeld by the line supervisorBook: now · Program: last read 18:10

Invented figures — not yours

The Filling Line

Line gap · today
−48L

gap · 2.0 % against a 0.5 % standard (12 L)

assumed standard until you set your own

Moved: Morning › Line

Batch B-1019-2 · 2,400 L issued · closed 14:00

Filled2,400 L
Capped2,380 L
Labelled2,352 L

Where the gap went

filling → capping20 L
capping → labelling28 L
28 L lost between capping and labelling

Raw cover in days

Tank 18,600 L — 7.8 days of filling
litre bottles3.9 days
capsissue not recorded in the program—

06Sell more

A catalogue that turns browsing into an enquiry with the codes.

The customer picks on his phone and the message writes itself; the company's website and the online store are this same catalogue.

Held by a customer on the phone · Lever: Pick items
Your companyHeld by a customerBook: now · Program: last read 18:10

Invented figures — not yours

The Catalogue

Public catalogue
468items

6 items shown here — tick what you would like to ask about.

Pick items

Nothing moved on the Morning

Choose an item

On the real site the button opens WhatsApp with this message — here the customer is invented. The company's website and the online store are this same catalogue — The Work.

07The accountant

The rate of the entry's day, the posting file, and a read-only login.

Nobody writes into your program: the accountant imports a file, the program's number is the proof, and a write is refused in front of him.

Held by the accountant on the laptop · Lever: Valuation
Your companyHeld by the accountantBook: now · Program: last read 18:10

Invented figures — not yours

Rate of the Day

Account C-310 · restaurant · Abu Rummaneh
$0.00Settled

Invoice S-26-19780 on 03/09, receipt R-26-02944 on 10/09, each at its own day's exchange rate

Valuation

Moved: Morning › Past Terms

At the entry-day rateC-310
Invoice S-26-19780 · 03/09$1,200
Receipt R-26-02944 · 10/09 ×1.00−$1,200
Balance$0.00

Each entry at its own day's ratio, so a settled account stays settled

At today's rateC-310
Invoice S-26-19780 · 03/09$1,200
Receipt R-26-02944 · 10/09 ×1.10−$1,091
Balance$109.00

The same amount at today's ratio

Held by the accountant on the laptop · Lever: The file
Your companyHeld by the accountantBook: now · Program: last read 18:10

Invented figures — not yours

The Bridge

Yesterday's file · POST-20261018.txt
97documents

posted with the program's numbers · S-26-24118 … S-26-24214

The file

Nothing moved on the Morning

What came back from the program this morning

In the filePOST-20261018.txt · 18/10/202698
Posted with the program's numbersS-26-24118 … S-26-2421497
Refused by the programV2-1018-011 · C-287 · $96the customer is not defined in the programAction: define the customer in the program and re-import1

The posting file · in the shape your program imports

doc_no      date   cust    lines total
C-1018-001  18/10  C-242   3     299.60
C-1018-002  18/10  C-283   4     271.70
C-1018-003  18/10  C-392   3     523.70
C-1018-004  18/10  C-128   1     2.80
C-1018-005  18/10  C-382   1     181.00
… 93 lines more
Held by the accountant on the laptop · Lever: Cost in the program
Your companyHeld by the accountantBook: now · Program: last read 18:10

Invented figures — not yours

Read Only

A record in your accounting program — Al-Ameen
$5.20cost

P-1000 · extra-virgin olive oil · 1 L · quantity 1,180

Change the cost first

Nothing changed, anywhere

The write attemptRead every hour · last read 18:10

READ items · cost 5.20 · middleware_ro: read only

This is how a write is refused in front of your accountant, on a read-only login

Delete this login and everything stops — on purpose.

The index · everything we build

9 families · 49 items · ● tried above · seed 20261019

See the business

The Morning · the owner's monthly report · the command centre: sales, margin, receivables, dead stock, year on year · the board against your own target · alarms to the phone: sold below cost, negative stock, the read stopped

Stop losing money

Dead stock with a grace period · reorder early warning: demand against lead time and buffer, spike isolation · below-cost and wrong-currency detection with thresholds measured from your own book · negative stock and missing purchase bills · landed cost for importers · supplier quote comparison

Run the floor

The billing queue: paper and the WhatsApp group as one queue · warehouse locations from a phone · branches: transfers, replenishment, discrepancy audits · the blind count from a phone, one question per screen · barcodes and shelf labels with the phone's camera · delivery and proof of delivery · van sales offline, collections per rep · the gate count · the cashbox blind close · the floor keeps selling when the internet drops: an outbox, not a promise

Sell more

The catalogue that turns browsing into a WhatsApp enquiry with the codes · quotations with a photograph on every line · per-customer price lists and price memory · the supplier's photo made clean on one stage · the company's bilingual website, and the online store when the store is the thing being sold · the configurator whose “quote this” arrives with every choice intact

Change systems

Migration between two systems reconciled to the cent · archive rescue from a program whose vendor is gone · integration between two systems you already own · the bridge to Al-Ameen, through the program's own doors: its import, or its own posting procedures when the owner asks; the document number is the proof, and no row enters its tables except through the program itself

And what is not here: your own “except when…” — we build it.

08The call

These figures are invented. Yours are in your own book.

Every screen here runs on invented figures — yours would run on your own book.

Twenty minutes on the phone

WhatsApp +963 953 250 111