crovillas.com

Crovillas GmbH

Plateforme de location de vacances full-stack : de l’expérience de réservation à la gestion interne et au portail partenaire, intégrée de manière fluide avec le traitement des paiements, la gestion des canaux et l’inventaire en temps réel.

Retour aux références

18

Microservices

3

Applications frontend

24

Services Docker

400+

Points de terminaison API

Aperçu du projet

Le point de départ

Croatian coastline — the world Crovillas operates in

Crovillas, un fournisseur de maisons de vacances de luxe en Croatie, faisait face à un problème typique du secteur : des réservations réparties sur différents portails, une gestion fragmentée, aucun accès centralisé pour les hôtes. Crovillas avait besoin d’un système réunissant tout : réservation client, tableau de bord interne et portail hôte.

Ce qui ressemble à trois applications distinctes est en réalité un écosystème étroitement intégré. Disponibilités en temps réel, répartition automatique des paiements, connexion fluide à Booking.com et Airbnb. Notre approche : modéliser l’ensemble de la logique métier de façon modulaire et construire dessus trois frontends spécialisés.

01

Défi

Crovillas est venu nous voir avec une vision : créer une plateforme pour des maisons de vacances de luxe en Croatie, entièrement à partir de zéro. Aucun système existant, aucun logiciel legacy, seulement l’idée et l’ambition de créer une plateforme de réservation, un tableau de bord des opérations et un portail partenaire parfaitement unifiés.

02

Approche

Nous avons développé de A à Z un frontend monorepo modulaire avec trois applications Nuxt et des packages partagés, complété par un backend de microservices Go avec Event Sourcing pour une gestion fiable des états, ainsi qu’un déploiement conteneurisé sur GCP.

03

Résultat

Une plateforme prête pour la production avec 18 microservices, 3 applications frontend, l’intégration des paiements Stripe et la gestion des canaux, traitant les réservations sur plusieurs canaux de distribution.

Plateforme

Trois applications, un système

Trois applications Nuxt interconnectées constituent l’épine dorsale numérique de la plateforme, chacune adaptée à son groupe d’utilisateurs et toutes reposant sur des packages communs.

backend.crovillas.com
Admin
crovillas.com
Catalogue
host.crovillas.com
Partenaire

Catalogue

La marketplace de villas de luxe orientée client, avec filtrage intelligent par région, équipements et disponibilité, galeries d’images immersives, cartes Mapbox interactives pour découvrir les emplacements et flux de réservation complet avec tarification saisonnière, codes de réduction et vérification des disponibilités en temps réel.

Recherche de propriétés avec filtres intelligents
Cartes régionales Mapbox interactives
Flux de réservation avec prix en direct
Multilingue (18 langues)
Pages de propriétés optimisées pour le SEO
Responsive sur tous les appareils
Shared Go Microservices Backend

Identité de marque

Branding & système de design

Pour Crovillas, nous avons développé une identité de marque complète qui associe luxe, confiance et art de vivre croate. Le résultat : un système de design cohérent sur trois plateformes.

Logo & wordmark

Le logo Crovillas est un wordmark typographique en majuscules avec un espacement généreux entre les lettres. Son langage formel clair et minimaliste véhicule exclusivité et professionnalisme. Il déploie tout son impact en teal, la couleur primaire, sur fond sombre.

Crovillas

Système de design

