35
AI • SaaS • Productivity
Ultranivo turns your own content into a branded AI assistant your audience can chat with — on your own domain, or embedded on your existing site with a copy-paste snippet.
The problem. The answer someone needs is usually already published. It just sits at minute 43 of a two-hour video whose title never mentions it, or on page 211 of a scanned PDF with no text layer. Titles and descriptions get indexed; what was actually said doesn't. Search finds the file, not the answer inside it.
What it does. Upload documents (PDF, DOCX), upload videos directly, or point it at a YouTube channel. Ultranivo reads them — scanned pages via OCR, video via captions or speech-to-text — and gives you an assistant that answers only from that material. Every answer cites its source: the exact page of a document, or the exact moment in a video, linked so anyone can check it. If the answer isn't in your content, it says so rather than filling the gap.
Who it's for. Businesses, non-profits, academies, creators — anyone with knowledge or information to share, or earn from. A support library nobody reads, years of recorded lectures, a documentation archive, a back catalogue of long videos.
- A branded assistant on your own domain — your name, logo, colours and tone
- Or a copy-paste widget embedded on your existing site
- Answers confined to your content, cited to the page or timestamp
- Installs from the browser on desktop or mobile, under your brand — no app store
- Your own database and vector collections, isolated from every other customer's
- Optional paid access, so you can charge your audience if you want to
- No code and no developer at any point
Four independently deployed services, built solo.
Front end — two Next.js 16 / React 19 apps (Tailwind 4, shadcn/ui): the tenant-facing chat app, and an admin dashboard for content, users, billing and infrastructure monitoring. next-intl for English and Urdu, including RTL.
API — NestJS 11 with MongoDB/Mongoose. Multi-tenancy is a static "super" database for tenants, users and subscriptions, plus a dynamically connected database per tenant for their chats, documents and usage. Connections are resolved per request from the JWT claim.
Retrieval — a chat message is embedded, searched against that tenant's own Qdrant collections, reranked, and the top passages are passed as context to an LLM (with fallback providers behind the primary) which returns a structured answer carrying its citations. Embeddings are BAAI/bge-m3, served locally rather than by an API.
Ingestion — Python services with no database access of their own; everything persists through the API. Documents go through an OCR cascade that falls back through three providers so a scanned page still resolves. Video goes through captions where they exist and speech-to-text where they don't. Both run as queue workers reporting progress back over HTTP, so a 400-page PDF or a 90-minute video streams its status into the dashboard instead of blocking.
Also: Redis for rate limiting, S3 for source files, Paddle as merchant of record for tenant subscriptions.
Live and paid — there's no free tier. The embeddable widget and direct video upload are shipped. A voice interface and a web-search fallback are not built yet.
There's a short demo on the homepage and four walkthrough videos on the How it works page.
Built with