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 ReferencesThe Starting Point

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.
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.
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.
Outcome
A production-ready platform with 13 microservices, 3 frontend apps, Stripe payment integration, and channel management, handling bookings across multiple distribution channels.
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.



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.
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.
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.
Dark Mode
Light Mode
Primary
#36B4C6
Headline
Aa
Inter · Bold · 700
Buttons
Dark
#0C1222
Body
Aa
Inter · Regular · 400
Line Weights
1px · Accent
2px · Divider
4px · Section
Icons
Teal Dark
#07414A
Components
Villa Adriatic Sunset
Modernice built our complex platform with the highest technical precision. The microservices architecture allows us to respond quickly to market demands.
Crovillas GmbH
Management
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.
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.
Frontend
3x Nuxt 4 Apps
Monorepo with shared packages, server-side rendering, Tailwind CSS and shadcn for a consistent design system. Pinia for reactive state management.
API Gateway
Go + Chi Router
REST gateway orchestrating microservices with CORS handling, JWT authentication, and middleware pipeline.
Microservices
13 Bounded Contexts
Event-sourced aggregates with gRPC communication. Domain events are distributed via NATS, MongoDB serves as the event store.
Infrastructure
Docker Swarm + GCP
23+ containers with Docker Swarm. Traefik for routing and TLS, Varnish for caching, Terraform for IaC.
Tech Stack
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)
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.