Back to portfolioWORK / IQAMAPRINT

Case study

IqamaPrint

Production · Sole engineer · Saudi Arabia

Live platform Back to work
15K+
Services
8.5K+
Users
98%
Satisfaction
70%+
Mobile

Problem

Workers in Saudi Arabia needed government-related documents (iqama prints, passport data, visas, insurance checks) without physical queues. The workflow had to be online, fast, trustworthy, and mobile-friendly — with sensitive document handling.

My role

Sole engineer: product design, frontend, backend, database schema, auth, payments, admin tooling, deployment, and ongoing operations. No separate DevOps or design team — full ownership from zero to production traffic.

Architecture (high level)

  • React 18 + TypeScript SPA on Vercel for the customer and admin experience
  • Supabase (PostgreSQL) as the system of record with Row-Level Security on user data
  • Server-side payment verification before order fulfillment
  • Signed, time-limited URLs for document delivery — no permanent public links
  • Razorpay integration with webhook-style verification flows

Key engineering decisions

  • RLS-first data model so client queries cannot cross tenant boundaries even if the UI has a bug
  • Separate admin roles enforced at the database policy layer, not only in the UI
  • Optimistic UI only where rollback is safe; payment and document states stay server-authoritative
  • Mobile-first layout — 70%+ traffic is mobile, so performance and touch targets were prioritized early

Security & trust

  • SSL everywhere; expiring links for delivered documents
  • Row-Level Security (RLS) on Supabase tables
  • Server-side payment verification before marking orders complete
  • Minimal PII surface in logs and client storage

Impact

  • 15,000+ document services delivered
  • 8,500+ registered users
  • ~98% reported satisfaction
  • ~24 hour average delivery turnaround
  • 70%+ mobile traffic sustained in production

What I would improve next

Formal observability (structured logging, alerting on payment failures), automated integration tests on critical checkout paths, and clearer incident runbooks as volume grows. These are the natural next steps at current scale.

Stack

React 18TypeScriptViteTailwindshadcn/uiSupabasePostgreSQLVercelRazorpay