Getting Started
Introduction to the 1 OAK MLS Platform - Multi-tenant MLS/IDX platform for real estate agents
1 OAK MLS Platform
Welcome to the documentation for the 1 OAK MLS Platform — a multi-tenant real estate listing platform that powers agent websites with MLS data.
Overview
This platform:
- Ingests MLS data from Bridge Interactive (RESO Web API / OData)
- Stores canonical listings in Supabase Postgres
- Indexes to Typesense for fast faceted search
- Serves Next.js admin (internal) + client sites (per-agent marketing sites)
- Supports agent photo uploads with MLS fallback
- Provides service area pages for neighborhood browsing
- Offers categorized import tasks (personal, office, search, custom)
First client: Lainey Levin (Workspace #1)
Scope: Miami-area luxury real estate, ~2,000+ listings
Tech Stack
| Layer | Technology |
|---|---|
| Database | Supabase (Postgres + Auth + RLS) |
| Search | Typesense (self-hosted or Typesense Cloud) |
| Frontend | Next.js 14+ (App Router) |
| Styling | Tailwind CSS |
| Sync Worker | Node.js/TypeScript |
| Deployment | Vercel (frontend) + Supabase (backend) |
Architecture
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Bridge/RESO │────▶│ Sync Worker │────▶│ Supabase │
│ (MLS Data) │ │ (Node.js/TS) │ │ (Postgres) │
└─────────────────┘ └──────────────────┘ └────────┬────────┘
│ │
▼ │
┌──────────────────┐ │
│ Typesense │◀─────────────┘
│ (Search Index) │
└────────┬─────────┘
│
┌────────────┴────────────┐
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Admin App │ │ Client Sites │
│ (Internal) │ │ (Per-Agent) │
└──────────────┘ └──────────────┘Key Design Principles
- Multi-tenant first: Every table has
workspace_id. No exceptions. - Source of truth: Postgres is canonical; Typesense is derived index
- Incremental sync: Use
ModificationTimestampto pull only changes - Keep raw data: Store original MLS payload in
listings.rawfor debugging - Compliance ready: Each workspace can configure attribution/disclaimer text
Quick Links
Core Architecture
- Database Schema — Full Postgres schema with explanations
- Typesense Search — Collection schema and search config
- Sync Worker — Sync worker specification
- Bridge API — Bridge Interactive API reference
Features
- Service Areas — Geographic neighborhood pages and filtering
- Import Tasks — Configurable listing import categories
- Photo Management — Agent uploads and MLS photo fallback
- Client Site — Public-facing agent website