Visitenkarte oder Vertriebskanal
Elite Ride Mugoša fährt Premium-Transfers in Montenegro. Flughafenbeförderung, Geschäftsfahrten, Hochzeiten, Privattouren. Die Flotte reicht von der Limousine für zwei bis zum Minibus für sechzehn Personen.
Solche Anbieter haben meist eine Website, die gut aussieht und nichts leistet. Ein Foto vom Auto, eine Leistungsliste, ein Kontaktformular, und dann Warten darauf, dass jemand eine Anfrage schickt und nach dem Preis fragt.
Unsere Aufgabe war, das umzudrehen: Der Gast soll einen Preis bekommen, bevor er irgendjemanden fragt, und sofort zahlen können, wenn er will.
Live-Preise je Fahrzeugklasse
Auf der Startseite liegt eine Buchungsleiste: Datum, Uhrzeit, Abholung und Ziel.

Adressen werden über eine Google-Places-Suche gewählt, die über unseren eigenen Server läuft und zwischengespeichert wird, also schnell ist und nicht bei jedem Tastendruck Kontingent verbraucht. Die Suche schlägt zuerst Treffer aus Montenegro vor und weitet dann auf die Region aus.
Nach der Bestätigung fragt das System einen Preis aus dem Dispositionssystem des Anbieters ab, für exakte Koordinaten und einen exakten Termin, und liefert einen Betrag für jede aktive Fahrzeugklasse. Neben dem Grundpreis kommen die Zuschläge hinzu, die der Anbieter erhebt: zusätzlicher Halt, Kindersitz, Empfang mit Namensschild, Trinkgeld, Kraftstoff, Flughafengebühr, Nachtfahrt und Stoßzeit.
Geht eine Buchung durch, wird sie an das Dispositionssystem zurückgegeben, sodass der Fahrer den Auftrag über das Werkzeug erhält, das er ohnehin nutzt. Nichts wird aus einer E-Mail in einen Plan abgetippt.
Eine Zahlung, die auf die Bank warten musste
Das war der längste Teil des Projekts, und er ist es wert, ehrlich erzählt zu werden.
Die Seite startete mit einem Gateway, und im Sommer 2026 sind wir auf Monri WebPay umgestiegen, auf deren Komponentenintegration. Der Umstieg bedeutete eine neue Anfragesignatur, eine neue Webhook-Prüfung und eine erneute Validierungsrunde mit der Bank.
Einige Entscheidungen haben das abgesichert:
- Der Webhook wird per Signatur geprüft, im Vergleich mit konstanter Laufzeit, sodass ein gefälschter Aufruf eine Buchung nicht als bezahlt markieren kann
- Der Schalter für die Kartenzahlung wirkt auf dem Server. Bis zur Freigabe durch die Bank lieferte der Zahlungsweg einen Fehler, und das Kartenfeld wurde gar nicht erst gerendert. Das war ein geschlossener Weg, keine versteckte Schaltfläche.
- „Bestellen und später zahlen" funktioniert immer, sodass das Geschäft während der Freigabe keinen einzigen Tag stillstand
- Es gibt eine eigene, passwortgeschützte Testseite, mit der die Bank die Integration an einer echten Transaktion prüft, ganz ohne Berührung mit dem Livebetrieb
Der Fußbereich trägt die Zeichen von Visa, Mastercard und Maestro, dazu Seiten zu Zahlungssicherheit, Stornierung und Rückerstattung, denn Kartenzahlung braucht auch einen rechtlichen Rahmen, nicht nur einen technischen.
Flotte und Leistungen, die der Kunde selbst pflegt

Die Fahrzeugklassen werden aus dem Dispositionssystem abgeglichen, aber alles, was der Gast sieht, bleibt beim Kunden: Bezeichnung, Beschreibung, Bilder, Reihenfolge per Ziehen und Ablegen sowie ein Sichtbarkeitsschalter. Der Abgleich holt bewusst keine lokal gelöschten Klassen zurück und überschreibt keine von Hand eingetragenen Bezeichnungen, weil sonst jeder Abgleich die Bearbeitung zunichtemachen würde.

Leistungen, Banner auf der Startseite und Nachrichten laufen über denselben Admin, mit einem Texteditor und Übersetzungen für beide Sprachen in Reitern.

Das Nachrichtenmodul ist keine Dekoration. Darüber greift die Seite saisonale Suchanfragen ab: eine neue Fluggesellschaft in Podgorica, Festivals, Hinweise zu Transfers. Das sind die Themen, die Gäste bringen, die ihre Reise erst planen.
Regeln, die den Fahrplan schützen
Fahrten werden nicht unbegrenzt angenommen. Im Admin werden Regeln zur Vorlaufzeit nach Entfernungsstufen ab Podgorica eingestellt, sodass für weite Fahrten mehr Vorlauf nötig ist. Die Entfernung wird zu einem festen Ausgangspunkt berechnet, sodass die Regel unabhängig davon greift, woher der Gast kommt.
Abgebrochene Buchungen werden durch eine geplante Aufgabe bereinigt, sodass die Buchungsliste nutzbar bleibt.
Unter der Haube
Backend: PHP 8.2, Laravel 13, Spatie-Pakete (Permission, Translatable, Sitemap, Honeypot), Sentry, reCAPTCHA Enterprise zusätzlich zu einem Honeypot.
Öffentliche Website: Blade mit einem SCSS-Thema und Alpine.js.
Admin: Inertia.js mit Vue 3 und Vuetify, vierzehn Ansichten, mit Zugriffsrechten je Bereich (Buchungen, Beiträge, Leistungen, Banner, Fahrzeugklassen, Vorlaufregeln, Übersetzungen, Benutzer).
Integrationen: das Dispositionssystem des Anbieters für Preise, Zuschläge und die Rückgabe von Buchungen, Google Places für Adressen, Monri WebPay für Karten.
SEO: eine Sitemap, die durch Durchlaufen der Seite erzeugt wird, mit hreflang-Angaben, sieben JSON-LD-Schemata (Organisation, lokales Unternehmen, Website, Brotkrumen, häufige Fragen, Seitennavigation), GA4, Google Ads und Clarity, jeweils nur eingebunden, wenn die Kennung gesetzt ist.
Umfang: 12 Modelle, 26 Migrationen, zwei Sprachen (Englisch und Montenegrinisch), rund 95 Commits von April bis Juli 2026.
Wie wir solche Projekte angehen, lesen Sie auf den Seiten Webentwicklung und UX und Web.
Was daraus entstanden ist
Die Arbeit an dieser Seite hat gezeigt, dass derselbe Anbieter zwei völlig verschiedene Zielgruppen hat. Ein Gast, der eine Hochzeitslimousine sucht, und ein Passagier, der ein Taxi vom Flughafen sucht, suchen nicht gleich und entscheiden nicht gleich.
Deshalb haben wir für denselben Kunden auch Podgorica Airport Taxi gebaut, eine Seite ausschließlich für Flughafentransfers mit Festpreisen je Strecke. Beide Seiten tragen den Zayoto-Vermerk, und die Erfahrung aus beiden steckt im Transfermodul der Zayoto-Plattform.
Zur Website
Wenn Sie ein Beförderungsunternehmen führen und eine Website brauchen, die einen Preis nennt und kassiert statt nur Fahrzeuge zu zeigen, melden Sie sich. Sehen Sie sich auch die anderen Projekte in unserem Portfolio an.