Work · 2026 · In production
Warshagy
A managed manufacturing platform for Egypt, starting with CNC machining.
- warshagy.com
- Private repository
- Product design · Backend · Frontend · Infrastructure

المشكلةThe problem
Egyptian engineers with STEP files and drawings need machined parts quoted, reviewed and delivered, and they do not want to manage a supplier network to get there. Warshagy takes the geometry in, puts an engineer between the file and the price, and hands the part back.
البناءThe build
A Django and DRF API with Celery workers; a Next.js customer app and a separate staff console built from the same source on its own domain; MinIO for CAD and drawings; and a small OpenCascade service that reads every uploaded model and computes bounding box, volume and face inventory before a human sees it. Customers sign in with a WhatsApp code, staff with Google. Arabic and English carry equal weight in the type system, and the dark machine-bay design language came from a written brief, not a template. A set of public engineering calculators doubles as the marketing surface.
التشغيلHow it runs
Thirteen containers in one Compose stack: Postgres, Redis, MinIO, the API, two frontends, the CAD analyser, a Celery worker and beat. nginx terminates behind Cloudflare with an origin certificate, so there is no certbot and nothing to renew. Every push to main redeploys, migrations included, and load-test scripts cover the quote path.
System · النظام
How Warshagy is put together
392 files in 139 folders, without dependencies or vendored code. TypeScript 52% · Python 34% · JavaScript 3%. The repository is private; the structure stays that way.
- the product's own code
- services it runs
- data
- outside providers
One request · رحلة طلب
An engineer uploads a STEP file
Step by step through the system above. The tags name the parts each step touches.
Upload
The request form takes CAD, drawings or photos. Files stream into MinIO; the request row lands in Postgres with its material, quantity and delivery constraints.
- Customer app
- API
- MinIO
- Postgres
Hand-off
The API asks the CAD analyser to look at the geometry, passing an internal token and the object key, and answers the customer immediately instead of waiting.
- API
- CAD analyser
Analysis
The analyser reads the model from MinIO, computes bounding box, volume, centre of mass and a face inventory, and patches the result back with a content hash, so the same geometry is never analysed twice.
- CAD analyser
- MinIO
- API
Review
The staff console shows the request with its geometry as evidence. An engineer checks manufacturability, chooses materials and finishes, and drafts a quote by hand. Celery sends the notifications.
- Staff console
- Celery worker + beat
Quote
The customer opens the quote from a signed link, signs in with a WhatsApp code, and accepts it or asks a question.
- Customer app
- WhatsApp sidecar
Order
Payment proof is uploaded and verified by a person. The order then moves through QC, logistics and a status history the customer can follow.
- Staff console
- MinIO
- Postgres
Decisions · قرارات
Why Warshagy is built this way
A separate CAD analyser service
The OpenCascade bindings are only reliable from conda-forge, so they cannot live in the slim pip-based Django image. Isolating them also keeps a heavy geometry kernel off the web workers.
CostOne more container and an internal callback contract to keep honest.
Analyse geometry once, apply materials later
Results are material-independent and keyed by the content hash of the bytes. Mass is density times volume on the Django side, so a part quoted in three alloys is analysed one time.
Manual quotation, not instant pricing
Engineering review before a price is the promise. The platform structures the review, collects the evidence and tracks the outcome; it does not pretend to replace the engineer.
Two frontends from one source
The staff console is the same Next.js codebase built in an operations variant on its own domain. Customer and staff surfaces share components without sharing exposure.
Bilingual from the first commit
Arabic and English carry equal typographic authority, with Alexandria and Sora, and every layout is tested in both directions. Retrofitting right-to-left is far more expensive than starting with it.
Cloudflare origin certificates instead of certbot
TLS is strict end to end and there is no renewal job to babysit. The origin only ever talks to Cloudflare.
Design system · نظام التصميم
How Warshagy looks
The digital machine bay: a real machined part under precise light, with drawings, materials and process states legible around it.
Palette
- Forge black#121212Ground
- Tool steel#2B2D31Surface
- Ignition orange#F97316Action and the current process step
- Machined white#F5F5F5Ink
- Readable steel#A1A7B2Secondary text
- Inspection paper#F5F3EFBright-mode ground
Type
Sora · display and interfaceWarshagy Aa Bb 0123
Alexandria · Arabicورشجي أبجد هوز ٠١٢٣
Principles · design docs
- The evidence rule: every high-impact visual is a part, a drawing, a tolerance or a quote action. Decorative futurism is prohibited.
- The two-speed rule: the homepage may choreograph attention; quoting, review and operations stay still unless motion explains state.
- Bilingual from the outset: Warshagy and ورشجي carry equal typographic authority, and every layout is tested in both directions.
Screens · شاشات
Warshagy as it ships
Captured from the live product. Desktop frames are 1440 wide, phones 390.



