Flotă premium, șoferi verificați, plată cu card direct în aplicație. Quote instant pentru orice rută, fără surprize la final.
BlackCab opera un serviciu premium de transport cu o flotă mare și un sistem de dispatch SOAP scris acum un deceniu — funcțional, critic, dar imposibil de schimbat fără riscuri de business. Site-ul vechi era mono-lingv, fără quote dinamic, formularele se umpleau cu boți, iar editarea conținutului trecea prin developer. Noul site trebuia să arate premium pe ambele limbi (RO/EN), să dea estimări de preț în timp real direct din dispatch-ul existent, să separe clar audiențele (clienți individuali, contracte business, recrutare șoferi) și să dea echipei de marketing autonomie pe conținut. Fără să rescriem backend-ul.
Next.js cu next-intl și rute [locale] pentru RO/EN. Switch de limbă persistent, fallback automat la limba browser-ului, toate textele extrase în messages/{ro,en}.json. SEO corect cu meta-uri per limbă, sitemap și hreflang.
API route /api/quote care primește pickup/dropoff de pe Google Maps, cere distanță și aplică regulile de tarifare prin SOAP-ul existent. Soap rulează doar server-side (serverComponentsExternalPackages) ca să nu ajungă în bundle-ul client. Răspuns sub 200ms cu cache pe rutele frecvente.
Sanity Studio configurat pentru blog, pagini de servicii și posts editoriale. Echipa de marketing poate publica articole noi sau actualiza textele de pe servicii fără cod. Imaginile sunt servite prin CDN Sanity cu transformări on-the-fly.
Trei landing-uri separate cu CTA-uri proprii: ride (calculator de preț + book), business (cerere de cont corporate), driver (aplicație de recrutare). Toate formularele cu React Hook Form + Zod și Cloudflare Turnstile invizibil pentru protecție anti-bot.
Framer Motion pentru micro-interacțiunile cheie (apariție hero, hover pe servicii, tranziții pe quote). Audit performanță, optimizare imagini, lazy-load pe pagini secundare. Test pe device-uri reale, ajustări pe iOS Safari.
“Au reușit să facă site-ul să arate ca un brand premium, fără să atingă dispatch-ul vechi de care depinde toată operațiunea. Quote-ul live a fost greu — și e acolo, sub 200ms.”