Deta Surf: A Local-First AI Notebook That Mixes Notes, Web Pages, and PDFs
Personal AI Notebooks. Organize files & webpages and generate notes from them. Open source, local & open data, open model choice (incl. local).
At a glance
- What is it?
- Deta Surf is an open source AI notebook for researchers who juggle files, web pages, and videos. It stores data locally in open formats and lets you choose your own LLM, including local models.
- Who is it for?
- Adopt Deta Surf if you are a researcher, student, or knowledge worker who wants a local-first notebook that mixes notes, web pages, PDFs, and videos, and who insists on open data formats and the freedom to choose between cloud and local LLMs. Do not adopt it if you need a mature, plugin-rich ecosystem or if you expect a polished mobile experience; this is a desktop Electron app with a young release history.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 22 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
The Problem: Fragmented Research Across Media Types
Most note-taking apps are built for one thing: text notes, or bookmarks, or PDF annotation. Deta Surf targets a different workflow, where you are simultaneously reading a PDF, watching a YouTube video, and scanning a web page, and you want to synthesize them in one document. The README describes the grunt work it wants to eliminate: manually searching, opening windows and tabs, scrolling, and copying and pasting into a document editor. This is a real pain for anyone doing literature reviews, technical research, or investigative writing. Surf is not a general-purpose notes app. It is a research workspace where the media library and the note editor are meant to be used together. The target user is someone who thinks across sources, not someone who just wants a clean place to jot down meeting minutes.
How Surf Organizes Your Media: SFFS and Notebooks
The core architectural decision is the Surf Flat File System, or SFFS. The README says SFFS stores data in open and transparent formats, but it does not explain the internal structure. What is clear is that your library, containing local files, web links, YouTube videos, and Tweets, lives on your computer in a private library. You can organize this library into Notebooks, which act as containers for related media and notes. The open format claim matters for portability: if the project dies, your data is not locked in a proprietary database. The library is also what powers the AI features. When you @-mention a resource in a note, Surf can auto-generate content from that source. This is a different model from apps that treat notes as plain text and external files as attachments. In Surf, the library is the substrate, and notes are built on top of it.
Smart Notes, Citations, and Web Search as the Core Loop
The notes themselves are more than text. The README highlights @-mentions that pull in any tab, website, or library resource. There is a web search tool that you trigger by asking a question with the word "search" in it, and the results come back into your notes. Citations are deeplinked to the original source, whether that is a section on a webpage, a timestamp in a video, or a page in a PDF. This is a concrete mechanism for verifiable research. The split view lets you see a source and your note side by side, which is exactly the workflow that the app is designed to support. The combination of @-mentions, web search, and citations means the note becomes a living document that can reference evidence without you ever leaving the editor. This is a meaningful departure from chat-based AI tools, where the context is ephemeral. Here, the context is your library, and the output is a persistent note.
Getting It Running: Installation and Local Development
The README points to docs/INSTALL.md for detailed installation instructions, but that file is not included in the material. For building from source, it directs you to CONTRIBUTING.md. What is clear from the repository metadata is that Surf runs on macOS, Windows, and Linux, and it is built with Svelte, TypeScript, and Rust. The presence of Rust suggests a native component, likely for the SFFS storage engine or for PDF and video processing. The release tags show a 1.4.7-beta.0 series from April 2026, so the project is in active beta. If you want to try it without building, you would download a packaged binary from the website or releases page, but the README does not give a direct download link. For a developer wanting to contribute, you would clone the repo and follow CONTRIBUTING.md. The TL;DR section suggests concrete things to try: ask a question about a YouTube video, open a PDF and ask a question, use the app generation tool to create an applet, and use the web search tool. These are the test cases that exercise the core features.
Model Choice: Bring Your Own Key or Run Local LLMs
Surf is not tied to a single AI provider. The README says you can bring your own key for popular models, add a cloud model, or use local language models. The topics list includes claude, deepseek, gemma, ollama, and openai, which suggests support for those ecosystems. The docs/AI_MODELS.md file would have the specifics, but it is not in the supplied material. This model openness is a core value proposition. For users who care about privacy or who work offline, the ability to point Surf at a local Ollama model is significant. For users who want cutting-edge cloud models, you can use your own API key. The trade-off is that you have to manage those keys and model configurations yourself. This is not a turnkey AI assistant; it is a tool that assumes you know what a model endpoint is. The documentation mentions Local Language Models as a category, so the setup likely involves configuring an endpoint URL and model name, but the exact steps are not available here.
Surflets: The App Generation Feature and Its Limits
Surflets are interactive applets that Surf can code for you. The README says you can generate applications without writing code, and the TL;DR suggests using the "app generation" tool to ask for an app. This is an ambitious feature. The idea is that you describe a visualization or a small tool, and Surf writes the code, presumably using an LLM. The output is an interactive applet that lives inside your note. The limitation is that this is still code generation, which can be unreliable for complex logic. The README does not describe the runtime environment for Surflets. Are they sandboxed? Do they have access to your library? The docs/SURFLETS.md file would answer that, but it is not provided. This is a feature that could be either a powerful prototyping tool or a source of frustration if the generated apps are buggy. For a researcher who wants to quickly visualize a dataset, this could be valuable. For a non-programmer, it might be hard to debug when things go wrong.
Licensing and Maintenance Considerations
The project is licensed under Apache-2.0, with a notable exception: the patch for @ghostery/adblocker-electron is MPL-2.0, consistent with upstream. Also, the Deta name and logos are not covered by the Apache license. This means you can reuse the code, but you cannot use the Deta branding without permission. The README lists Electron, Tiptap, Svelte, and Rust as dependencies. Electron is a heavyweight choice; it explains cross-platform support but also means the app is not lightweight. The last push was August 2026, and the most recent release is a beta from April 2026. The project is not archived, but the release cadence is not rapid. The "beta" designation on releases suggests that the maintainers are still stabilizing features. Users should expect occasional breaking changes. The storage format being open is a mitigating factor: even if the app changes, your data files should remain readable by other tools, at least in principle. The README does not mention a migration path for users of earlier versions, so you should back up your library before upgrading.
Editorial conclusion
Adopt Deta Surf if you are a researcher, student, or knowledge worker who wants a local-first notebook that mixes notes, web pages, PDFs, and videos, and who insists on open data formats and the freedom to choose between cloud and local LLMs. Do not adopt it if you need a mature, plugin-rich ecosystem or if you expect a polished mobile experience; this is a desktop Electron app with a young release history. Before committing, verify that your preferred LLM provider or local model setup is supported by reading docs/AI_MODELS.md, and test the split view and citation workflow with your typical sources, since those are the core differentiators. Check the archived status and recent beta releases to gauge project momentum, and note that the Deta name and logos are not covered by the Apache-2.0 license.
Community notes