Model or dataset
deta/surf avatar
deta/surf

Deta Surf: an AI notebook that keeps your files, tabs and models on your own disk

Personal AI Notebooks. Organize files & webpages and generate notes from them. Open source, local & open data, open model choice (incl. local).

3,584 stars255 forksTypeScriptApache-2.0

At a glance

What is it?
Surf is an open source Electron notebook from Deta that stores your library locally in the SFFS flat file format and lets you point its AI features at your own model. It is a desktop research tool, not a browser replacement, and the install path is a build from source.
Who is it for?
Adopt Deta Surf if you research across PDFs, web pages and video and want the library to stay on your own disk with a model you pick. Do not adopt it if you need a finished consumer download, a mobile client, or a hosted account you can sign into from any machine; the README links to an installation guide but the repository itself gives no installer, and the related searches for a login and an Android build point at things this project does not document.
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 37 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 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Surf targets: thinking across media that live in separate apps

Most tools in this space pick one medium. A notes app handles text. A reader handles PDFs. A browser handles pages. The README states the premise directly: real thinking means juggling media across sources to make connections, and the grunt work is the searching, window switching, scrolling and pasting that happens in between. Surf is aimed at that gap. You keep a private library on your machine, drop local files, web links, YouTube videos and tweets into it, and then write notes that reference items from the library rather than copies of them. The target user is someone doing simultaneous research and writing, not someone maintaining a shared team wiki. Everything is single user and local by default, which is also the constraint: there is no collaboration layer described anywhere in the README.

SFFS, tabs and @-mentions: how the pieces fit together

The storage layer is called SFFS, Surf Flat File System. The README describes it as a local storage engine that keeps data in open and transparent formats, and links to docs/LIBRARY.md for the details. That choice matters more than it sounds: because the library is files on disk rather than rows in a proprietary database, the AI features operate on the same artifacts you can inspect yourself. On top of that sits a tabbed interface with split view and a sidebar, so a PDF, a note and a web page can be open side by side. Notes are the synthesis surface. You @-mention any tab, website or library resource, and generation pulls from it. Citations are deeplinked back to the origin, which the README specifies as a section of a webpage, a timestamp in a video, or a page in a PDF. A web search tool can be triggered from inside a note and returns results into the note body. Surflets are the odd one out: the app generation tool writes small interactive applets when a concept is easier to show than to describe. The stack is Svelte, TypeScript and Rust inside Electron, which is why the repository carries both an app workspace and a packages directory.

Installing Deta Surf and getting a first note out of it

The README does not put install steps inline. It points to docs/INSTALL.md for installation and to CONTRIBUTING.md for building from source and local development, and the repository root has no published installer, so the path you can verify from the files here is the source build. The root package.json sets the toolchain expectations: Node 22.18.0 or newer, Yarn 1.22.22, and Turborepo 2.5.6 as the task runner. Install dependencies at the root first, because the project is a Yarn workspace spanning app and packages, and a postinstall hook runs patch-package against the patches directory.

bash
yarn install

Then start the desktop app in development mode. The dev script delegates through Turbo to the desktop workspace, and the repository ships a variant that suppresses warnings if the console noise gets in the way.

bash
yarn dev

For a packaged build, the scripts are split by platform rather than being one universal command. The Apple Silicon build is the arm target; Intel Macs and both Windows and Linux x64 use their own scripts.

bash
yarn build:desktop:mac:arm
yarn build:desktop:win:x64
yarn build:desktop:lin:x64

Once the app is running, the README lists four things worth trying first: open a YouTube video and ask a question, open a PDF and ask a question, use the app generation tool to create an applet, or trigger a web search by asking a question with the word search in it. Model choice is configured separately; docs/AI_MODELS.md covers bringing your own key, adding a cloud model, or running a local model, and the repository topics list Ollama alongside OpenAI, Claude, DeepSeek and Gemma. The README does not document rollback or downgrade steps for the library format, so treat the SFFS directory as data you back up yourself.

Where Deta Surf is the wrong tool

