crovillas.com

Crovillas GmbH

Full-stack vacation rental platform. from the booking experience through internal operations to partner management, seamlessly integrated with payment processing, channel management, and real-time inventory.

Back to References
Project Overview

The Starting Point

Croatian coastline — the world Crovillas operates in

Crovillas, a luxury holiday home provider in Croatia, faced a typical industry challenge: bookings scattered across portals, fragmented management, no centralized access for property owners. Crovillas needed one system - guest booking, internal dashboard and owner portal.

What sounds like three separate apps is a tightly interwoven ecosystem. Real-time availability, automatic payment splitting, seamless Booking.com and Airbnb integration. Our approach: map the entire business logic in a modular backend, then build three specialized frontends on top.

01
Step 1

Challenge

Crovillas came to us with a vision: build a platform for luxury villa rentals in Croatia - entirely from scratch. No existing system, no legacy software, just the idea and the ambition to create a booking platform, an operations dashboard, and a partner portal as one cohesive product.

02
Step 2

Approach

We built everything from the ground up - a modular monorepo frontend with three Nuxt applications sharing packages, a Go microservices backend with event sourcing for reliable state management, and containerized deployment on GCP.

03
Step 3

Outcome

A production-ready platform with 13 microservices, 3 frontend apps, Stripe payment integration, and channel management, handling bookings across multiple distribution channels.

13
Microservices
3
Frontend Apps
23+
Docker Services
200+
API Endpoints
Platform

Three Apps, One System

Three interconnected Nuxt applications form the digital backbone of the platform. each tailored to its user group, all built on shared packages.

admin.crovillas.com
Admin
crovillas.com
Catalog
partner.crovillas.com
Partner

Catalog

The customer-facing luxury villa marketplace. featuring advanced filtering by region, amenities, and availability, immersive property galleries, interactive Mapbox maps for location discovery, and a complete booking flow with seasonal pricing, discount codes, and real-time availability checks.

Property search with smart filters
Interactive Mapbox region maps
Booking flow with live pricing
Multilingual (18 languages)
SEO-optimized property pages
Responsive across all devices
Shared Go Microservices Backend
Brand Identity

Branding & Design System

For Crovillas, we developed a complete brand identity that unites luxury, trust, and the Croatian lifestyle. The result: a consistent design system across three platforms.

Logo & Wordmark

The Crovillas logo is a typographic wordmark in uppercase with wide letter-spacing. The clean, minimal design conveys exclusivity and professionalism. It achieves its strongest impact in the primary teal color on a dark background.

Crovillas

Design System

