← Opera№ V of VII
Commerce + mobile · Jordan

Tibbuk

Everything a medical student needs for clinical rotations, with their name engraved on it, delivered to their door. Plus a shop the owner can run entirely from a phone.

Role
Sole engineer
Year
2026
Web
Laravel · Inertia · React
Mobile
Flutter · Riverpod · FCM
Market
Medical students, Jordan
Source
Private repository
i
The store

"Order, receive, start your rotation."

Med students in Jordan buy the same kit every year: stethoscopes, scrubs, instruments. Tibbuk is one storefront built around exactly that list. There's no minimum spend, CliQ payments, delivery anywhere in Jordan, and your name engraved on the stethoscope for free.

The interesting engineering is in the products. A stethoscope can be engraved, scrubs come in sizes, cuts and colours, and any item can have embroidery. So the product model carries its own options (allows_engraving, allows_stitching, available_sizes, available_colors, gender and variants), and checkout, the admin and the app all respect them.

Try it · personalise a stethoscopeType your name →
Name engraving Free
Delivery across Jordan 3 JD
Payment CliQ
Order tracking /track
OPTIONEngravingA name on any stethoscope
OPTIONStitchingEmbroidery on scrubs
OPTIONSizesA size list for each product
OPTIONColoursSwatches for each product
OPTIONCutMen's and women's fits
ii
Running the shop

The admin lives in the owner's pocket.

A small shop doesn't run from a desk. So the Flutter app holds two products in one binary: the storefront for students, and a full admin console behind biometric sign-in for the owner. A dedicated Laravel admin API gives the app the same power as the web dashboard.

Orders

Edit anything after checkout

  • Items, customer details, engraving, size and variants
  • Delivery fee as an editable line item
  • A status log for every change
Fulfilment

From order to doorstep

  • Bulk packing slips
  • One-tap WhatsApp to the customer
  • A public order-tracking page
Growth

Push campaigns

  • FCM HTTP v1 from both web and mobile
  • Send history and test sends
  • Errors shown in the UI, not swallowed
Money

Financials, not just sales

Products store a cost price next to the sale price, so the financials screen shows margin, not just revenue. Discounts are a first-class model.

Security

Passkeys and 2FA

The web admin supports passkeys and two-factor auth. The app's admin is locked behind Face ID or a fingerprint.

iii
Shipping it

Built in one monorepo and debugged in production.

The Laravel app and the Flutter app live in the same repository, and GitHub Actions builds the Android APK on every push. The commit log reads like a real launch. Firebase init became non-fatal after a white screen on launch. Clients reload themselves when a stale JS chunk appears after a deploy. Device builds were switched to the correct APNs environment. A dedicated FCM debug endpoint was added for when push goes quiet.

Later I cut the same commerce engine into a completely different store. That became Abujad.