The clearest limitation is distribution. The README links to an installation guide, but nothing in the repository root is a signed consumer installer, and the most recent published releases are 1.4.7 beta builds from April 2026, including two release candidates. If you want a tool you download and hand to a non-technical colleague, this is not that yet. The second limitation is scope. Surf is desktop only: macOS, Windows and Linux are named, and there is no mobile client described. Related searches for an Android build have nothing to point at in this material. Third, the AI features are only as good as the model you connect, and if you choose a local model the quality and speed depend on your hardware rather than on anything Surf controls. Fourth, the library is the product. If your work is already organized in another system and you are not willing to move it into Surf's library, the @-mention and citation machinery has nothing to reference, and you are left with a notebook with tabs. Finally, the README documents no sync, no sharing and no multi-user story, so a team that needs a shared knowledge base should look elsewhere.

How Surf differs from Obsidian and from a chat client with file upload

The obvious comparison is Obsidian, which is also local first and also stores notes as plain files on disk. The difference is where the media lives. Obsidian's core object is the markdown note, and PDFs and web pages are attachments or embeds around it. Surf's core object is the library entry, and the note is generated from entries you reference; a YouTube video or a tweet is a first-class item, not a link you paste. The other comparison is a chat interface where you upload documents and ask questions. There the conversation is the artifact and the files are disposable context. In Surf the library persists, the note persists, and citations link back to a specific page or timestamp rather than to a filename. That is a real difference in data model, not a feature checklist. It also explains why Surf is heavier: an Electron app with a Rust storage engine is a bigger commitment than a folder of markdown, and you pay for it in build complexity and in the discipline of importing your material.

Maintenance, licensing and what an upgrade actually costs

The repository is not archived, and the last push was on 2026-08-24, so work on the main branch is recent even though the newest tagged release, 1.4.7-beta.0, dates to 2026-04-29. That gap between commit activity and tagged releases is worth reading carefully before you depend on a specific version: if you build from source you are tracking main, and if you install a release you are on a beta. Upgrades mean re-running the Yarn workspace install and the Turbo build, and the postinstall patch-package step reapplies the project's patches, so a dependency bump can surface there. On licensing, the source is Apache-2.0 with two stated exceptions: the patch for @ghostery/adblocker-electron is MPL-2.0 to match upstream, and individual files may carry their own headers that override the default. The Deta name and logos are explicitly not covered by Apache-2.0, so a fork can use the code but not the branding. This is a description of what the LICENSE and README say, not legal advice; if you plan to redistribute a modified build, read LICENSE and the file headers yourself.

Editorial conclusion

Adopt Deta Surf if you research across PDFs, web pages and video and want the library to stay on your own disk with a model you pick. Do not adopt it if you need a finished consumer download, a mobile client, or a hosted account you can sign into from any machine; the README links to an installation guide but the repository itself gives no installer, and the related searches for a login and an Android build point at things this project does not document. Before you commit, read docs/INSTALL.md and CONTRIBUTING.md, confirm that Node 22.18.0 or newer is available, and check whether the 1.4.7 beta line is the one you want to run.

Frequently asked questions

What is Deta Surf?

It is an AI notebook that stores your files, web pages and other media in a private local library and generates notes from them. The README describes it as built for simultaneous research and thinking, with local first data, open formats and a choice of AI models.

Is Surf a web browser?

No. Surf is a desktop application with tabs, split view and a sidebar that can open web pages alongside local files and notes, but the README presents it as a notebook built around a local media library, not as a general purpose browser.

What does Surf AI do?

It powers Smart Notes and Surflets. According to the README, you can @-mention any tab, website or library resource and auto-generate from it, trigger web searches from a note, and get citations deeplinked to a webpage section, a video timestamp or a PDF page.

Is Deta Surf safe?

The README states that data is stored locally in open formats, which limits how much leaves your machine, and that you can use a local model instead of a cloud one. It does not make security guarantees beyond pointing to the repository security policy for reporting concerns.

Is there a Deta Surf alternative?

Obsidian is the closest local first comparison, but its core object is the markdown note while Surf's is the library entry, so videos, PDFs and web pages are first-class items rather than attachments. A chat client with file upload keeps the conversation as the artifact and treats the files as disposable context.

Official sources

  1. deta/surf on GitHub
  2. License: Apache-2.0
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/deta-surf.svg)](https://hysenlabs.com/projects/deta-surf)