The color system is built on a distinctive teal (#36B4C6) as the primary color, complemented by a deep dark blue (#0C1222) for backgrounds and a dark teal (#07414A) as the secondary color. Inter serves as the unified typeface across all three platforms.

Crovillas

Dark Mode

Crovillas

Light Mode

Primary

#36B4C6

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

Headline

Aa

Inter · Bold · 700

Buttons

Dark

#0C1222

Body

Aa

Inter · 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 built our complex platform with the highest technical precision. The microservices architecture allows us to respond quickly to market demands.
Crovillas

Crovillas GmbH

Management

Technical Architecture

Microservices & Event Sourcing

The backend is built on Go microservices using the event sourcing pattern. domain events as the single source of truth, stored in MongoDB, communicated via gRPC, and distributed through the NATS event bus.

API Gateway
Bookings
Payments
Properties
Guests
Channels
Auth
Notifications
Analytics
Media
Pricing
Reviews
Search
PDF

Architecture Decisions

The frontend is organized as a monorepo with three Nuxt 4 applications sharing packages for UI components, API clients, and type definitions. maximum reuse with clear domain separation.

Domain events serve as the single source of truth: every state change is persisted as an immutable event in MongoDB and distributed to all interested services via NATS. This enables complete audit trails and time-travel debugging.

Inter-service communication uses gRPC with Protocol Buffers for type-safe, high-performance calls. A REST gateway translates gRPC endpoints for the frontend.

1

Frontend

3x Nuxt 4 Apps

Nuxt 4Vue 3Tailwind CSSshadcnPinia

Monorepo with shared packages, server-side rendering, Tailwind CSS and shadcn for a consistent design system. Pinia for reactive state management.

2

API Gateway

Go + Chi Router

GoChiJWTCORS

REST gateway orchestrating microservices with CORS handling, JWT authentication, and middleware pipeline.

3

Microservices

13 Bounded Contexts

gRPCMongoDBNATSEvent Sourcing

Event-sourced aggregates with gRPC communication. Domain events are distributed via NATS, MongoDB serves as the event store.

4

Infrastructure

Docker Swarm + GCP

Docker SwarmTraefikVarnishTerraformGCP

23+ containers with Docker Swarm. Traefik for routing and TLS, Varnish for caching, Terraform for IaC.

Tech Stack

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

Core System Features

Villa Catalog

Comprehensive villa search with filtering by regions, categories, amenities, and availability. including detailed property pages with image galleries.

Booking Engine

Full booking flow with seasonal pricing, discounts, coupon codes, flexible cancellation policies, and automatic confirmation.

Payment Processing

Stripe integration for guest payments and host payouts with automated invoicing and payment tracking.

Channel Management

Bidirectional synchronization with Airbnb and Booking.com. availability, pricing, and bookings in real time.

Interactive Maps

Mapbox-powered regional discovery and property location with interactive map views and neighborhood information.

Email Automation

Automated email workflows for booking confirmations, reminders, payment requests, and dunning via the Postdog notification system.

Operations Center

Central dashboard for booking management, accounting, analytics, and customer relationship management with role-based access.

PDF Generation

Automated creation of invoices and booking confirmations as PDF via headless browser rendering.

Deliverables

  • 3 Nuxt 4 frontend applications (Catalog, Admin, Host Portal)
  • 13 Go microservices with event sourcing
  • gRPC communication with REST API gateway
  • Stripe payment integration (guest & host)
  • Channel manager integration (Airbnb, Booking.com)
  • Interactive maps with Mapbox GL
  • Automated email system (Postdog)
  • PDF generation (invoices, confirmations)
  • Docker Swarm infrastructure with 23+ services
  • Varnish HTTP caching & Traefik reverse proxy
  • Terraform infrastructure-as-code (GCP Frankfurt)
  • Internationalization (18 languages)
0
Microservices
0
Frontend Apps
0
Docker Services
0
API Endpoints

Project Insights

Technical details and key decisions behind the Crovillas project

Go offers excellent performance with high concurrency, low memory footprint, and compiles to single binaries. ideal for microservices. Strong typing and the simple concurrency model with goroutines enable robust, maintainable services.

Event sourcing stores every state change as an immutable event. This enables complete audit trails, time-travel debugging, easy error reproduction, and the ability to create new projections from historical data. particularly valuable for booking and payment processes.

Docker Swarm provides the optimal balance between orchestration capability and operational simplicity for the current scale. It's natively integrated with Docker, has significantly less management overhead than Kubernetes, and can be migrated when needed.

The channel manager synchronizes availability, pricing, and bookings bidirectionally with Airbnb and Booking.com. New bookings from external channels are automatically imported into the system, and price changes are distributed to all platforms in real time.

The platform is fully available in 18 languages. The i18n architecture with Nuxt i18n allows for easy addition of further languages at any time without structural code changes.

The entire infrastructure is defined as infrastructure-as-code with Terraform and runs on GCP in Frankfurt. 23+ Docker containers are orchestrated via Docker Swarm, with Traefik as reverse proxy for automatic TLS and Varnish for HTTP caching.

Get in Touch

Now that you've learned about our process, why not take the next step and let us help you take your online presence to the next level? Don't wait – schedule a call with us today and let's discuss how we can give your business the recognition it deserves.