[{"data":1,"prerenderedAt":335},["ShallowReactive",2],{"portfolio-en-/en/portfolio/elite-ride":3},{"project":4,"isFallback":315},{"id":5,"title":6,"body":7,"description":272,"extension":283,"head":284,"meta":285,"navigation":321,"path":322,"schemaOrg":284,"seo":323,"sitemap":326,"stem":333,"__hash__":334},"portfolio_en/en/portfolio/elite-ride.md","Elite Ride – Premium Chauffeur Service with Online Payments",{"type":8,"value":9,"toc":271},"minimark",[10,15,19,22,30,33,37,40,47,50,57,64,66,70,73,80,83,111,114,116,120,126,133,139,142,148,151,153,157,160,163,165,169,175,181,187,193,199,205,219,221,225,228,241,243,247,257,259],[11,12,14],"h2",{"id":13},"business-card-or-sales-channel","Business card or sales channel",[16,17,18],"p",{},"Elite Ride Mugoša runs premium transfers in Montenegro. Airport transport, business travel, weddings, private tours. The fleet ranges from a limousine for two to a minibus for sixteen.",[16,20,21],{},"Operators like this usually have a website that looks good and does nothing. A photo of a car, a list of services, a contact form, and then waiting for someone to send an enquiry and ask what it costs.",[16,23,24,25,29],{},"Our job was to flip that: ",[26,27,28],"strong",{},"the guest should get a price before asking anyone",", and be able to pay straight away if they want to.",[31,32],"hr",{},[11,34,36],{"id":35},"live-pricing-per-vehicle-class","Live pricing, per vehicle class",[16,38,39],{},"The homepage carries a booking bar: date, time, pickup and drop-off.",[16,41,42],{},[43,44],"img",{"alt":45,"src":46},"Elite Ride – homepage with a booking bar and price check","/portfolio/elite-ride/home.webp",[16,48,49],{},"Addresses are picked through Google Places search that runs via our own server and is cached, so it is fast and does not burn quota on every keystroke. Search suggests Montenegrin results first, then widens to the region.",[16,51,52,53,56],{},"Once the guest confirms, the system requests a price from the ",[26,54,55],{},"operator's dispatch system",", for exact coordinates and an exact time, and returns an amount for every active vehicle class. Alongside the base fare come the surcharges the operator applies: extra stop, child seat, meet and greet, gratuity, fuel, airport fee, night driving and rush hour.",[16,58,59,60,63],{},"When a booking goes through, it is ",[26,61,62],{},"pushed back into the dispatch system",", so the driver receives the job through the tool they already use. Nothing is retyped from an email into a schedule.",[31,65],{},[11,67,69],{"id":68},"payments-that-had-to-wait-for-a-bank","Payments that had to wait for a bank",[16,71,72],{},"This was the longest part of the project and it is worth telling honestly.",[16,74,75,76,79],{},"The site launched on one gateway, and during the summer of 2026 we ",[26,77,78],{},"migrated to Monri WebPay"," using their components integration. The migration meant a new request signature, new webhook verification and a fresh round of validation with the bank.",[16,81,82],{},"A few decisions made that safe:",[84,85,86,93,99,105],"ul",{},[87,88,89,92],"li",{},[26,90,91],{},"The webhook is verified by signature",", compared in constant time, so a forged call cannot mark a booking as paid",[87,94,95,98],{},[26,96,97],{},"The card payment switch is enforced on the server."," Until the bank approved, the payment path returned an error and the card field was not rendered at all. This was a closed path, not a hidden button.",[87,100,101,104],{},[26,102,103],{},"\"Order and pay later\" always works",", so the business never stalled for a single day while approval was pending",[87,106,107,110],{},[26,108,109],{},"There is a separate password-protected test page"," the bank uses to validate the integration on a real transaction, with no contact whatsoever with the live flow",[16,112,113],{},"The footer carries Visa, Mastercard and Maestro marks, alongside pages on payment security, cancellation and refunds, because card payments require a legal framework and not only a technical one.",[31,115],{},[11,117,119],{"id":118},"fleet-and-services-the-client-manages","Fleet and services the client manages",[16,121,122],{},[43,123],{"alt":124,"src":125},"Elite Ride – fleet overview with vehicle classes, passenger and luggage counts","/portfolio/elite-ride/fleet.webp",[16,127,128,129,132],{},"Vehicle classes sync from the dispatch system, but everything the guest sees stays in the client's hands: name, description, images, drag-and-drop ordering and a visibility toggle. The sync deliberately ",[26,130,131],{},"does not resurrect locally deleted classes and does not overwrite manually entered names",", because otherwise every sync would undo the editing.",[16,134,135],{},[43,136],{"alt":137,"src":138},"Elite Ride – services page with premium transport categories","/portfolio/elite-ride/services.webp",[16,140,141],{},"Services, homepage banners and news all run through the same admin, with a rich text editor and translations for both languages in tabs.",[16,143,144],{},[43,145],{"alt":146,"src":147},"Elite Ride – news section with articles on transport and events","/portfolio/elite-ride/news.webp",[16,149,150],{},"The news module is not decoration. Through it the site captures seasonal searches: a new airline arriving in Podgorica, festivals, transfer advice. Those are the topics that bring in guests who are still planning a trip.",[31,152],{},[11,154,156],{"id":155},"rules-that-protect-the-schedule","Rules that protect the schedule",[16,158,159],{},"Rides are not accepted without limits. The admin configures advance notice rules by distance band from Podgorica, so long-distance rides require more notice. Distance is calculated against a fixed base point, so the rule behaves the same regardless of where the guest is coming from.",[16,161,162],{},"Abandoned bookings are cleared by a scheduled job, so the booking list stays usable.",[31,164],{},[11,166,168],{"id":167},"under-the-hood","Under the hood",[16,170,171,174],{},[26,172,173],{},"Backend:"," PHP 8.2, Laravel 13, Spatie packages (permission, translatable, sitemap, honeypot), Sentry, reCAPTCHA Enterprise alongside a honeypot.",[16,176,177,180],{},[26,178,179],{},"Public site:"," Blade with an SCSS theme and Alpine.js.",[16,182,183,186],{},[26,184,185],{},"Admin:"," Inertia.js with Vue 3 and Vuetify, fourteen screens, with per-section permissions (bookings, articles, services, banners, vehicle classes, advance rules, translations, users).",[16,188,189,192],{},[26,190,191],{},"Integrations:"," the operator's dispatch system for pricing, extra fees and pushing bookings back, Google Places for addresses, Monri WebPay for cards.",[16,194,195,198],{},[26,196,197],{},"SEO:"," a sitemap generated by crawling the site with hreflang alternates, seven JSON-LD schemas (organisation, local business, website, breadcrumbs, FAQ, site navigation), GA4, Google Ads and Clarity, each rendered only when its identifier is set.",[16,200,201,204],{},[26,202,203],{},"Scope:"," 12 models, 26 migrations, two languages (English and Montenegrin), around 95 commits between April and July 2026.",[16,206,207,208,213,214,218],{},"You can read how we approach projects like this on our ",[209,210,212],"a",{"href":211},"/en/services/web-development","Web development"," and ",[209,215,217],{"href":216},"/en/services/ux-and-web","UX and web"," pages.",[31,220],{},[11,222,224],{"id":223},"what-came-out-of-it","What came out of it",[16,226,227],{},"Working on this site showed that the same operator has two entirely different audiences. A guest looking for a wedding limousine and a passenger looking for an airport taxi do not search the same way and do not decide the same way.",[16,229,230,231,235,236,240],{},"So for the same client we also built ",[209,232,234],{"href":233},"/en/portfolio/podgorica-airport-taxi","Podgorica Airport Taxi",", a site focused purely on airport transfers with fixed prices per route. Both sites carry the Zayoto mark, and the experience from both is built into the transfers module on the ",[209,237,239],{"href":238},"/en/portfolio/zayoto","Zayoto platform",".",[31,242],{},[11,244,246],{"id":245},"visit-the-website","Visit the website",[16,248,249],{},[26,250,251],{},[209,252,256],{"href":253,"rel":254},"https://eliteride.me",[255],"nofollow","eliteride.me",[31,258],{},[16,260,261,262,266,267,240],{},"If you run a transport business and need a website that quotes and takes payment rather than simply showing vehicles, ",[209,263,265],{"href":264},"/en/contact","get in touch",". Have a look at the other ",[209,268,270],{"href":269},"/en/portfolio","projects in our portfolio",{"title":272,"searchDepth":273,"depth":273,"links":274},"",2,[275,276,277,278,279,280,281,282],{"id":13,"depth":273,"text":14},{"id":35,"depth":273,"text":36},{"id":68,"depth":273,"text":69},{"id":118,"depth":273,"text":119},{"id":155,"depth":273,"text":156},{"id":167,"depth":273,"text":168},{"id":223,"depth":273,"text":224},{"id":245,"depth":273,"text":246},"md",null,{"slug":286,"industry":287,"location":288,"countryCode":289,"year":290,"date":291,"cover":292,"gallery":295,"results":297,"pattern":310,"draft":315,"readingTime":316},"elite-ride","Premium transport and transfers","Zeta, Podgorica","ME",2026,"2026-07-18",{"src":293,"alt":294},"/portfolio/elite-ride/cover.webp","Elite Ride shown on a laptop, tablet and phone",[46,125,138,147,296],"/portfolio/elite-ride/mobile.webp",[298,301,304,307],{"label":299,"value":300},"Payments","Monri, 3-D Secure",{"label":302,"value":303},"Pricing","live per vehicle class",{"label":305,"value":306},"Admin","Vue panel",{"label":308,"value":309},"Languages","2",{"context":311,"challenge":312,"solution":313,"results":314},"Elite Ride Mugoša is a Montenegrin operator of premium transfers: airport transport, business travel, weddings and private tours, with a fleet ranging from limousines to minibuses.","The website had to work as a sales channel rather than a business card: the guest should get a price before asking anyone, and be able to pay by card, provided the bank approved the integration.","We built a Laravel site with live pricing per vehicle class from the dispatch system, card payments through Monri WebPay and a Vue admin panel for bookings and content.","The site is in production in English and Montenegrin, with card payments live, bookings synced back to the dispatch system and content the client manages independently.",false,{"text":317,"minutes":318,"time":319,"words":320},"5 min read",4.265,255900,853,true,"/en/portfolio/elite-ride",{"title":324,"description":325},"Elite Ride – Premium Chauffeur Service in Montenegro","A premium transfer website: live pricing per vehicle class, card payments through Monri WebPay and an admin panel for bookings. Read the case study.",{"loc":322,"priority":327,"changefreq":328,"lastmod":291,"images":329},0.8,"monthly",[330],{"loc":331,"caption":332},"https://leovacdigital.me/portfolio/elite-ride/cover.webp","Elite Ride – premium chauffeur service website in Montenegro","en/portfolio/elite-ride","G2ObYjEGDwZtMID3fKnPeOQNjqUrd2dXAvklfmcUjS8",1785756106729]