Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗SnapQuote is a field-first quoting app for owner-operators and small trade crews.
Core promise:
Quote the job before you drive off.
It is built for the jobs where office software usually fails:
As of 2026-03-10, this repository is in "private beta ready" territory.
Validated locally:
pnpm lintpnpm testpnpm test:e2epnpm buildpnpm startpnpm smoke:deploy --base-url=http://127.0.0.1:3000Not yet proven enough for broad paid launch:
See:
| Area | Stack |
|---|---|
| Frontend | Next.js 16, React 18, TypeScript, Tailwind CSS |
| Local-first | IndexedDB via idb, service worker |
| Backend | Supabase Auth, Postgres, Edge Functions |
| AI | OpenAI and optional Gemini provider fallback |
| Documents | @react-pdf/renderer |
| Payments | Stripe + Stripe Connect |
| Messaging | Resend and optional Twilio |
pnpm install
cp .env.example .env.local
pnpm dev
Open http://localhost:3000.
Use .env.example as the source of truth.
Required for the core quote flow:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYOPENAI_API_KEYRequired for billing:
STRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRETSTRIPE_BILLING_WEBHOOK_SECRETSTRIPE_BILLING_PRICE_STARTER_MONTHLYSTRIPE_BILLING_PRICE_PRO_MONTHLYSTRIPE_BILLING_PRICE_TEAM_MONTHLYRequired for email and operational alerts:
RESEND_API_KEYOPS_ALERT_EMAILOptional but recommended:
CRON_SECRETRATE_LIMIT_PROVIDER=upstashUPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKENTWILIO_ACCOUNT_SIDTWILIO_AUTH_TOKENTWILIO_FROM_NUMBERGEMINI_API_KEYOAuth and magic-link redirects must point at a domain that actually resolves.
If sign-in lands on snapquote.app with DNS_PROBE_FINISHED_NXDOMAIN, either
connect DNS for that domain or replace it in Supabase with the real production
URL.
In Supabase Dashboard -> Authentication -> URL Configuration:
https://<production-domain>/**http://localhost:3000/**https://*-<vercel-team-or-account-slug>.vercel.app/**In Authentication -> Providers -> Google:
https://<project-ref>.supabase.co/auth/v1/callback.If custom Supabase email templates are enabled, make sure magic-link templates
use {{ .RedirectTo }} rather than hard-coding {{ .SiteURL }} so the app's
/auth/callback redirect is honored.
pnpm dev
pnpm lint
pnpm test
pnpm test:e2e
pnpm build
pnpm start
pnpm validate:env --preset=beta
pnpm smoke:deploy --base-url=http://127.0.0.1:3000
app/
api/ API routes for AI, billing, messaging, sync, analytics
landing/ Marketing landing page
new-estimate/ Core field quote builder
pricing/ Self-serve pricing page
components/
audio-recorder.tsx Voice capture UI
estimate-pdf.tsx PDF document renderer
pdf-preview-modal.tsx Quote preview and download
lib/
db.ts IndexedDB stores
estimates-storage.ts Local quote persistence helpers
rate-limit.ts Memory and Upstash rate limiting
server/ Auth, billing, usage quota helpers
MIT