Loading...
Loading...
A Turborepo-powered production-industry marketplace — Next.js web, React Native mobile, NestJS API — consolidating booking, payment, and collaboration for the Gulf's camera, crew, studio, and location professionals. Bilingual AR/EN with escrow on every transaction.
The Gulf's production industry runs on personal networks, Instagram Stories, and PDF invoices. Reputation is verbal, discovery is political, payment is slow.
VYRL collapses discovery, booking, payment, and collaboration into one marketplace — purpose-built for production, bilingual by default, escrow-backed on every transaction.
A Turborepo monorepo where the web app, mobile apps, and API share types, validation schemas, and API clients. Update availability from the edit suite. Get paid from set. Every surface stays in sync.
Marketing, browsing, public profiles, dashboard, booking flow. App Router, streaming, RSC.
Native apps for pros and clients. Push notifications, on-the-go availability updates, chat, payments.
REST + WebSocket. Booking orchestration, escrow state machine, chat, notifications, reviews.
Filter by category, location, budget, gear specs, language, insurance. Verified profiles with video reels surface first.
ID verification, insurance check, portfolio review, and real client-left reviews. Reputation that travels.
Funds held until delivery, auto-released on milestones. Stripe + PayTabs. No more 90-day invoice chases.
Quotes, call sheets, scouting images, delivery links — all in one thread per booking. Quick-reply templates in AR/EN.
E-signed, jurisdiction-aware contracts with cancellation and IP terms. Auto-filled from booking fields.
Full RTL support via next-intl. Noto Sans Arabic. Arabic-first where it matters, English-first where it doesn't.
Verified production professionals across the GCC.
Projects booked and delivered through the platform.
Average rating — on a platform built in 6 months.
Let's talk. Three apps, one codebase, zero drift.
Each tab is the real, fully-styled HTML for that screen — embedded in its own browsing context so the styles never collide with the case study.