Zettleinby Happy Sandboy
Menu

08 · Marketplace

A marketplace that closes deals, not just displays them.

Brokher.com is a Vue/Nuxt SSR app served through CloudFront. Its job is discovery and trust; the transaction happens on the same page via embedded Zettlein and Proassistly RPC.

Topology

Read-optimized on the edge.

 Crawler / user ──▶ CloudFront ──▶ Nuxt SSR ──▶ marketplace-svc (read model)
                                        │                 │
                                        │                 ├─ OpenSearch (facets)
                                        │                 ├─ Postgres (canonical)
                                        │                 └─ Redis (hot cards)
                                        │
                                        ▼
                                 Zettlein widget ──▶ ai-orchestrator-svc
                                        │
                                        ▼
                                    tool actions ──▶ Proassistly

Page anatomy

Every PDP is a transaction surface.

mkt/01

Media reel

Photos · plan · tour

AI-picked hero, floor plan, walkthrough video, 3D tour and neighborhood pack.

mkt/02

Truth panel

Price · title · rules

Price benchmark, title type (hard/soft/strata), foreign-ownership eligibility for the current visitor.

mkt/03

Legal note

Jurisdiction-aware

Auto-inserted disclosures per country and property type; sourced from the same DSL as the contract engine.

mkt/04

Recommended services

Stage-aware

Cleaning, staging, legal, valuation, financing — offered by proximity and reviews.

mkt/05

Zettlein assistant

Scoped to listing

Ask anything about this property; book a tour, run eligibility, submit an offer.

mkt/06

Contact & offer

Structured, not free-text

Offers are structured JSON, not messages. This is how Zettlein can negotiate.

SEO & i18n

Built to win Khmer, English and Chinese SERPs.

SSR + structured data

Nuxt · schema.org/RealEstateListing

Every property page renders server-side with schema.org markup, canonical URLs and language alternates.

Locale routing

/km /en /zh

Path-prefixed locales, hreflang tags, translated slugs, currency-aware pricing. Khmer is the default.

Programmatic hubs

City · district · category

Auto-generated hub pages (e.g. "Condos in BKK1 under $200k") backed by OpenSearch and refreshed on listing events.

Performance budget

LCP ≤ 2.0s on 4G

Edge cache, image formats (AVIF), lazy media, no client-side hydration for content-only pages.