Bookerty

Short-term rental booking platform built for the Greek market, live at bookerty.gr. Full-stack SaaS with a property management system, reservation/booking engine, 9-language support, and a channel manager service that syncs listings with external booking platforms.

NestJSReactPostgreSQLPostGISTypeScript
bookerty.gr
Bookerty preview

Context

Fragmented Short-Term Rental Management in Greece

Greek short-term rental hosts juggle listings across multiple booking platforms with no unified system for managing properties, reservations, or availability. Most tools on the market are either built for other regions or too generic to handle local requirements like multi-language guest communication.

Hosts manually managing availability across several external booking platforms

No localized, Greek-first platform with proper multi-language support

Lack of geospatial search for discovering nearby or comparable properties

Reservation and property management handled through disconnected tools

Problem

Need for a Unified PMS with External Platform Sync

Hosts needed a single platform to manage properties and bookings while staying connected to the external channels their guests already use. That meant building both a solid core booking platform and a separate, independently scalable service to keep listings and availability in sync.

Designing a reservation engine that avoids double-bookings across channels

Keeping a channel manager service in sync with external platforms without coupling it to the core app

Supporting 9 languages across the guest and host experience

Geospatial search over property locations at reasonable query performance

Approach

Monorepo Platform with a Dedicated Channel Manager Service

Built as a pnpm-workspaces monorepo with a feature-based module structure and a typed API client generated from OpenAPI. The core platform handles the PMS and booking engine, while a separate channel manager microservice — its own NestJS backend, React frontend, PostgreSQL and Redis/BullMQ queue — handles service-to-service communication with external booking platforms independently.

Implementation Steps

1

Designed the core PMS and reservation/booking engine in NestJS 11 with TypeORM

2

Added PostGIS to PostgreSQL for geospatial search across property listings

3

Built the React 19 + Vite frontend with Tailwind CSS and Flowbite, supporting 9 languages (Greek as default)

4

Generated a typed API client from OpenAPI to keep frontend and backend in sync across the monorepo

5

Split the channel manager into its own service with Redis + BullMQ for queued sync jobs against external platforms

Technologies Used

NestJS 11TypeScriptPostgreSQLPostGISTypeORMReact 19ViteTailwind CSSFlowbiteRedisBullMQ

Impact

Live Platform Serving Real Hosts and Guests

Bookerty is live in production at bookerty.gr, serving real hosts and guests with a fully localized booking experience and a channel manager that keeps availability synced with external platforms.

Live in Production
Status
0
Languages Supported
Multi-service (core + channel manager)
Architecture
PostGIS-powered
Geospatial Search