Realestate
An Arabic-first property-discovery platform with an interactive MapLibre map, advanced filtering by type, location, bedrooms, area, and price, and a fully RTL glassmorphic UI. A v0.app-generated MVP template.
Browse properties on a live map, narrow by budget, location, type, and size, and open any listing to a gallery and the agent's contact. An Arabic-first, fully RTL discovery experience, built as a fast MVP template.
What it solves
- Property discovery is scattered across WhatsApp groups, classifieds, and agent contacts, with no unified search.
- Static listings lack visual context: buyers cannot see the neighborhood or nearby amenities.
- Buyers must chase many agents, with no self-service search by budget, location, or type.
- Arabic property sites often neglect RTL layout, making mobile browsing painful.
- With no saved state, buyers cannot keep favorites or track their inquiry history.
Impact
MapLibre + CartoDB tiles
Type, location, beds, area, price
Responsive glassmorphic UI

Architecture
Data flow
- Land on / → MapLibre hero (CartoDB tiles)
- Zoom / pan map (client-side only)
- Browse featured properties (hardcoded)
- /realestate → grid with filters
- Select filters → client-side reduce (no request)
- Click property → /realestate/[id] (gallery + specs)
- Contact form (future: Server Action → email)
- Sign up / log in (pages present, no persistence yet)
Engineering decisions
MapLibre GL + CartoDB instead of Google Maps
Free tiles, no API key, and lightweight — perfect for an MVP, with easy migration to custom tiles later.
v0.app-generated UI
Rapid iteration with design changes syncing to GitHub automatically; no custom CSS overhead for static listings.
Client-side filtering
Properties live as JSON in props or localStorage; no backend query layer yet — scales to ~500 listings before Postgres + Drizzle.
RTL-first Tailwind
dir="rtl" at the root and logical CSS properties (ms-*, me-*) flip padding and margins automatically — no extra RTL libraries.
Hardcoded properties for the MVP
No database overhead now; Firebase or Postgres can be added later without touching the UI.
Gallery