Le système de couleurs repose sur un teal distinctif (#37B4C6) comme couleur primaire, complété par un bleu nuit profond (#0D1117) pour les arrière-plans et un teal sombre (#07414A) comme couleur secondaire. Mona Sans sert de police de caractères uniforme sur les trois plateformes.

Crovillas

Dark Mode

Crovillas

Light Mode

Primary

#37B4C6

#D4F1F6
#A3E0EB
#6BCBDA
#37b4c6
#2A8F9E
#1F6B76

Headline

Aa

Mona Sans · Bold · 700

Buttons

Dark

#0D1117

Body

Aa

Mona Sans · Regular · 400

Line Weights

1px · Accent

2px · Divider

4px · Section

Icons

Villa
Calendar
Map
Payment
User
Mail

Teal Dark

#07414A

Components

Villen suchen...
Verfügbar Gebucht Entwurf

Villa Adriatic Sunset

85%

modernice a mis en œuvre notre plateforme complexe avec la plus grande précision technique. L’architecture de microservices nous permet de réagir rapidement aux exigences du marché.

Crovillas

Crovillas GmbH

Direction

Architecture technique

Microservices & Event Sourcing

Le backend repose sur des microservices Go utilisant le pattern Event Sourcing. Les événements de domaine constituent l’unique source de vérité, stockée dans MongoDB, communiquée via gRPC et distribuée par le bus d’événements NATS.

API Gateway
Catalog
Booking
Billing
Contact
Auth
Profile
Channels
PDF
Dunning
Accounting
Document
CRM
Notification

Décisions d’architecture

01

Le frontend est organisé sous forme de monorepo avec trois applications Nuxt 4 qui partagent des packages communs pour les composants UI, les clients API et les définitions de types. Réutilisation maximale avec une séparation claire des domaines.

02

Les événements de domaine constituent l’unique source de vérité : chaque changement d’état est persisté comme événement dans MongoDB et distribué via NATS à tous les services concernés. Cela permet des pistes d’audit complètes et du débogage temporel.

03

La communication interservices s’effectue via gRPC avec Protocol Buffers pour des appels performants et typés de manière sûre. Une passerelle REST traduit les points de terminaison gRPC pour le frontend.

1

Frontend

3× applications Nuxt 4

Nuxt 4Vue 3Tailwind CSSshadcnPinia

Monorepo avec des packages partagés, rendu côté serveur, Tailwind CSS et shadcn pour un système de design cohérent. Pinia pour une gestion réactive de l’état.

2

Passerelle API

Go + Chi Router

GoChiJWTCORS

Passerelle REST pour l’orchestration des microservices avec gestion CORS, authentification JWT et pipeline de middleware.

3

Microservices

18 services Go

gRPCMongoDBNATSEvent Sourcing

Agrégats basés sur l’Event Sourcing avec communication gRPC. Les événements de domaine sont distribués via NATS, MongoDB servant de magasin d’événements.

4

Infrastructure

Docker Swarm + GCP

Docker SwarmTraefikVarnishTerraformGCP

24 conteneurs avec Docker Swarm. Traefik pour le routage et TLS, Varnish pour le cache, Terraform pour l’IaC.

Stack technique

  • Nuxt 4 + Vue 3
  • Go 1.25
  • gRPC + Protocol Buffers
  • MongoDB (Event Store)
  • NATS (Event Bus)
  • Tailwind CSS + shadcn
  • Pinia (State)
  • Stripe (Payments)
  • Mapbox GL
  • Docker Swarm
  • Traefik + Varnish
  • Terraform + GCP

Fonctionnalités de la plateforme

Fonctionnalités principales du système

01

Catalogue de villas

Recherche complète de villas avec filtres par région, catégorie, équipements et disponibilité, incluant des pages de propriétés détaillées avec galeries d’images.

02

Système de réservation

Flux de réservation complet avec tarifs saisonniers, réductions, codes promo, politiques d’annulation flexibles et confirmation automatique.

03

Traitement des paiements

Intégration Stripe pour les paiements clients et les versements aux hôtes par carte bancaire, PayPal, Klarna, iDEAL, Sofort, Bancontact et Przelewy24, ainsi que par virement, avec facturation et suivi des paiements automatisés.

04

Gestion des canaux

Synchronisation bidirectionnelle via un channel manager : disponibilités, prix et réservations circulent en temps réel entre la plateforme et Booking.com, Airbnb, Expedia, Vrbo et d’autres portails.

05

Cartes interactives

Découverte des régions et localisation des propriétés basées sur Mapbox, avec vues cartographiques interactives et informations sur les environs.

06

Automatisation des e-mails

Workflows d’e-mails automatisés pour les confirmations de réservation, rappels, demandes de paiement et relances, déclenchés par les domain events de la plateforme.

07

Centre des opérations

Tableau de bord centralisé pour la gestion des réservations, la comptabilité, l’analytique et la gestion de la relation client avec accès basé sur les rôles.

08

Génération de PDF

Création automatisée de factures et de confirmations de réservation au format PDF via rendu par navigateur headless.

09

Avis des voyageurs

Les voyageurs notent séparément le bien et le service et peuvent joindre des photos. Le lien arrive par e-mail, et un avis n’est publié qu’après validation dans le centre d’opérations.

Livrables

  • 3 applications frontend Nuxt 4 (catalogue, admin, portail hôte)
  • 18 microservices Go avec Event Sourcing
  • Communication gRPC avec passerelle API REST
  • Intégration des paiements Stripe (client & hôte)
  • Intégration du channel manager (Booking.com, Airbnb, Expedia, Vrbo)
  • Cartes interactives avec Mapbox GL
  • Système d’e-mails automatisé
  • Génération de PDF (factures, confirmations)
  • Infrastructure Docker Swarm avec 24 services
  • Cache HTTP Varnish & reverse proxy Traefik
  • Infrastructure-as-Code Terraform (GCP Francfort)
  • Internationalisation (18 langues)

Aperçus du projet

Détails techniques et décisions clés derrière le projet Crovillas

Go offre d’excellentes performances en cas de forte concurrence, une faible empreinte mémoire et se compile en binaires uniques. Idéal pour les microservices. Son typage fort et son modèle de concurrence simple avec les goroutines permettent de créer des services robustes et maintenables.

L’Event Sourcing enregistre chaque changement d’état comme un événement immuable. Cela permet des pistes d’audit complètes, du débogage temporel, une reproduction simple des erreurs et la création de nouvelles projections à partir de données historiques. C’est particulièrement précieux pour les processus de réservation et de paiement.

Docker Swarm offre, au niveau de mise à l’échelle actuel, l’équilibre optimal entre capacité d’orchestration et simplicité opérationnelle. Il est intégré nativement à Docker, demande nettement moins d’administration que Kubernetes et permet une migration si nécessaire.

La plateforme est reliée à un channel manager par une intégration dédiée, qui assure la distribution vers Booking.com, Airbnb, Expedia, Vrbo, Agoda et d’autres portails. Les disponibilités et les prix sont diffusés, et les réservations issues des canaux externes reviennent automatiquement dans le système.

La plateforme est entièrement disponible en 18 langues. L’architecture i18n avec Nuxt i18n permet d’ajouter facilement d’autres langues à tout moment, sans modification structurelle du code.

Toute l’infrastructure est définie comme Infrastructure-as-Code avec Terraform et fonctionne sur GCP à Francfort. 24 conteneurs Docker sont orchestrés via Docker Swarm, avec Traefik comme reverse proxy pour le TLS automatique et Varnish pour le cache HTTP.

Prends contact avec nous

Tu prévois une plateforme de réservation ou tu veux en remplacer une ? Avec Crovillas, nous avons fait ce chemin de bout en bout. Parlons de ce qui compte vraiment en route.