crovillas.com

Crovillas GmbH

Full-stack vakantiehuizenplatform: van de boekingservaring en het interne beheer tot het partnerportaal, naadloos geïntegreerd met betalingsverwerking, channelmanagement en realtime voorraad.

Terug naar referenties

18

Microservices

3

Frontend-apps

24

Docker-services

400+

API-endpoints

Projectoverzicht

Het vertrekpunt

Croatian coastline — the world Crovillas operates in

Crovillas, een aanbieder van luxe vakantiehuizen in Kroatië, stond voor een typisch brancheprobleem: boekingen verspreid over verschillende portalen, gefragmenteerd beheer, geen centrale toegang voor hosts. Crovillas had een systeem nodig dat alles samenbrengt - gastboekingen, intern dashboard en hostportaal.

Wat klinkt als drie afzonderlijke applicaties, is een nauw verweven ecosysteem. Realtime beschikbaarheid, automatische betalingsverdeling, naadloze koppeling met Booking.com en Airbnb. Onze aanpak: alle bedrijfslogica modulair modelleren en daarop drie gespecialiseerde frontends bouwen.

01

Uitdaging

Crovillas kwam met een visie naar ons: een platform voor luxe vakantiehuizen in Kroatië opbouwen - volledig vanaf nul. Geen bestaand systeem, geen legacysoftware, alleen het idee en de ambitie om een boekingsplatform, een operations-dashboard en een partnerportaal uit één geheel te creëren.

02

Aanpak

We hebben vanaf de grond af een modulaire monorepo-frontend met drie Nuxt-applicaties en gedeelde packages ontwikkeld, samen met een Go-microservicesbackend met Event Sourcing voor betrouwbaar statusbeheer en gecontaineriseerde deployment op GCP.

03

Resultaat

Een productierijp platform met 18 microservices, 3 frontend-apps, Stripe-betalingsintegratie en channelmanagement, dat boekingen via meerdere distributiekanalen afhandelt.

Platform

Drie apps, één systeem

Drie verbonden Nuxt-applicaties vormen de digitale ruggengraat van het platform, elk afgestemd op zijn gebruikersgroep en allemaal gebouwd op gedeelde packages.

backend.crovillas.com
Admin
crovillas.com
Catalogus
host.crovillas.com
Partner

Catalogus

De klantgerichte marktplaats voor luxe villa's met intelligente filtering op regio, voorzieningen en beschikbaarheid, meeslepende fotogalerijen, interactieve Mapbox-kaarten voor locatieverkenning en een volledige boekingsflow met seizoensprijzen, kortingscodes en realtime beschikbaarheidscontrole.

Vastgoedzoekfunctie met slimme filters
Interactieve Mapbox-regiokaarten
Boekingsflow met liveprijzen
Meertalig (18 talen)
SEO-geoptimaliseerde objectpagina's
Responsief op alle apparaten
Shared Go Microservices Backend

Merkidentiteit

Branding & Design System

Voor Crovillas hebben we een volledige merkidentiteit ontwikkeld die luxe, vertrouwen en de Kroatische levensstijl verenigt. Het resultaat: een consistent design system over drie platforms heen.

Logo & woordmerk

Het Crovillas-logo is een typografisch woordmerk in hoofdletters met ruime letterafstand. De heldere, minimalistische vormtaal straalt exclusiviteit en professionaliteit uit. In de primaire kleur teal op een donkere achtergrond komt het het sterkst tot zijn recht.

Crovillas

Design System

