Lalabase
티켓·문서·근무시간·고객대화를 한 곳에 모아 KI로 검색, 소프트웨어 기업 고객 프로젝트용, 오픈소스로 자체 서버·독일 클라우드에 배포
남아프리카 중소기업·무역·기관·비영리·학교를 위한 AI 기반 비즈니스 운영 시스템
AI-powered business operating system for South African SMEs, trades, agencies, NGOs and schools. Automate WhatsApp, debt recovery, payroll and your SARS compliance calendar, and get daily AI business
비즈니스TypeScript · JavaScriptGitHub @Nanda-Regine온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기AI business OS for SA SMEs — 5 specialist AI agents, WhatsApp-native, debt recovery automation, Xero invoicing
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
AI-powered business operating system for South African SMEs, NGOs, schools, and clinics.
"One AI system that runs your business. WhatsApp. Invoicing. Staff. Clients."
South African SMEs pay for 6–8 separate tools and still rely on WhatsApp groups, spreadsheets, and late-night phone calls to run their businesses. They're underserved by international SaaS tools designed for US markets — tools that don't understand load shedding, 11 official languages, POPIA compliance, or the reality of chasing invoices in an economy where cash flow is survival.README 전문 보기 ↗AI-powered business operating system for South African SMEs, NGOs, schools, and clinics.
"One AI system that runs your business. Invoicing. Compliance. Staff. Clients."
Status (26 Oct 2026): AdminOS is app-native today. The WhatsApp channel is built but not yet connected: Meta Tech Provider onboarding and message-template approval are in progress, so no customer messages are sent over WhatsApp yet.
Live product: https://adminos.co.za · Pitch deck: docs/hackathon/AdminOS-FNB-Hackathon-Pitch.pdf
AdminOS takes a young South African founder from "I have an idea" to "I run a business" with one loop: get paid → stay compliant → know your numbers → grow.
| Step | What is built and live today |
|---|---|
| Get paid | Branded tax invoices and payment receipts, Quick Sale (cash / walk-in), 5-tier automated debt-recovery agent, Cash Cockpit, bank-statement import and reconciliation (FNB / Capitec / ABSA / Standard Bank / Nedbank / TymeBank CSV: auto-categorised, payments matched to invoices and settled on one tap) |
| Stay compliant | 19 SARS / CIPC / COIDA obligations pre-loaded with the real penalty for missing each, dates rolled forward monthly, POPIA consent layer |
| Know your numbers | Chart-of-accounts categorisation from day one, health score, daily AI brief, accountant-ready exports (income statement, VAT, journal CSV), payroll with PAYE / UIF / SDL |
| Grow | Bookings with 24h reminders, inventory with reorder alerts, suppliers with B-BBEE scorecard, staff, tasks and goals |
| Built for SA | Mobile-first (tested at 390px), PWA / offline for load-shedding, English / isiZulu / isiXhosa / Afrikaans, Expo staff app |
Roadmap (not built yet — stated honestly): a live bank connection (today the bank loop is CSV upload), pay-from-invoice, and a consented credit-readiness profile for lenders.
Verification: npm test (238 passing) · CI runs tsc --noEmit, tests and a quality ratchet · scripts/persona-walk.mjs walks 7 industry personas on production (122/122) · scripts/hackathon/walk.mjs drives the demo tenant with Playwright at desktop and phone width and reports console errors, failed loads and horizontal overflow.
South African SMEs pay for 6–8 separate tools and still rely on WhatsApp groups, spreadsheets, and late-night phone calls to run their businesses. They're underserved by international SaaS tools designed for US markets — tools that don't understand load shedding, 11 official languages, POPIA compliance, or the reality of chasing invoices in an economy where cash flow is survival.
AdminOS replaces your entire toolstack with one AI-native platform. Specialised AI agents handle your inbox (over WhatsApp once it is connected), debt recovery, staff wellness, document intelligence, daily business analytics, and outbound email — automatically, 24/7, in your customers' language — plus Langa, an AI business mentor you can ask anything.
One platform, WhatsApp-first by design and app-native today, replacing the 6–8 separate tools most SA SMEs juggle to run their business.
| Agent | Role | Model | What it does |
|---|---|---|---|
| 📥 Alex | Inbox Agent | Sonnet | Handles client conversations, FAQs, bookings, escalations (WhatsApp channel pending connection) |
| 💰 Chase | Debt Recovery Agent | Haiku | 6-stage debt recovery. The first three stages (courteous reminders) can send automatically; stages 4–6 are drafted for the owner to approve, never auto-sent |
| 🌿 Care | Wellness Agent | Sonnet | Daily staff check-ins, burnout signal detection (planned: no user-facing surface yet) |
| 📄 Doc | Document Intelligence | Haiku | Classifies, summarises, and extracts data from PDF/Word/Excel uploads |
| 📊 Insight | Analytics Agent | Haiku | Daily AI business brief with revenue trends, cash flow, debt aging |
| ✉️ Pen | Email Studio | Sonnet | Drafts professional outbound emails in the tenant's brand voice |
| 🧭 Langa | AI Business Mentor | Sonnet | Ask-anything advisor — strategy, cashflow, pricing, growth, SA business reality |
cache_control: ephemeraltenant_id, enforced at DB levelx-hub-signature-256) and Paystack payment webhookslib/whatsapp/templates.ts); Meta approval pending| Layer | Technology |
|---|---|
| Frontend | Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4 |
| AI | Anthropic Claude claude-sonnet-4-6 (Sonnet + Haiku), prompt caching, streaming |
| Database | Supabase PostgreSQL, Supabase Auth, Row-Level Security |
| Caching / Rate Limiting | Upstash Redis (sliding window, analytics) |
| Meta Business API v19.0, inbound webhook, HMAC-SHA256 verification | |
| Resend API | |
| Accounting | Xero OAuth 2.0 API |
| Payments | Paystack recurring subscriptions (ZAR) + webhook verification |
| File Processing | pdf-parse, mammoth (Word), xlsx (spreadsheets) |
| Automation | Inngest (event-driven workflows), Vercel Cron |
| Hosting | Vercel Edge + Serverless Functions |
| Analytics | Vercel Analytics + Speed Insights |
| PWA | next-pwa, service worker, offline caching |
| Validation | Zod schemas on all form inputs |
Inbound WhatsApp message
↓
[Meta Webhook] → [HMAC-SHA256 x-hub-signature-256 verification]
↓
[sanitizeForAI()] ← strips 17 injection patterns, 2000-char limit
↓
[Supabase: load conversation history + tenant config]
↓
[buildSystemPrompt()] ← tenant context, agent personality, KB
↓
[Claude API]
└─ system: [TENANT_PROMPT (cached)] + [AGENT_INSTRUCTIONS (cached)]
└─ messages: conversation history
└─ model: claude-sonnet-4-6 (inbox/wellness) | claude-haiku-4-5-20251001 (debt/docs/analytics)
↓
[Response saved to DB] → [Meta API v19.0: send reply]
↓
[Audit log entry] → [Rate limit check update]
Prompt caching strategy: System prompts (2,000–5,000 tokens) are cached with cache_control: ephemeral, reducing input token costs by ~80% for conversations with tenant context.
Model routing:
const MODEL = {
inbox_agent: 'claude-sonnet-4-6', // Customer-facing, needs quality
wellness_agent: 'claude-sonnet-4-6', // Emotional nuance required
debt_recovery: 'claude-haiku-4-5-20251001', // Template-based
document_extract: 'claude-haiku-4-5-20251001', // Structured extraction
daily_brief: 'claude-haiku-4-5-20251001', // Summarisation
analytics: 'claude-haiku-4-5-20251001', // Data analysis
}
AdminOS uses Supabase Realtime for live dashboard updates without polling:
| Component | Table subscription | What updates |
|---|---|---|
LiveActivityFeed | messages INSERT | New WhatsApp messages appear instantly |
RealtimeNotificationBar | conversations UPDATE | Escalation alerts, status changes |
AgentStatusBar | workflow_runs INSERT/UPDATE | Agent active/idle state per tenant |
| Inbox unread count | conversations UPDATE | Badge count on sidebar nav item |
How it works:
// Supabase Realtime subscription (tenant-scoped)
supabase
.channel(`tenant:${tenantId}`)
.on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'messages',
filter: `tenant_id=eq.${tenantId}` }, handleNewMessage)
.subscribe()
RLS policies are enforced on the Realtime channel — a tenant can only subscribe to their own rows.
AdminOS is a Progressive Web App — installable on Android and iOS home screens, with offline resilience for South Africa's load-shedding reality.
Service worker cache strategy (next-pwa):
| Route type | Strategy | Behaviour during outage |
|---|---|---|
| Dashboard pages | NetworkFirst (5s timeout) | Shows last-cached version |
Static assets (/_next/static) | CacheFirst | Served from cache instantly |
API routes (/api/*) | NetworkOnly | Fails gracefully with offline toast |
| Fonts & icons | StaleWhileRevalidate | Instant load, background refresh |
Manifest (/public/manifest.json):
#0A0F2C (AdminOS navy)Load-shedding widget: EskomSePush API integration at /dashboard shows next scheduled outage time, so business owners can plan AI-dependent tasks around power availability.
| Schedule (UTC) | SAST | Route | Purpose |
|---|---|---|---|
0 3 * * 1-5 | 05:00 | /api/cron/daily-brief | Generate AI business brief per tenant |
0 */6 * * * | every 6h | /api/cron/debt-recovery | Debt recovery on overdue invoices |
0 7 * * 1,3 | 09:00 Mon/Wed | /api/cron/wellness | Staff wellness check-in messages |
0 5 * * 1-5 | 07:00 | /api/cron/fan-out-brief | Fan-out brief generation across Inngest workers |
0 6 * * 1-5 | 08:00 | /api/cron/fan-out-wellness | Fan-out wellness check-ins across workers |
* * * * * | every min | /api/cron/process-queue | Drain workflow_queue table → Inngest events |
*/15 * * * * | every 15 min | /api/cron/escalate-conversations | Escalate unresolved WhatsApp conversations |
Simple, Rand-priced monthly plans on Paystack. 14-day free trial — no card required.
| Tier | Price / month | Best for |
|---|---|---|
| Solo | R349 | Owner-operators & side hustles |
| Grow ⭐ | R899 | Small teams finding their feet |
| Operate | R1,999 | Established SMEs running daily ops |
| Scale | R3,999 | Multi-staff businesses at volume |
| Partner | R9,999 | Agencies, resellers & multi-tenant partners |
Add-ons: Ring (voice) R999 · Reach (extra WhatsApp reach) R499 · Client Portal R599 · Sage Sync R299 · Extra Languages R199.
AdminOS is built to comply with South Africa's Protection of Personal Information Act (POPIA, No. 4 of 2013):
DELETE /api/compliance/delete-contact# Clone
git clone https://github.com/Nanda-Regine/AdminOS
cd AdminOS/adminos
# Install
npm install
# Environment variables
cp .env.local.example .env.local
# Fill in all required keys — see .env.local.example for full list
# Required: NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY,
# SUPABASE_SERVICE_ROLE_KEY, ANTHROPIC_API_KEY,
# UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN,
# META_WHATSAPP_ACCESS_TOKEN, META_PHONE_NUMBER_ID, META_WEBHOOK_SECRET,
# RESEND_API_KEY, INNGEST_EVENT_KEY, INNGEST_SIGNING_KEY
# Apply database migrations
npx supabase db push
# Seed required tables (run once in Supabase SQL editor)
# See supabase/seed.sql — creates business_insights, subscriptions tables
# and inserts default plan limits for starter/growth/enterprise/white_label
# Start Next.js dev server
npm run dev
# In a separate terminal: start Inngest dev server (required for background jobs)
npx inngest-cli@latest dev
# Open http://localhost:8288 to inspect Inngest events and function runs
AdminOS is deployed to Vercel with zero-config from main branch:
# Production deploy
vercel --prod
# Environment variables (set in Vercel dashboard or CLI)
vercel env add ANTHROPIC_API_KEY production
vercel env add SUPABASE_SERVICE_ROLE_KEY production
# ... etc
Required Supabase tables (run migrations before first deploy):
tenants, users, conversations, messages, contactsinvoices, debtors, documents, staff, wellness_recordsworkflow_runs, audit_logs, subscriptions, business_insightsadminos/
├── app/
│ ├── page.tsx # Landing page
│ ├── layout.tsx # Root layout (metadata, analytics)
│ ├── (auth)/login|signup # Auth pages
│ ├── dashboard/ # Protected dashboard routes
│ │ ├── inbox/ # WhatsApp conversation inbox
│ │ ├── analytics/ # Business intelligence
│ │ ├── contacts/ # CRM
│ │ ├── documents/ # Document management
│ │ ├── invoices/ # Invoice tracking
│ │ └── settings/billing|compliance|referrals
│ ├── api/
│ │ ├── agents/[agentType]/ # Claude API proxy per agent
│ │ ├── billing/checkout|webhook
│ │ ├── cron/ # Scheduled automation
│ │ ├── documents/upload # File processing
│ │ └── webhook/whatsapp|email # Inbound webhooks
│ ├── privacy/ # Privacy Policy (POPIA)
│ ├── terms/ # Terms of Service
│ └── contact/ # Contact page
├── lib/
│ ├── ai/agents.ts # Server-side Claude agents
│ ├── ai/agents.config.ts # Client-safe agent config
│ ├── ai/buildSystemPrompt.ts # Prompt construction with caching
│ ├── security/sanitize.ts # Prompt injection protection
│ ├── security/rateLimit.ts # Upstash rate limiting
│ ├── security/audit.ts # Immutable audit logging
│ ├── workflows/debtRecovery.ts # Debt recovery workflow
│ ├── workflows/wellness.ts # Wellness check-in workflow
│ └── whatsapp/send.ts # Meta Business API v19.0 send utility
├── components/
│ ├── CookieConsent.tsx # POPIA-aware cookie banner
│ └── dashboard/Sidebar|TopBar
├── middleware.ts # Auth, trial enforcement, security headers
└── next.config.ts # PWA, CSP, HSTS, image optimisation
Built by Nandawula Regine Kabali-Kagwa | Mirembe Muse (Pty) Ltd
African-built, African-first. AdminOS is what happens when you stop trying to adapt international SaaS tools to African business realities and build from scratch for how SA businesses actually work: WhatsApp-first, multilingual, load-shedding-aware, POPIA-compliant, and priced for SME budgets.
Contact: [email protected] Demo: cal.com/nanda/adminos-demo Live: adminos.co.za
AdminOS · March 2026 · Mirembe Muse (Pty) Ltd · South Africa