Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻译准备中
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证AI assistant for calls you can't afford to forget: live translation, transcripts, notes, and follow-ups.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Voxandra is an AI platform for multilingual business calls. It translates both sides of live phone conversations, provides private guidance while people talk, and turns each call into a reviewed Call Record.
It runs in production at voxandra.com. This repository is the full app: the Next.js frontend, the Convex backend, and the realtime media worker that carries translated calls.
/api/mcp, using personal API keys created in the app.| Layer | Technology |
|---|---|
| Web app | Next.js (App Router), React, TypeScript, Tailwind CSS |
| Backend and database | Convex (queries, mutations, actions, crons) |
| Auth | Convex Auth: email codes, password, and Google |
| Telephony | Twilio Voice (browser calling, Media Streams, two-leg bridge) |
| Speech and AI | OpenAI (transcription, extraction, embeddings, realtime guidance) and Palabra (speech-to-speech translation) |
| Realtime media | Standalone Node WebSocket worker (scripts/realtime-media-worker.mjs) |
| Billing | Stripe |
| Resend | |
| Analytics | PostHog EU, browser only, no session replay |
src/app/ Next.js routes: public site, /app (signed-in), API routes, webhooks
src/components/ UI, grouped by area (landing, dashboard, calls, memory, dialer, ...)
src/lib/ Shared logic: pricing, billing, Twilio, AI prompts, MCP, rate tables
convex/ Backend: schema, functions, crons, auth, Stripe and Twilio flows
scripts/ Realtime media worker, test suite, smoke tests, rate sync
docs/ Supporting notes and evals
Longer-form docs are in the repo root:
AGENTS.md: the working guide for anyone, human or AI, changing this code. Covers architecture rules, product rules, and guardrails.ARCHITECTURE.md: background on auth, workspaces, and the data model.REALTIME_WORKER_RUNBOOK.md: how the translation worker is deployed and operated.Twilio, Stripe, Palabra, and PostHog are optional for running the app locally.
git clone https://github.com/areia-ai/voxandra.git
cd voxandra
npm install
cp .env.example .env.local
npx convex dev
On the first run you'll be asked to log in and create a project. This writes your own CONVEX_DEPLOYMENT and NEXT_PUBLIC_CONVEX_URL into .env.local, replacing the example values. Keep it running: it pushes backend changes as you edit convex/.
In a second terminal, generate the Convex Auth signing keys:
npx @convex-dev/auth
This sets JWT_PRIVATE_KEY, JWKS, and SITE_URL on your Convex deployment.
Convex functions read their secrets from the Convex deployment, not from .env.local:
npx convex env set OPENAI_API_KEY sk-...
npx convex env set RESEND_API_KEY re_...
For Google sign-in, also set AUTH_GOOGLE_ID and AUTH_GOOGLE_SECRET the same way.
npm run dev
Open http://localhost:3000, sign in, and a personal workspace is created for you.
.env.example lists every variable with comments. They're read in three places, and several must match across them:
| Where | How it's set | Examples |
|---|---|---|
| Next.js app (Vercel) | .env.local locally, project env in production | NEXT_PUBLIC_*, TWILIO_* for webhook validation, STRIPE_SECRET_KEY, MCP_CONVEX_SECRET, REALTIME_STREAM_SIGNING_SECRET |
| Convex | npx convex env set NAME value | OPENAI_API_KEY, RESEND_API_KEY, AUTH_*, TWILIO_* call limits and allowlists, STRIPE_CONVEX_WEBHOOK_SECRET, MCP_CONVEX_SECRET |
| Realtime worker | The worker host's environment | OPENAI_* realtime models, PALABRA_API_KEY, REALTIME_* tuning, REALTIME_CONVEX_WORKER_SECRET, REALTIME_STREAM_SIGNING_SECRET |
Optional features stay off until you configure them:
TWILIO_* block and set NEXT_PUBLIC_TWILIO_CALLING_ENABLED=true. Calls only go to destinations in TWILIO_ALLOWED_COUNTRIES or TWILIO_ALLOWED_NUMBERS that have a rate row. Refresh rates with npm run sync:twilio-rates.npm run realtime:worker) reachable over a public WebSocket URL set as REALTIME_MEDIA_STREAM_URL, plus the bridge flags described in the runbook./api/stripe/webhook.NEXT_PUBLIC_POSTHOG_KEY. Leave it blank and nothing is sent.| Command | What it does |
|---|---|
npm run dev | Start the Next.js dev server |
npx convex dev | Sync and watch Convex functions |
npm test | Run the full regression suite (no live calls or payments) |
npm run lint | Lint |
npm run build | Production build |
npm run realtime:worker | Run the realtime media worker |
npx convex codegen | Regenerate Convex types after schema or API changes |
The test:*-smoke, probe:*, eval:*, and prewarm:* scripts call paid provider APIs. Read the script before you run it.
Pull requests are open. CONTRIBUTING.md covers the contributor license agreement you'll be asked to sign along the way (individual or entity), where to report bugs and security issues, and the checks to run before opening a PR.
Never commit secrets, real phone numbers, or customer data. Use placeholder values in tests and docs.
Voxandra is licensed under the GNU Affero General Public License v3.0. If you run a modified version as a network service, you must make your modified source available to its users.