Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
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.