The all-in-one platform for vacation rentals. Build stunning websites, manage bookings, and grow your business.
The Shopify of Vacation Rentals - Every property owner gets a beautiful website, powerful booking engine, and smart tools to grow their business.
Eilat's premier vacation rental brand, powered by Hostly.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Database: PostgreSQL (Supabase)
- ORM: Prisma
- Cache: Redis (Upstash)
- Payments: Stripe Connect
- Email: Resend
- Styling: Tailwind CSS
# Install dependencies
pnpm install
# Set up environment
cp .env.example .env.local
# Push database schema
pnpm db:push
# Generate Prisma client
pnpm db:generate
# Seed database
pnpm db:seed
# Start development server
pnpm devPOST /api/v1/auth/register- Create account + organizationPOST /api/v1/auth/login- LoginPOST /api/v1/auth/refresh- Refresh token
GET /api/v1/properties- List propertiesPOST /api/v1/properties- Create propertyGET /api/v1/properties/:id- Get propertyPUT /api/v1/properties/:id- Update propertyDELETE /api/v1/properties/:id- Delete propertyPOST /api/v1/properties/:id/publish- Publish property
POST /api/v1/integrations/boom/sync- Sync with Boom PMS
hostly-platform/
├── prisma/
│ ├── schema.prisma # Database schema (17 tables)
│ └── seed.ts # Seed data for Rently
├── src/
│ ├── app/
│ │ ├── api/v1/ # REST API routes
│ │ └── page.tsx # Landing page
│ ├── lib/
│ │ ├── auth/ # JWT authentication
│ │ ├── db/ # Prisma client
│ │ ├── integrations/ # Boom API client
│ │ ├── services/ # Business logic
│ │ └── utils/ # API helpers, ID generators
│ └── types/ # TypeScript definitions
└── package.json
- Multi-tenant from Day 1: Row-Level Security (RLS) ensures complete data isolation
- Event-driven: All changes logged to event store for audit trail
- API-first: Every feature accessible via REST API
- Modular Monolith: Clean service boundaries, extract when needed
Proprietary - All rights reserved