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
Cash-offer pipeline
Translation pending
BusinessTypeScript · HTMLGitHub @Luis-zoodealioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
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 ↗A desktop CRM for working cash offers on homes through listing agents: who was contacted, notes per deal and per property, follow-ups as tasks, and a pipeline from first comping to closing.
Built from the design handoff in design_handoff_deal_crm/ (the HTML there is a reference, not code that ships).
Stack: Next.js 16 (App Router) · React 19 · TypeScript · Tailwind 4 · Postgres on Supabase (email login) · Drizzle ORM.
Dashboard · Leads (server-side filters, sorts, search, saved views, bulk actions, paging) · Board · Deal detail · Add/Edit deal · Tasks · Agents · Agent profile · Schedule modal · Settings.
Filtering, sorting, search and paging all run in the database, so Leads, the deal picker and agent search work with thousands of deals.
npm install
.env.example to .env.local and fill it in:
| Variable | Where to get it |
|---|---|
NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Project Settings → API |
DATABASE_URL | Supabase → Connect → Transaction pooler string (server only, never exposed to the browser) |
crm schema and leaves any other schema alone:
npm run db:migrate
/login:
npm run dev
[email protected] npm run db:seed
| Command | What it does |
|---|---|
npm run dev / build / start | Next.js |
npm run db:migrate | Applies db/migrations/*.sql in order, once each |
npm run db:seed | Sample data (refuses if the user already has deals) |
npm test | Unit tests for URL/filter parsing, formatting, time zones and the stage model |
npm run lint | ESLint |
proxy.ts protects every route except /login. Every query is scoped by the verified user id, every table has an owner column, and composite foreign keys stop a row from pointing at another user's deal. Row-level security is on for all tables, and the browser-facing roles have no access to the crm schema at all.app/(app)/… authenticated screens (dashboard, leads, board, deals, tasks, agents, settings)
app/login sign in / sign up
components/ shared UI (Button, Modal, Sidebar, ScheduleModal, …)
lib/ queries, server actions, spec/validation, formatting
db/migrations/ SQL schema (source of truth for constraints, triggers and RLS)
scripts/ migrate + seed
tests/ unit tests
Add the three environment variables above to the project, run npm run db:migrate once against the production database, and deploy. Use the pooler connection string for DATABASE_URL.
app/api/dealio (the Anthropic + DealioDesk MCP route) predates this build and is untouched; it needs ANTHROPIC_API_KEY, DEALIO_MCP_URL, DEALIO_MCP_TOKEN.