Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Maxwell Midodzi — Real Estate CRM | eXp Realty
Translation pending
BusinessJavaScript · HTMLGitHub @mmaxwell33OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Custom real-estate CRM for Maxwell Delali Midodzi, REALTOR® at eXp Realty in St. John's, Newfoundland. Phone-installable PWA, daily-use production tool for managing real clients and real deals.
| Layer | Tech | Why |
|---|---|---|
| Frontend | Vanilla JS PWA (no framework) | Fast, offline-capable, installable on iPhone |
| Hosting | Vercel (auto-deploys from master) | Zero-config, instant global CDN |
| Database | Supabase (PostgreSQL + RLS) | Real-time, auth, storage, edge functions |
| Supabase Edge Function → Gmail API | Sends from Maxwell's real Gmail | |
| Push | Web Push / VAPID (RFC 8291) | Background push to phone even when app is closed |
| AI | Claude Haiku via Supabase Edge Function | In-app Ask AI feature |
| Tests | Vitest (unit) + Playwright + axe-core (e2e + a11y) | CI safety net on every PR |
git clone https://github.com/mmaxwell33/maxwell-dealflow.git
cd maxwell-dealflow
# Run tests
npm install
npm test # vitest unit tests
npm run test:e2e # playwright + axe (requires npm run serve in another tab)
# Serve the app locally (no build step needed)
npm run serve # localhost:3000
The site talks to the production Supabase project even in local dev — there's no separate dev DB. Be mindful when adding/editing data.
index.html — agent app shell, all screens and modals.js/app.js — core auth, routing, helpers (fmtDate, fmtMoney, esc,
escAttr, logError).js/clients.js, js/viewings.js, js/offers.js, js/extras.js,
js/notifications.js, etc. — one module per surface.respond.html, portal.html, intake.html, seller-intake.html —
public, no-login pages clients reach via token links.supabase/migrations/ — versioned SQL, run in order via Supabase
Dashboard's SQL Editor.supabase/functions/ — Deno edge functions (deploy with
supabase functions deploy <name>).css/app.css — single stylesheet, CSS variables in :root.[email protected] (Gmail OAuth via the
send-email edge function).[email protected] (used in intake/respond
pages and outgoing email signatures).Every push to master and every PR runs:
vitest run — 19 unit tests covering App.esc, App.escAttr,
App.fmtDate, App.fmtMoney with regression cases for the XSS attack
strings.playwright test — 3 public-surface smoke tests (lock screen, buyer
intake, seller intake). Verifies no console JS errors.axe-core (informational) — WCAG 2.1 AA violations log to CI output but
don't fail the build yet. Each violation gets fixed in its own small PR.GitHub Actions workflow lives at .github/workflows/ci.yml. Budget < 4 min.
Phase 2 of the 2026 refinement plan is in progress. See REFINEMENT_LOG.md
for the running list of shipped PRs.