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.
Translation pending
It answers when you are busy, after hours, on another call, or the line is off, so you do not miss the client.
BusinessJavaScript · TypeScriptGitHub @glclientacquisition-maxOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
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
Business Assistant
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Scalers (scalers.co.ke) is a Kenya-focused multi-tenant Business Assistant.
A business gets a phone number. When a call is missed, busy, or after hours, the assistant answers, takes the caller's name and reason, and notifies the owner.
The owner works in the Desk: setup, the call inbox, contacts, approve-first SMS and WhatsApp, and package usage.Read the full README ↗New agent? Start at
docs/STATUS.md: current status, environments, what's in flight, and the rules. Then readAGENTS.md.
Scalers (scalers.co.ke) is a Kenya-focused multi-tenant Business Assistant.
A business gets a phone number. When a call is missed, busy, or after hours, the assistant answers, takes the caller's name and reason, and notifies the owner.
The owner works in the Desk: setup, the call inbox, contacts, approve-first SMS and WhatsApp, and package usage.
/admin/packages. Hangup meters included minutes after the package SQL is applied. Beta tenants are metered and not charged while billing enforcement is off. Owner M-Pesa checkout is not shipped.docs/archive/LIVE_TRANSFER.md.docs/reference/operations/PACKAGES.md.Two apps, one git repo. They deploy separately. There is no npm workspace.
| Path | What it is |
|---|---|
server.js | Voice HTTP server, media websocket, and turn loop. Railway starts this file. Leave it at the repo root. |
db.js | Re-exports src/db.js. |
src/speech/ | Soniox speech, turn-taking, pronunciation. |
src/conversation/ | Brain: tools, playbooks, caller memory. Runtime prompt text is src/prompts.js. |
src/notifications/ | SMS, WhatsApp, and email. |
src/sautikit/ | Webhook guard. |
src/billing/ | Package overage and transfer-leg helpers. |
src/db.js | Voice database API. Platform owns this surface. |
dashboard/ | Desk and Super Admin. Vercel root directory is dashboard. |
docs/ | Product, ops, SQL, and lane docs. Start at docs/README.md. |
tests/ | Node tests for voice, brain, and desk units. |
scripts/ | Smoke checks, tunnels, and one-off jobs. Index: scripts/README.md. |
evals/ | Brain eval fixture. Run npm run eval:brain. |
Dockerfile, railway.toml, render.yaml | Voice deploy. Render is the alternate host. |
How the pieces fit, in one page: docs/explanation/architecture/SYSTEM_ARCHITECTURE.md.
Lanes (Voice, Brain, Desk, Ops & Billing, Platform): AGENTS.md.
server.js is still one process. The target split is docs/explanation/architecture/TARGET_MODULE_LAYOUT.md. Do that extract in its own pull request, with no behavior change.
Use Node 22. That is the version in the voice image.
cp .env.example .env
npm ci
npm start
SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY are required to boot. A full call also needs GEMINI_API_KEY and SONIOX_API_KEY. Copy names from .env.example. Do not commit .env.
SQL is applied by hand. Order: docs/supabase/README.md.
To take a SautiKit test call against your laptop:
npm run tunnel:cloudflared
Steps: docs/how-to/WEBHOOK_TUNNEL.md.
Optional DB check, when Supabase env is set: npm run smoke:db.
cd dashboard
cp .env.example .env.local
npm ci
npm run dev
Variable names are in dashboard/.env.example. Keep SUPABASE_SERVICE_ROLE_KEY on the server. Never put it in a NEXT_PUBLIC_ variable.
More Desk notes: dashboard/README.md.
npm run test:voice
npm run test:brain
npm run test:mvp
cd dashboard && npm run build
Pull requests to main run the same commands in .github/workflows/ci.yml.
| Start here | Why |
|---|---|
docs/README.md | Where each doc folder lives |
CONTEXT.md | Words we use |
AGENTS.md | Which lane may edit which paths |
docs/explanation/architecture/CURRENT_STATE.md | What the system is today |
docs/explanation/governance/SOURCE_OF_TRUTH.md | Which file is canonical |
CONTRIBUTING.md | Branch, PR, and test rules |
CHANGELOG.md | Notable changes. Older work is in git, not in version tags. |
| Piece | Choice |
|---|---|
| Telephony | SautiKit |
| Speech | Soniox STT and TTS |
| Reasoning | Google Gemini |
| Voice process | Node.js, Express, WebSocket, on Railway |
| Desk | Next.js on Vercel |
| Data, auth, files | Supabase |