Home
Softono
farang-marketplace

farang-marketplace

Open source TypeScript
12
Stars
0
Forks
38
Issues
0
Watchers
3 weeks
Last Commit

About farang-marketplace

πŸ‡ΉπŸ‡­ Premium marketplace platform for Thailand β€” real estate, vehicles, services & more. Monorepo with microservices, CRM, Telegram Mini App and TON payments.

Platforms

Web Self-hosted

Languages

TypeScript

Links

πŸ‡¬πŸ‡§ English Β· πŸ‡·πŸ‡Ί Русский Β· πŸ‡ΉπŸ‡­ ΰΈ ΰΈ²ΰΈ©ΰΈ²ΰΉ„ΰΈ—ΰΈ’

πŸ‡ΉπŸ‡­ Farang Marketplace

CI Tests Coverage codecov TypeScript Bun License: MIT

Premium multilingual marketplace platform for Thailand β€” real estate, vehicles, services and more.


Overview

Farang Marketplace is a microservices monorepo connecting Thai locals, expats, and tourists on a single bilingual platform. It ships with an integrated CRM, Telegram Mini App, TON blockchain payments, and PromptPay support out of the box.

  • Universal listings β€” real estate, vehicles, equipment, services, jobs, events
  • Bilingual-first β€” English + Thai (ΰΉ„ΰΈ—ΰΈ’) as primary languages; Russian, Chinese, Arabic also supported
  • Integrated CRM β€” multi-channel inbox: Email Β· Telegram Β· WhatsApp with automated follow-ups
  • Telegram Mini App β€” browse and transact without leaving Telegram
  • Thai payments β€” PromptPay, local bank transfers, TON blockchain, Stripe
  • Premium positioning β€” international design standards trusted by both locals and expats

Architecture

farang-marketplace/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ web/              # React + Vite β€” main storefront
β”‚   β”œβ”€β”€ admin/            # React + Vite β€” admin panel
β”‚   └── ton-app/          # TON wallet mini app
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ api-gateway/      # Main entry point β€” routing & auth
β”‚   β”œβ”€β”€ user-service/     # Registration, profiles, JWT auth      :3001
β”‚   β”œβ”€β”€ listing-service/  # Listings CRUD, search, categories     :3003
β”‚   β”œβ”€β”€ booking-service/  # Reservations & availability           :3004
β”‚   β”œβ”€β”€ payment-service/  # TON Β· Stripe Β· PromptPay + BullMQ    :3009
β”‚   β”œβ”€β”€ crm-service/      # Leads, inbox, automated follow-ups   :3007
β”‚   β”œβ”€β”€ storage-service/  # MinIO S3 file uploads                 :3008
β”‚   └── agency-service/   # Agency accounts & listings            :3005
└── packages/
    β”œβ”€β”€ shared-types/     # Shared TypeScript interfaces
    β”œβ”€β”€ database-schema/  # Drizzle ORM schemas
    β”œβ”€β”€ logger/           # Pino structured logging
    └── i18n/             # i18next translations

Tech Stack

Category Technology
Runtime Bun 1.3+
Frontend React 19 + Vite 8
Backend Fastify microservices
Language TypeScript 6
Database PostgreSQL + Drizzle ORM
Cache / Queues Redis + BullMQ
File storage MinIO (S3-compatible)
Payments TON blockchain Β· Stripe Β· PromptPay
Messaging Telegram Bot API Β· WhatsApp Business API Β· Nodemailer
Monorepo Turborepo
Linting Biome
Testing Vitest
i18n i18next (EN Β· TH Β· RU Β· ZH Β· AR)

Quick Start

Prerequisites

Installation

git clone [email protected]:chatman-media/farang-marketplace.git
cd farang-marketplace
bun install

Start infrastructure

# Stop any local PostgreSQL to avoid port conflicts
brew services stop postgresql@14   # macOS

# Launch PostgreSQL + Redis + MinIO
docker-compose up -d

Run all services

bun run dev:ui
Service URL
Web app http://localhost:5173
Admin panel http://localhost:5174
API Gateway http://localhost:3000
User Service http://localhost:3001
Listing Service http://localhost:3003
Booking Service http://localhost:3004
CRM Service http://localhost:3007
Storage Service http://localhost:3008
Payment Service http://localhost:3009

Environment variables

Copy .env.example to .env in each service directory and fill in your credentials. All .env.test files are pre-configured for Docker Compose.


Available Scripts

Command Description
bun run dev Start all services in development mode
bun run dev:ui Start all services with Turborepo TUI panel
bun run build Build all apps and services for production
bun run test Run tests across all packages
bun run test:coverage Run tests with coverage report
bun run lint Lint all code with Biome
bun run lint:fix Auto-fix linting issues
bun run type-check TypeScript type checking
bun run docker:up Start Docker infrastructure
bun run docker:down Stop Docker infrastructure

Roadmap

Phase 1 β€” Foundation

  • [x] Monorepo with Turborepo
  • [x] Microservices: user, listing, booking, payment, CRM, storage, agency
  • [x] API Gateway with JWT auth
  • [x] PostgreSQL + Drizzle ORM
  • [x] MinIO file storage
  • [x] Redis + BullMQ job queues
  • [x] Multi-language i18n (EN Β· TH Β· RU Β· ZH Β· AR)
  • [x] CI/CD with GitHub Actions
  • [x] Test coverage with Codecov

Phase 2 β€” Product

  • [ ] Web storefront (React + Vite)
  • [ ] Admin panel
  • [ ] Telegram Bot notifications
  • [ ] Telegram Mini App
  • [ ] TON blockchain payments
  • [ ] PromptPay & Thai bank transfers
  • [ ] Stripe integration
  • [ ] CRM multi-channel inbox (Email Β· Telegram Β· WhatsApp)
  • [ ] Automated lead follow-ups

Phase 3 β€” Growth

  • [ ] Mobile app (PWA / React Native)
  • [ ] AI-powered search & recommendations
  • [ ] Agency portal
  • [ ] Analytics dashboard
  • [ ] Multi-region deployment
  • [ ] Public API + marketplace SDK

License

MIT Β© 2025 Chatman Media