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
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Dutiva is a Canadian HR-compliance platform — AI-assisted, jurisdiction-aware,
bilingual EN/FR. This repo implements the dutiva.ca marketing site and the
product workspace (AI Advisor, cases, employees, compliance, policies,
document studio, hiring and the careers portal, and supporting modules) —
backed by Supabase Postgres + edge functions, with row-level security
across the org-scoped data.Read the full README ↗Dutiva is a Canadian HR-compliance platform — AI-assisted, jurisdiction-aware, bilingual EN/FR. This repo implements the dutiva.ca marketing site and the product workspace (AI Advisor, cases, employees, compliance, policies, document studio, hiring and the careers portal, and supporting modules) — backed by Supabase Postgres + edge functions, with row-level security across the org-scoped data.
npm install
npm run dev # start the dev server
/ — marketing landing page (/fr in French)/demo — public read-only demo workspace, Northgate fixtures (/fr/demo)/pricing — plan comparison + Stripe checkout (/fr/tarifs)/templates — template catalogue preview (/fr/modeles)/help — Help Centre (/fr/aide)/careers — public job board (/fr/carrieres)/employer — employer sign-in, leads into the workspace (/fr/employeur)/workspace → /workspace/home — the workspaceNo env vars are needed for the marketing pages or the demo — both run on
bundled fixtures. Sign-in and the production workspace need
VITE_SUPABASE_URL + VITE_SUPABASE_ANON_KEY: copy .env.example to .env
and fill them in. The full route map is in CONVENTIONS.md.
Both surfaces are fully bilingual and themed (light/dark, persisted as
dutiva-theme). Public pages are language-scoped by URL (English unprefixed,
French under /fr) and prerendered to static HTML at build time for SEO;
the app surface follows the persisted dutiva-lang preference. See
docs/SEO_GEO_IMPLEMENTATION.md.
| Command | What it does |
|---|---|
npm run dev | Vite dev server |
npm run build | Typecheck + client/SSR builds + prerender + SEO validation |
npm run preview | Serve the production build |
npm run typecheck | tsc -b (strict) |
npm run lint | oxlint |
npm run test | Vitest (jsdom + Testing Library) |
npm run test:e2e | Playwright smoke on dist/ (hermetic — no Supabase; see e2e/README.md) |
npm run test:e2e:auth | Playwright production CRUD matrix (Supabase env required; skips cleanly when unset) |
npm run format | Prettier |
npm run db:types | Regenerate src/lib/supabase/database.types.ts (and the edge-function copy) from the linked project |
npm run db:snapshot | supabase db dump → supabase/schema.sql; db:document regenerates the schema doc from it |
npm run check | typecheck + lint + test + check:migrations + check:rls + check:facts + check:message-scopes + check:brand-assets + check:architecture + check:workspace-links + check:advisor-golden + check:db-types + check:edge-types |
Two Playwright suites run against the production build — see e2e/README.md.
npm run test:e2e — hermetic smoke (routing, hydration, consent, CSP). No credentials.npm run test:e2e:auth — signed-in admin production CRUD matrix (employees, cases, tasks, communications, memory). Requires Supabase env at build time plus SUPABASE_SERVICE_ROLE_KEY; exits 0 and skips when unset.Woodpecker: .woodpecker/e2e.yml (hermetic) and .woodpecker/e2e-auth.yml (auth).
This is the beginning of the README. Read the rest at the original. Read the full README ↗