SurfSense is an open-source alternative to Google NotebookLM designed for teams and researchers who need unlimited data capacity, full control over their AI models, and real-time collaboration. It solves the key limitations of NotebookLM—such as source size caps, restricted notebook counts, and vendor lock-in to Google Gemini—by enabling users to connect to 27+ external data sources, use any LLM (including local models via Ollama and vLLM), and collaborate in real time with team members.
Built with Python, FastAPI, Next.js, LangChain, and LangGraph, SurfSense supports hybrid search, agentic workflows, and multi-format document processing. It can be deployed via a single Docker command or self-hosted on private infrastructure, ensuring data privacy. The platform integrates with Chrome, Firefox, and Edge via a browser extension and supports 50+ file formats through LlamaCloud, Unstructured, and Docling.
What You Get
- Unlimited Sources & Notebooks - No restrictions on the number of documents, notebooks, or source files, unlike NotebookLM’s 50-source and 100-notebook limits.
- 100+ LLM Support via LiteLLM - Use OpenAI, Anthropic, Ollama, vLLM, or any model compatible with the OpenAI API specification without vendor lock-in.
- 27+ External Data Connectors - Connect to Google Drive, OneDrive, Dropbox, Notion, GitHub, Slack, Jira, Discord, Gmail, YouTube, Elasticsearch, and more to import data automatically.
- Real-Time Multiplayer Collaboration - Shared notebooks with live chat, comment threads, and role-based access control (Owner, Admin, Editor, Viewer).
- Self-Hosting with Docker - Deploy privately on your own infrastructure with a one-liner install script; supports full data control and compliance.
- Hybrid Search with Reciprocal Rank Fusion - Combines semantic and full-text search with hierarchical indexing for more accurate, context-rich results.
- Agentic Workflows with LangChain Deep Agents - AI agents with planning, subagent delegation, and file system access to automate research tasks.
- Multi-Format Export & Generation - Generate and export reports in PDF, DOCX, HTML, LaTeX, EPUB, ODT, and plain text; create presentations and podcasts from your notes.
- Browser Extension for Web Capture - Save any webpage—including auth-protected pages—directly into your SurfSense notebooks with one click.
- Video, Image & Podcast Generation - Turn research into video overviews, AI-generated images, and audio podcasts using configurable TTS and video models.
Common Use Cases
- Research teams analyzing proprietary data - A university lab uses SurfSense to ingest 10,000+ pages of internal reports from Google Drive and Notion, runs queries across all documents using their own LLM, and exports findings as LaTeX papers.
- Startups building AI-powered knowledge bases - A SaaS company self-hosts SurfSense to index customer support tickets from Jira and Slack, then uses agentic workflows to auto-generate response drafts.
- Content creators producing multimedia reports - A journalist uses the browser extension to save paywalled articles, generates a podcast summary with custom TTS voices, and exports a formatted HTML report for their newsletter.
- Enterprise compliance teams - A legal firm deploys SurfSense on-premises to analyze confidential contracts from Dropbox and OneDrive, ensuring no data leaves their network while enabling team collaboration.
Under The Hood
Architecture
- Monolithic structure with blurred boundaries between frontend, backend, and browser extension components, lacking clear modularity or separation of concerns
- Absence of dependency injection, service layers, or repository patterns, resulting in tight coupling between models and business logic
- Minimal API structure with no versioning, middleware orchestration, or controller abstraction, suggesting prototype-level design
- ORM-based data layer with no decoupling mechanisms, and no evidence of CQRS, event sourcing, or hexagonal architecture
Tech Stack
- Python backend using FastAPI with FastAPI-Users for authentication and SQLAlchemy with Alembic for database management
- Async task processing via Celery with Redis, complemented by SlowAPI for rate limiting
- Frontend built with TypeScript, leveraging shadcn/ui components and Vercel’s React best practices, with Biome for consistent formatting
- Pre-commit hooks enforce code quality through Ruff, Bandit, and Detect-Secrets for linting, security, and credential leakage prevention
- Infrastructure automation via .recurseml.yaml and biome.json for rule-based consistency across the codebase
Code Quality
- Extensive test suite covering database interactions, API flows, and async logic with pytest and asyncpg
- Strong type safety with comprehensive type hints and well-structured data models throughout
- Clean, domain-driven organization with modular test files and descriptive naming conventions
- Robust error handling via assertions, though reliance on built-in exceptions limits custom error context
- Comprehensive edge case coverage including malformed inputs and partial failures
What Makes It Unique
- Native Streamdown integration with LaTeX rendering and automatic delimiter normalization for seamless academic content display
- Extensible editor plugin system with type-safe citation schemas enabling dynamic source attribution in rich text
- Unified connector architecture supporting 15+ productivity tools with consistent API abstractions and webhook handling
- Sandbox execution environment tied to Daytona for secure, ephemeral code execution within the editor
- Multi-modal content pipeline unifying text, audio, video, and image generation through a single LLM-powered interface
- Granular role-based access control embedded at the document and connector level for enterprise collaboration