A collaborative agreement negotiation platform for real estate, featuring AI-powered document review, real-time co-editing, and Stripe billing.
Reach streamlines real estate transactions by giving agents and clients a shared workspace to draft, negotiate, and finalize agreements. Key capabilities include:
- Real-time collaborative editing — Multiple users edit the same document simultaneously via Yjs and Lexical
- AI document review — OpenAI-powered clause analysis, risk flagging, and suggested edits
- Threaded comments — Inline discussion on specific document sections
- Stripe billing — Subscription tiers (Starter, Pro, Max) with metered usage
- Property data integration — Bridge API for property lookups, Google Maps for location context
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TypeScript, Tailwind CSS, Radix UI |
| Editor | Lexical, Yjs, y-websocket |
| Backend | Django 4.2, Django REST Framework, Channels (WebSockets) |
| Database | PostgreSQL, Redis |
| AI | OpenAI API |
| Payments | Stripe |
| Infrastructure | Gunicorn, Daphne, WhiteNoise |
reach/
├── frontend/ # Next.js app (UI, editor, Stripe checkout)
├── backend/ # Django API (auth, documents, AI, billing)
├── y-websocket/ # Yjs WebSocket server (real-time sync)
└── assets/ # Demo GIF and static assets
- Python 3.11+
- Node.js 18+
- PostgreSQL
- Redis
cd backend
python -m venv venv
source venv/bin/activate
pip install pip-tools
pip-compile requirements.in
pip install -r requirements.txt
cp .env.example .env
# Fill in required values in .env
python manage.py migrate
python manage.py runservercd frontend
npm install
cp .env.local.example .env.local
# Fill in required values in .env.local
npm run devcd y-websocket
npm install
npm startSee backend/.env.example and frontend/.env.local.example for the full list of required environment variables.
This project is licensed under the MIT License. See LICENSE for details.
