Inspiration In the modern digital landscape, businesses have vast amounts of knowledge locked away in static PDFs, handbooks, and FAQ pages that customers never read. We realized that while large language models are powerful, building a custom, context-aware AI agent and successfully embedding it into an existing website remains a highly technical, multi-day process. We built Proximity OS with a single mission: to democratize AI customer success by turning static documents into interactive, embeddable support agents in seconds—no coding required.
What it does Proximity AI is a multi-tenant B2C SaaS platform that allows anyone to generate hyper-intelligent, contextual chatbots.
Create an Agent: Users upload a PDF knowledge base (like a product manual or store policy) and define a system persona. Distillation: The platform seamlessly ingests this document into Gemini's knowledge store. Deployment: The user is provided with a single tag. When pasted into any website (Wordpress, Shopify, regular HTML), it immediately injects a sleek, dark-mode chat widget floating in the corner. Interaction: Visitors to that website can interact with the agent, which streams responses intelligently based strictly on the provided PDF constraints. How we built it We split the architecture into a highly scalable backend and a stunning, responsive frontend:</p> <p>The Brain (Backend): We engineered a robust API using Python and FastAPI. File ingestion and conversation streaming are handled by leveraging the brand-new Google Gemini 3.1 Pro API. We used standard SQLite for lightning-fast relation mapping between users and specific agent metadata. The Interface (Frontend): The dashboard, authentication flow, and landing page were constructed using Next.js 15 and React, styled meticulously with TailwindCSS. We focused heavily on a premium UI/UX, implementing "Digital Industrial" glassmorphism, dynamic glowing elements, and responsive agent grids. The Widget: To ensure our embedded chat widget operates beautifully on any client website without CSS conflicts, we built it entirely using vanilla JS and Shadow DOM (Web Components). It securely communicates via Server-Sent Events (SSE) back to our FastAPI core to stream text character-by-character. Challenges we ran into One of our biggest hurdles was solving the "CSS Leakage" problem. When embedding a chat widget into a 3rd-party website, standard HTML/CSS often inherits the host site's styling, completely destroying the widget's layout. We overcame this by wrapping our entire widget architecture securely inside a Shadow DOM, enforcing our premium dark-emerald aesthetic regardless of where it's deployed. We also navigated the complexities of cross-origin resource sharing (CORS) and authenticating streaming data over public endpoints without compromising other secure areas of our application.</p> <p>Accomplishments that we're proud of We are incredibly proud of the end-to-end user experience. We didn't just build a functional AI wrapper; we built a production-ready SaaS. From the seamless JWT-based split-screen authentication flow to the modern drag-and-drop agent creation dashboard, the entire platform feels incredibly polished. Streaming tokens directly from Gemini into an isolated custom web component on a completely different website with zero latency is phenomenal.</p> <p>What we learned We gained profound insights into the architecture of multi-tenant SaaS applications, especially regarding data isolation per user. We also mastered the intricacies of Server-Sent Events (SSE) in FastAPI for real-time text generation, and the power of vanilla JavaScript Web Components for building portable, indestructible UI widgets.</p> <p>What's next for Proximity AI We plan to expand our ingestion capabilities to include scraping live URLs and syncing with Notion workspaces. Additionally, we aim to introduce a global Analytics dashboard where users can view exactly what their customers are asking their embedded agents—creating a powerful feedback loop for businesses.</p>
Built With
- fastapi
- next.js
Log in or sign up for Devpost to join the conversation.