Het kleurensysteem is gebaseerd op een opvallend teal (#37B4C6) als primaire kleur, aangevuld met diep donkerblauw (#0D1117) voor achtergronden en donker teal (#07414A) als secundaire kleur. Mona Sans dient als consistente lettertypefamilie voor alle drie de platforms.

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 heeft ons complexe platform met de hoogste technische precisie gerealiseerd. De microservicesarchitectuur stelt ons in staat snel op marktvereisten te reageren.

Crovillas

Crovillas GmbH

Directie

Technische architectuur

Microservices & Event Sourcing

De backend is gebaseerd op Go-microservices met het Event Sourcing-pattern. Domain events als Single Source of Truth, opgeslagen in MongoDB, gecommuniceerd via gRPC en verspreid via NATS Event Bus.

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

Architectuurkeuzes

01

De frontend is georganiseerd als monorepo met drie Nuxt 4-applicaties, die gedeelde packages gebruiken voor UI-componenten, API-clients en typedefinities. Maximale herbruikbaarheid met duidelijke domeinscheiding.

02

Domain events vormen de Single Source of Truth: elke state change wordt als event in MongoDB opgeslagen en via NATS verspreid naar alle betrokken services. Dit maakt volledige audit trails en time-travel debugging mogelijk.

03

De interservicecommunicatie verloopt via gRPC met Protocol Buffers voor typesafe, performante aanroepen. Een REST-gateway vertaalt de gRPC-endpoints voor de frontend.

1

Frontend

3× Nuxt 4-apps

Nuxt 4Vue 3Tailwind CSSshadcnPinia

Monorepo met gedeelde packages, server-side rendering, Tailwind CSS en shadcn voor een consistent design system. Pinia voor reactief state management.

2

API-gateway

Go + Chi Router

GoChiJWTCORS

REST-gateway voor de orkestratie van microservices met CORS-afhandeling, JWT-authenticatie en middleware-pipeline.

3

Microservices

18 Go-services

gRPCMongoDBNATSEvent Sourcing

Event-sourced aggregates met gRPC-communicatie. Domain events worden via NATS verspreid, MongoDB fungeert als event store.

4

Infrastructuur

Docker Swarm + GCP

Docker SwarmTraefikVarnishTerraformGCP

24 containers met Docker Swarm. Traefik voor routing en TLS, Varnish voor caching, Terraform voor IaC.

Tech Stack

  • 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

Platformfeatures

Kernfuncties van het systeem

01

Villencatalogus

Uitgebreide villazoekfunctie met filtering op regio's, categorieën, voorzieningen en beschikbaarheid, inclusief gedetailleerde objectpagina's met fotogalerijen.

02

Boekingssysteem

Volledige boekingsflow met seizoensprijzen, kortingen, kortingscodes, flexibele annuleringsvoorwaarden en automatische bevestiging.

03

Betalingsverwerking

Stripe-integratie voor gastbetalingen en hostuitbetalingen via creditcard, PayPal, Klarna, iDEAL, Sofort, Bancontact en Przelewy24, plus bankoverschrijving, met geautomatiseerde facturatie en betalingsopvolging.

04

Channelmanagement

Bidirectionele synchronisatie via een channel manager: beschikbaarheid, prijzen en boekingen lopen in realtime tussen het platform en Booking.com, Airbnb, Expedia, Vrbo en andere portalen.

05

Interactieve kaarten

Op Mapbox gebaseerde regioverschaffing en objectlokalisatie met interactieve kaartweergaven en omgevingsinformatie.

06

E-mailautomatisering

Geautomatiseerde e-mailworkflows voor boekingsbevestigingen, herinneringen, betalingsverzoeken en aanmaningen, aangestuurd door de domain events van het platform.

07

Operations Center

Centraal dashboard voor boekingsbeheer, boekhouding, analyse en klantrelatiebeheer met rolgebaseerde toegang.

08

PDF-generatie

Geautomatiseerde creatie van facturen en boekingsbevestigingen als PDF via headless-browser-rendering.

09

Gastbeoordelingen

Gasten beoordelen het pand en de service apart en kunnen foto's toevoegen. De link komt per e-mail en een beoordeling gaat online zodra die in het operations center is goedgekeurd.

Opleveringen

  • 3 Nuxt 4-frontendapplicaties (catalogus, admin, hostportaal)
  • 18 Go-microservices met Event Sourcing
  • gRPC-communicatie met REST-API-gateway
  • Stripe-betalingsintegratie (gast & host)
  • Channelmanager-integratie (Booking.com, Airbnb, Expedia, Vrbo)
  • Interactieve kaarten met Mapbox GL
  • Geautomatiseerd e-mailsysteem
  • PDF-generatie (facturen, bevestigingen)
  • Docker Swarm-infrastructuur met 24 services
  • Varnish HTTP-caching & Traefik reverse proxy
  • Terraform Infrastructure-as-Code (GCP Frankfurt)
  • Internationalisering (18 talen)

Projectinzichten

Technische details en belangrijke beslissingen achter het Crovillas-project

Go biedt uitstekende prestaties bij hoge concurrency, een geringe memory footprint en compileert naar afzonderlijke binaries. Ideaal voor microservices. De sterke typering en het eenvoudige concurrency-model met goroutines maken robuuste, onderhoudbare services mogelijk.

Event Sourcing slaat elke state change op als immutable event. Dit maakt volledige audit trails, time-travel debugging, eenvoudige reproduceerbaarheid van fouten en de mogelijkheid om nieuwe projections uit historische data te creëren mogelijk. Bijzonder waardevol voor boekings- en betalingsprocessen.

Docker Swarm biedt voor het huidige schaalniveau de optimale balans tussen orkestratiemogelijkheden en operationele eenvoud. Het is native geïntegreerd in Docker, heeft aanzienlijk minder beheer nodig dan Kubernetes en kan indien nodig worden gemigreerd.

Het platform is via een eigen integratie gekoppeld aan een channel manager, die de distributie naar Booking.com, Airbnb, Expedia, Vrbo, Agoda en andere portalen verzorgt. Beschikbaarheid en prijzen worden naar buiten gestuurd en boekingen uit externe kanalen komen automatisch terug in het systeem.

Het platform is volledig beschikbaar in 18 talen. De i18n-architectuur met Nuxt i18n maakt het mogelijk om op elk moment eenvoudig extra talen toe te voegen zonder structurele wijzigingen aan de code.

De volledige infrastructuur is als Infrastructure-as-Code met Terraform gedefinieerd en draait op GCP in Frankfurt. 24 Docker-containers worden via Docker Swarm georkestreerd, met Traefik als reverse proxy voor automatische TLS en Varnish voor HTTP-caching.

Neem contact met ons op

Plan je een boekingsplatform of wil je een bestaand platform vervangen? Met Crovillas hebben we dat hele traject doorlopen. Laten we delen wat daarbij echt telt.