ROHAN

WORK / AI WORKSPACE

AI Workspace

A unified AI workspace for startups: a RAG-powered support agent trained on your own documents, per-employee assistants, and the operational plumbing underneath.

ROLE

Co-building with Anubhab Das

STACK

Python · Django · FastAPI · React · LangChain · RAG · PostgreSQL · Docker · AWS

TIMELINE

Building — not yet launched

STATUS

Building

AI Workspace preview

THE PROBLEM

Startups without a dedicated engineering team end up buying five separate tools for support, HR, and billing, none of which talk to each other, and none of which know anything about the company's own documents.

We wanted one workspace: a support agent trained on a company's actual docs (PDF, DOCX, TXT, or just a URL) with lead extraction and a public hosted URL for teams without a website, per-employee AI assistants, automated billing and HR tracking, and full conversation oversight for founders.

CONSTRAINTS

  • Multi-tenant from the start — every customer's documents and conversations have to stay isolated from every other customer's
  • Needs to work for a team with zero website — a hosted public URL has to be part of the product, not an add-on
  • Two-person team, so scope has to be sequenced, not built all at once
  • Founders need full conversation oversight without that turning into a second full-time job

ARCHITECTURE

Django handles the CRUD-heavy business logic — billing, HR, tenancy. FastAPI serves the RAG and agent layer. Per-tenant documents are ingested into isolated vector stores; the frontend is React, deployed on Docker.

  • 01Django — auth, tenancy, billing, HR tracking
  • 02FastAPI — RAG retrieval and agent serving, async by default
  • 03Per-tenant ingestion — PDF / DOCX / TXT / URL, into isolated vector stores
  • 04React — frontend for both the founder dashboard and the public-facing agent
  • 05Docker — one service per container, deployed the same way as everything else I run

DECISIONS

1. Tenant isolation at the retrieval layer, not just the database

Row-level tenant IDs in Postgres aren't enough once a vector store is in the mix — a leaked retrieval means one customer's support agent could quote another customer's private documents. Isolation has to be enforced at the embedding and retrieval boundary itself, not just in the SQL layer.

2. Django and FastAPI, not one framework for everything

Django's batteries — admin, auth, ORM — are the right fit for billing and HR, which are CRUD-heavy and benefit from convention. The RAG and agent layer is a different shape of problem, async and LLM-call-heavy, where FastAPI's lighter footprint fit better. Running both costs more ops overhead, but each piece does the job it's actually good at.

3. Ship the support agent first

Of the four pieces — support agent, assistants, billing, oversight — the support agent is the one a prospective customer can evaluate in five minutes. Sequencing it first gets a demonstrable product in front of people before the harder-to-explain pieces are done.

RESULTS

4

Core modules in scope

2

Founders building it

Pre-launch

Current status

WHAT I'D DO DIFFERENTLY

I'd nail down tenant isolation testing before writing the first line of the retrieval layer, not after. It's the kind of bug that's invisible in a demo with one test account and very visible the day a second customer signs up.