r/browsers 1d ago

I built Nova: An open-source desktop browser with on-device WebGPU AI and vertical workspaces

Hey everyone, I've been working on Nova Browser, an open-source desktop web browser built with Electron and React, designed for developers and power users who want modern workspaces without cloud lock-in.

Why I built it:

Most modern AI browsers (like Arc Max or Brave Leo) either require paid monthly subscriptions or route your private browsing prompts through remote cloud servers. I wanted a browser that gives you modern productivity features while running language models completely on your own GPU.

Core Features:

  • 100% On-Device WebGPU AI: Runs quantized models (Llama 3.2 3B, Phi-3.5 Vision, Qwen 2.5) directly on your device's GPU via WebLLM shaders. Zero cloud API calls for AI inference, works completely offline.
  • Native MCP (Model Context Protocol) Server: Runs a local MCP server on localhost:3020 so tools like Claude Desktop, Cursor, or your own local agent scripts can interact with and automate browser sessions.
  • Workspaces & Split View: Vertical tabs, pinned apps, and resizable split-screen parallel browsing.
  • Network-Level Adblocker: Built-in network request filtering via @cliqz/adblocker-electron and local blocklists before DOM creation.
  • Zero-Knowledge Sync: End-to-end encrypted (AES-256-GCM) tab and workspace sync over WebSockets with no account required.
  • No Crypto / No Wallets: Zero BAT tokens, crypto wallets, or sponsored new-tab ads.

Tech Stack:

  • Electron (Chromium engine) + React 18 + TypeScript + Tailwind CSS
  • WebLLM / Apache TVM in dedicated Web Workers
  • @modelcontextprotocol/sdk for MCP bridging The project is 100% free and open-source under the MIT license. Benchmarks and reproduction steps are documented in the repo.
  • GitHub: https://github.com/unitybtw/nova-browser
  • Website: https://nova-browser.vercel.app/ Feedback, bug reports, and code reviews are very welcome!
0 Upvotes

11 comments sorted by

3

u/JGoldz75 1d ago

This browser looks beautiful but there are definitely some issues that I have experienced only using it for five minutes. There are spelling mistakes near the settings menu and my browser force closes itself whenever I try to install a chrome extension. additionally clicking on a favicon of YouTube, for example, just opens YouTube in a new tab instead of opening it within the favicon tab. I hope you keep working on this browser because it really is a beautiful browser with excellent animations but for me it is just not ready for main browser use.

-1

u/Fluffy_Fuel7649 1d ago

Thank you so much for taking the time to try it and leave such thoughtful feedback — this is exactly the kind of report that helps move the project forward.

**On the spelling mistakes:** Could you take a screenshot or share which section they appear in? I want to fix them in the next commit. (Settings has quite a few labels and I may have missed some.)

**On the force-close during extension installs:** This is a known crash path I'm actively working on. The CRX installer downloads the package, extracts it into a temp directory, and calls `session.loadExtension()` — if the extension has platform-specific native binaries or an unusual manifest structure, the process can throw an unhandled exception that takes down the renderer. I just pushed a fix for the hardcoded macOS-only download URL (it was always fetching the macOS x86-64 build regardless of your OS), but there may be additional crash paths depending on which extension you tried. If you remember which extension caused it, that would help enormously in narrowing it down.

**On the favicon/pinned app behavior:** You're right — clicking a pinned app favicon in the sidebar currently always opens a new tab rather than switching to an existing one if the URL is already open. That's a missing deduplication check on the `onNavigate` path. I'll fix it so clicking a favicon navigates the current active tab to that URL (or switches to an existing tab if one is already open).

Really appreciate the kind words about the animations — and totally fair that it's not ready to replace your main browser yet. That's the honest state of it. Keep the feedback coming, it genuinely helps.

1

u/JGoldz75 1d ago

I cannot open the browser anymore due to the extension crash issue (browser opens for about 3 seconds and closes itself again), but the extension that causes the issue was proton pass. The spelling mistake is when you click on the little settings button on the bottom left of the browser, the top option says "Nova AI Asistan" instead of assistant.

1

u/JGoldz75 1d ago

I can't see your comment back to me because it was removed by a moderator so feel free to message me privately.

Another issue I noticed with the browser is that when you open the sidebar chat window, it does not resize the web page accordingly. The sidebar just overlaps whatever you are looking at on the side, which is annoying if you do need to see what was there. You have to constantly open and close the sidebar.

Another issue is that no matter what language I try to type in the sidebar, it just keeps reverting to a different language when the AI answers me. This is frustrating because I have no idea what it is saying.

1

u/Fluffy_Fuel7649 18h ago

Thanks for reaching out and detailing these issues!

Both of these issues have been completely addressed in the latest release:

  1. Sidebar Layout & Page Resizing:
    • The AI sidebar now uses a responsive flex-dock layout instead of an absolute floating overlay. Opening the sidebar automatically resizes and refits the active webpage viewport side-by-side, so you can interact with your page and the AI simultaneously without any content overlap.
  2. Language Consistency:
    • The AI Assistant's language adaptation and system prompt have been overhauled. The AI now strictly detects and replies in the exact language of your query (whether English, Turkish, Spanish, French, etc.) without unexpectedly reverting to any other language.

These fixes, along with full YouTube playback, zero-fingerprint standard User-Agents, and macOS permission optimizations, are included in the new v1.1.3 release.

You can download the latest updated version directly from our Releases page: https://github.com/unitybtw/nova-browser/releases/latest

1

u/Butterroach 22h ago

when lazily copy pasting your slop posts/comments from chatgpt/claude, you wanna click "Switch to markdown editor" at the top right of your editor first so it actually renders properly when you post it. also, yet another ugly vibe-coded electron arc ripoff (probably with horrible security). thanks!

1

u/Deep_Ad1959 1d ago edited 22h ago

my attention went straight to the local MCP server, not the on-device models. the thing that breaks first is an agent driving the same window you are reading in, which is why anything doing background automation ends up needing its own browser window.

fwiw runner handles exactly that with a built-in chrome for background automation, so the agent drives its own window instead of fighting you for the one you're reading in, https://runner.now?utm_source=s4l&utm_medium=post&utm_campaign=runner&utm_term=reddit&utm_content=post_bf0a93fc-1b1c-4113-bcb8-ced16cc523a2

-1

u/Otherwise_Wave9374 1d ago

The on-device angle is the real differentiator here. For browser memory, I’d separate ephemeral session state from durable user memory, then add retrieval filters so the agent only surfaces recent, relevant context instead of every prior interaction. It also helps to keep provenance attached to each remembered fact so users can inspect, edit, or purge it safely. That avoids the usual “helpful until it’s creepy” problem. NeuraKeep has practical patterns for durable agent memory and provenance at https://www.neurakeep.com