redesign the homepage
Build & Deploy / Build & Push Docker Image (push) Failing after 47s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m4s
Test / Marketplace Unit Tests (push) Failing after 4m55s
Test / Admin Unit Tests (push) Successful in 9m37s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s

This commit is contained in:
root
2026-06-26 16:27:21 -04:00
parent 256ff0814e
commit d7fb7b7a7b
1030 changed files with 107374 additions and 2657 deletions
+27 -27
View File
@@ -97,7 +97,7 @@ export const defaultMarketplaceHomepageSections: MarketplaceHomepageSectionType[
export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
en: {
sections: defaultMarketplaceHomepageSections,
heroKicker: 'FleetOS',
heroKicker: 'RentalDriveGo',
heroTitle: 'The operating system for modern fleet management.',
heroBody:
'Run your entire rental operation from one platform — inventory, bookings, payments, and customer experience, all under your own brand.',
@@ -106,7 +106,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
surfaceLabel: 'Unified dashboard',
surfaceTitle: 'One platform. Every operation.',
surfaceBody:
'Fleet operators need power, renters need simplicity. FleetOS delivers both without compromise — no templates, no generic workflows.',
'Fleet operators need power, renters need simplicity. RentalDriveGo delivers both without compromise — no templates, no generic workflows.',
liveLabel: 'Live platform',
trustedFleets: 'Real-time fleet control',
brandedFlows: 'White-label booking engine',
@@ -118,7 +118,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
renterKicker: 'Customer experience',
renterTitle: 'Give renters a fast, transparent booking journey that ends on your branded checkout.',
renterBody:
'FleetOS powers discovery and conversion — not a walled garden. Browse here, book there, and pay directly to the fleet owner.',
'RentalDriveGo powers discovery and conversion — not a walled garden. Browse here, book there, and pay directly to the fleet owner.',
pillars: [
['Unified command', 'Vehicle inventory, dynamic pricing, and promotional offers flow from one admin hub into marketplace discovery and your own branded storefront.'],
['Smart discovery', 'Location-aware search, reputation scoring, and AI-curated listings help renters find the right vehicle in seconds.'],
@@ -129,7 +129,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
['02', 'White-label booking experience'],
['03', 'Direct-to-owner payments'],
].map(([value, label]) => ({ value: value!, label: label! })),
featureLabel: 'What FleetOS covers',
featureLabel: 'What RentalDriveGo covers',
features: [
'Fleet inventory with multi-photo uploads and condition tracking',
'Dynamic pricing engine with seasonal and promotional rules',
@@ -155,11 +155,11 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
description: 'Customers discover your fleet, book through your branded site, and payments land directly in your account.',
},
],
stepsTitle: 'How fleets launch on FleetOS',
stepsTitle: 'How fleets launch on RentalDriveGo',
steps: [
['1', 'Create your fleet workspace', 'Choose a plan, start your 90-day trial, and verify your operator account.'],
['2', 'Publish vehicles and offers', 'Upload vehicle data once and control exactly what appears on every channel.'],
['3', 'Accept bookings on your terms', 'Customers discover your fleet on FleetOS, then complete the booking on your own branded checkout.'],
['3', 'Accept bookings on your terms', 'Customers discover your fleet on RentalDriveGo, then complete the booking on your own branded checkout.'],
].map(([step, title, body]) => ({ step: step!, title: title!, body: body! })),
stepLabel: 'Step',
testimonialsKicker: 'CUSTOMER STORIES',
@@ -167,7 +167,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
testimonials: [
{
quote:
'FleetOS transformed how we manage our 200+ vehicle fleet. The unified dashboard cut our admin time by half and our bookings doubled in three months.',
'RentalDriveGo transformed how we manage our 200+ vehicle fleet. The unified dashboard cut our admin time by half and our bookings doubled in three months.',
author: 'Sarah Johnson',
role: 'Fleet Director',
company: 'Premium Auto Rentals',
@@ -181,7 +181,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
},
{
quote:
'We evaluated six platforms before FleetOS. The multi-tenant architecture and direct payment model made it the obvious choice for our growing operation.',
'We evaluated six platforms before RentalDriveGo. The multi-tenant architecture and direct payment model made it the obvious choice for our growing operation.',
author: 'Marie Dubois',
role: 'CEO',
company: 'Provence Car Hire',
@@ -190,13 +190,13 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
readyKicker: 'Ready to launch',
readyTitle: 'Your fleet deserves an operating system, not just a listing site.',
readyBody:
'FleetOS gives you the tools to run your entire rental business — from inventory to invoicing — while keeping your brand front and center at every touchpoint.',
'RentalDriveGo gives you the tools to run your entire rental business — from inventory to invoicing — while keeping your brand front and center at every touchpoint.',
viewPricing: 'View pricing',
createWorkspace: 'Create workspace',
},
fr: {
sections: defaultMarketplaceHomepageSections,
heroKicker: 'FleetOS',
heroKicker: 'RentalDriveGo',
heroTitle: "Le système d'exploitation pour la gestion de flotte moderne.",
heroBody:
"Gérez l'ensemble de votre activité de location depuis une seule plateforme — inventaire, réservations, paiements et expérience client, le tout sous votre propre marque.",
@@ -205,7 +205,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
surfaceLabel: 'Tableau de bord unifié',
surfaceTitle: 'Une plateforme. Toutes les opérations.',
surfaceBody:
'Les opérateurs de flotte ont besoin de puissance, les clients ont besoin de simplicité. FleetOS offre les deux sans compromis — aucun modèle générique.',
'Les opérateurs de flotte ont besoin de puissance, les clients ont besoin de simplicité. RentalDriveGo offre les deux sans compromis — aucun modèle générique.',
liveLabel: 'Plateforme active',
trustedFleets: 'Contrôle de flotte en temps réel',
brandedFlows: 'Moteur de réservation en marque blanche',
@@ -217,7 +217,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
renterKicker: 'Expérience client',
renterTitle: 'Offrez aux clients un parcours de réservation rapide et transparent qui se termine sur votre page de marque.',
renterBody:
'FleetOS alimente la découverte et la conversion — pas un jardin fermé. Parcourez ici, réservez là-bas et payez directement au propriétaire de la flotte.',
'RentalDriveGo alimente la découverte et la conversion — pas un jardin fermé. Parcourez ici, réservez là-bas et payez directement au propriétaire de la flotte.',
pillars: [
["Commande unifiée", "L'inventaire, la tarification dynamique et les offres promotionnelles circulent depuis un hub d'administration unique vers la marketplace et votre vitrine de marque."],
['Découverte intelligente', 'Recherche géolocalisée, score de réputation et annonces optimisées aident les clients à trouver le bon véhicule en quelques secondes.'],
@@ -228,7 +228,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
['02', 'Expérience de réservation en marque blanche'],
['03', 'Paiements directs au propriétaire'],
].map(([value, label]) => ({ value: value!, label: label! })),
featureLabel: 'Ce que FleetOS couvre',
featureLabel: 'Ce que RentalDriveGo couvre',
features: [
"Inventaire de flotte avec photos multiples et suivi d'état",
'Moteur de tarification dynamique avec règles saisonnières et promotionnelles',
@@ -254,11 +254,11 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
description: 'Les clients découvrent votre flotte, réservent via votre site de marque et les paiements arrivent directement sur votre compte.',
},
],
stepsTitle: 'Comment les flottes se lancent sur FleetOS',
stepsTitle: 'Comment les flottes se lancent sur RentalDriveGo',
steps: [
['1', 'Créez votre espace de flotte', 'Choisissez un plan, démarrez votre essai de 90 jours et vérifiez votre compte opérateur.'],
['2', 'Publiez véhicules et offres', 'Ajoutez vos données une seule fois et contrôlez précisément ce qui apparaît sur chaque canal.'],
['3', 'Acceptez les réservations selon vos conditions', 'Les clients découvrent votre flotte sur FleetOS, puis finalisent sur votre propre page de réservation.'],
['3', 'Acceptez les réservations selon vos conditions', 'Les clients découvrent votre flotte sur RentalDriveGo, puis finalisent sur votre propre page de réservation.'],
].map(([step, title, body]) => ({ step: step!, title: title!, body: body! })),
stepLabel: 'Étape',
testimonialsKicker: 'HISTOIRES DE CLIENTS',
@@ -266,7 +266,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
testimonials: [
{
quote:
"FleetOS a transformé la gestion de notre flotte de plus de 200 véhicules. Le tableau de bord unifié a réduit notre temps d'administration de moitié et nos réservations ont doublé en trois mois.",
"RentalDriveGo a transformé la gestion de notre flotte de plus de 200 véhicules. Le tableau de bord unifié a réduit notre temps d'administration de moitié et nos réservations ont doublé en trois mois.",
author: 'Sophie Martin',
role: 'Directrice de Flotte',
company: 'Location Premium',
@@ -280,7 +280,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
},
{
quote:
"Nous avons évalué six plateformes avant FleetOS. L'architecture multi-tenant et le modèle de paiement direct en ont fait le choix évident pour notre croissance.",
"Nous avons évalué six plateformes avant RentalDriveGo. L'architecture multi-tenant et le modèle de paiement direct en ont fait le choix évident pour notre croissance.",
author: 'Isabelle Leclerc',
role: 'PDG',
company: 'Provence Auto',
@@ -289,13 +289,13 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
readyKicker: 'Prêt à vous lancer',
readyTitle: "Votre flotte mérite un système d'exploitation, pas juste un site d'annonces.",
readyBody:
"FleetOS vous donne les outils pour gérer l'ensemble de votre activité de location — de l'inventaire à la facturation — tout en gardant votre marque au premier plan à chaque point de contact.",
"RentalDriveGo vous donne les outils pour gérer l'ensemble de votre activité de location — de l'inventaire à la facturation — tout en gardant votre marque au premier plan à chaque point de contact.",
viewPricing: 'Voir les tarifs',
createWorkspace: "Créer l'espace",
},
ar: {
sections: defaultMarketplaceHomepageSections,
heroKicker: 'FleetOS',
heroKicker: 'RentalDriveGo',
heroTitle: 'نظام التشغيل لإدارة الأساطيل الحديثة.',
heroBody:
'قم بإدارة كامل نشاط التأجير الخاص بك من منصة واحدة — المخزون، الحجوزات، المدفوعات وتجربة العملاء، كل ذلك تحت علامتك التجارية الخاصة.',
@@ -304,7 +304,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
surfaceLabel: 'لوحة تحكم موحدة',
surfaceTitle: 'منصة واحدة. كل العمليات.',
surfaceBody:
'مشغلو الأساطيل يحتاجون إلى القوة، والمستأجرون يحتاجون إلى البساطة. FleetOS يقدم كليهما بدون تنازلات — لا قوالب جاهزة ولا سير عمل عام.',
'مشغلو الأساطيل يحتاجون إلى القوة، والمستأجرون يحتاجون إلى البساطة. RentalDriveGo يقدم كليهما بدون تنازلات — لا قوالب جاهزة ولا سير عمل عام.',
liveLabel: 'منصة نشطة',
trustedFleets: 'تحكم فوري بالأسطول',
brandedFlows: 'محرك حجز بالعلامة البيضاء',
@@ -316,7 +316,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
renterKicker: 'تجربة المستأجر',
renterTitle: 'امنح المستأجرين رحلة حجز سريعة وشفافة تنتهي على صفحة الدفع الخاصة بك.',
renterBody:
'FleetOS يشغّل الاكتشاف والتحويل — وليس حديقة مغلقة. تصفح هنا، احجز هناك، وادفع مباشرة لمالك الأسطول.',
'RentalDriveGo يشغّل الاكتشاف والتحويل — وليس حديقة مغلقة. تصفح هنا، احجز هناك، وادفع مباشرة لمالك الأسطول.',
pillars: [
['قيادة موحدة', 'المخزون، التسعير الديناميكي والعروض الترويجية تتدفق من مركز إدارة واحد إلى marketplace السوق وواجهة متجرك الخاصة.'],
['اكتشاف ذكي', 'بحث حسب الموقع، تقييم السمعة وقوائم منسقة بالذكاء الاصطناعي تساعد المستأجرين في العثور على المركبة المناسبة بثوانٍ.'],
@@ -327,7 +327,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
['02', 'تجربة حجز بالعلامة البيضاء'],
['03', 'مدفوعات مباشرة للمالك'],
].map(([value, label]) => ({ value: value!, label: label! })),
featureLabel: 'ما الذي يغطيه FleetOS',
featureLabel: 'ما الذي يغطيه RentalDriveGo',
features: [
'مخزون الأسطول مع رفع صور متعددة وتتبع الحالة',
'محرك تسعير ديناميكي مع قواعد موسمية وترويجية',
@@ -353,11 +353,11 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
description: 'يكتشف العملاء أسطولك، ويحجزون عبر موقعك التجاري، وتصل المدفوعات مباشرة إلى حسابك.',
},
],
stepsTitle: 'كيف تنطلق الأساطيل على FleetOS',
stepsTitle: 'كيف تنطلق الأساطيل على RentalDriveGo',
steps: [
['1', 'أنشئ مساحة عمل أسطولك', 'اختر الخطة وابدأ تجربتك لمدة 90 يوماً وتحقق من حساب المشغل الخاص بك.'],
['2', 'انشر المركبات والعروض', 'أضف بيانات المركبات مرة واحدة وتحكم بدقة فيما يظهر على كل قناة.'],
['3', 'استقبل الحجوزات بشروطك', 'يكتشف العملاء أسطولك على FleetOS، ثم يكملون الحجز على صفحة الدفع الخاصة بك.'],
['3', 'استقبل الحجوزات بشروطك', 'يكتشف العملاء أسطولك على RentalDriveGo، ثم يكملون الحجز على صفحة الدفع الخاصة بك.'],
].map(([step, title, body]) => ({ step: step!, title: title!, body: body! })),
stepLabel: 'الخطوة',
testimonialsKicker: 'قصص العملاء',
@@ -365,7 +365,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
testimonials: [
{
quote:
'غيّر FleetOS طريقة إدارة أسطولنا المكون من أكثر من 200 مركبة. لوحة التحكم الموحدة قلصت وقت الإدارة إلى النصف وتضاعفت حجوزاتنا في ثلاثة أشهر.',
'غيّر RentalDriveGo طريقة إدارة أسطولنا المكون من أكثر من 200 مركبة. لوحة التحكم الموحدة قلصت وقت الإدارة إلى النصف وتضاعفت حجوزاتنا في ثلاثة أشهر.',
author: 'فاطمة الزهراء',
role: 'مديرة الأسطول',
company: 'تأجير السيارات الممتازة',
@@ -379,7 +379,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
},
{
quote:
'قيمنا ست منصات قبل FleetOS. البنية متعددة الشركات ونموذج الدفع المباشر جعلاه الخيار الواضح لنمونا المتسارع.',
'قيمنا ست منصات قبل RentalDriveGo. البنية متعددة الشركات ونموذج الدفع المباشر جعلاه الخيار الواضح لنمونا المتسارع.',
author: 'ليلى حسن',
role: 'المديرة التنفيذية',
company: 'تأجير سيارات البحر الأبيض',
@@ -388,7 +388,7 @@ export const defaultMarketplaceHomepageContent: MarketplaceHomepageConfig = {
readyKicker: 'جاهز للانطلاق',
readyTitle: 'أسطولك يستحق نظام تشغيل، وليس مجرد موقع إعلانات.',
readyBody:
'يمنحك FleetOS الأدوات اللازمة لإدارة كامل نشاط التأجير — من المخزون إلى الفوترة — مع إبقاء علامتك التجارية في المقدمة عند كل نقطة اتصال.',
'يمنحك RentalDriveGo الأدوات اللازمة لإدارة كامل نشاط التأجير — من المخزون إلى الفوترة — مع إبقاء علامتك التجارية في المقدمة عند كل نقطة اتصال.',
viewPricing: 'عرض الأسعار',
createWorkspace: 'إنشاء المساحة',
},