A modern, AI-powered browser built with Electron, React, and TypeScript. Designed with a premium UI/UX that rivals Arc, Zen, and Safari.
| Feature | Description |
|---|---|
| Vertical Sidebar Tabs | Arc-style sidebar with tabs, favicons, and active indicators |
| Spaces | Organize tabs into color-coded workspaces (Personal, Work, Research) |
| Collapsible Sidebar | Smooth collapse to favicon-only mode with animated transitions |
| Command Palette | Cmd+K — search tabs, bookmarks, and run actions instantly |
| URL Bar Overlay | Cmd+L — search or navigate with Google suggestions |
| Split View | Cmd+\ — view two pages side by side |
| Focus Mode | Cmd+Shift+F — hide sidebar for distraction-free browsing |
| Find in Page | Cmd+F — search text within any page |
| Bookmarks | Save, search, and manage bookmarks with one-click import |
| PDF Viewer | Inline PDF rendering using Chromium's built-in viewer |
| Screenshots | Cmd+Shift+S — capture any page |
| Feature | Description |
|---|---|
| AI Chat Panel | Built-in AI assistant — open with Cmd+J |
| Browser Control | "Open YouTube", "Close this tab", "Go back" — AI controls the browser |
| Page Understanding | "Summarize this page", "What is this page about?" |
| File System Access | "List my Downloads", "Read this file", "Save to Desktop" |
| Web Search | "Search for best laptops 2025" — AI searches and navigates |
| Smart Memory | AI remembers things you tell it across sessions |
| Clipboard Access | "Copy this URL", "What's in my clipboard?" |
| System Commands | Run terminal commands, get system info, send notifications |
| Quick Actions | Pre-built action cards in the welcome state |
| Feature | Description |
|---|---|
| Ad & Tracker Blocker | Built-in blocker for ads, trackers, and malware |
| Blocked Counter | Shows total trackers blocked in the sidebar |
| Per-Site Tracking | See how many trackers each site tries to load |
| Feature | Description |
|---|---|
| Pomodoro Timer | Built-in focus timer with work/break modes |
| Screen Time | Track browsing time per domain with bar chart |
| Site Notes | Write and save notes for any website |
| Reading Mode | Clean, distraction-free reading experience |
| Picture-in-Picture | Float videos while browsing other tabs |
| Custom CSS | Inject your own CSS into any website |
| Feature | Description |
|---|---|
| Accent Colors | 12 accent colors that flow through the entire UI |
| Dark/Light Mode | Beautiful themes for both modes |
| Quick Links | Customizable shortcuts on the new tab page |
| Search Engine | Choose between Google, DuckDuckGo, Bing, or Brave |
| Personalized Greeting | New tab greets you by name with time-appropriate messages |
nova-browser/
├── index.js # Electron main process
├── preload.js # IPC bridge (contextBridge)
├── newtab.html # New tab page
├── onboarding.html # 8-step premium onboarding
├── package.json # Dependencies & scripts
├── vite.config.ts # Vite build config
├── tsconfig.json # TypeScript config
│
├── src/renderer/ # React UI (sidebar, panels, overlays)
│ ├── App.tsx # Root component
│ ├── main.tsx # React entry point
│ ├── types.ts # TypeScript interfaces
│ │
│ ├── hooks/
│ │ └── useBrowser.tsx # Central state provider (BrowserContext)
│ │
│ ├── components/
│ │ ├── Sidebar/
│ │ │ ├── Sidebar.tsx # Main sidebar container
│ │ │ ├── DragRegion.tsx # Nav buttons (back/forward/reload/collapse)
│ │ │ ├── SpacesBar.tsx # Space dots + add button
│ │ │ ├── TabList.tsx # Tab container
│ │ │ ├── TabItem.tsx # Individual tab
│ │ │ ├── NewTabButton.tsx # "+ New Tab" button
│ │ │ └── SidebarActions.tsx # Nova AI, Settings, dark mode toggle
│ │ │
│ │ ├── Navigation/
│ │ │ ├── FindBar.tsx # Find in page
│ │ │ └── UrlBar.tsx # URL bar with suggestions
│ │ │
│ │ ├── CommandPalette/
│ │ │ └── CommandPalette.tsx # Cmd+K command palette
│ │ │
│ │ ├── Panels/
│ │ │ ├── SettingsPanel.tsx # Card-based settings UI
│ │ │ ├── AiPanel.tsx # Nova AI chat panel
│ │ │ ├── NotesPanel.tsx # Site notes panel
│ │ │ └── ScreenTimePanel.tsx # Screen time panel
│ │ │
│ │ ├── Widgets/
│ │ │ ├── PomodoroWidget.tsx # Pomodoro timer
│ │ │ ├── PageInsightChip.tsx # AI page type chip
│ │ │ └── BookmarksDropdown.tsx # Bookmarks dropdown
│ │ │
│ │ ├── Overlays/
│ │ │ ├── LoadingBar.tsx
│ │ │ ├── LoadingOverlay.tsx
│ │ │ ├── Toast.tsx
│ │ │ ├── ZoomIndicator.tsx
│ │ │ ├── ScreenshotFlash.tsx
│ │ │ ├── SplitDivider.tsx
│ │ │ └── DownloadIndicator.tsx
│ │ │
│ │ └── ContextMenu/
│ │ └── ContextMenu.tsx
│ │
│ └── styles/
│ └── global.css # All CSS with variables, animations
│
└── dist/renderer/ # Vite build output (loaded by Electron)
| Layer | Technology |
|---|---|
| Runtime | Electron 41+ |
| UI Framework | React 19 + TypeScript |
| Build Tool | Vite 8 |
| AI | Anthropic Claude API (@anthropic-ai/sdk) |
| Styling | CSS with custom properties, animations, glassmorphism |
| Fonts | Inter, Space Grotesk |
- Node.js 18+
- npm
- Anthropic API key (for Nova AI features)
git clone https://github.com/smitvanani/browser.git
cd browser
npm installcp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEYnpm run build:renderer # Build the React UI
npm start # Start the Electron appOr use the dev script with hot reload:
npm run dev# macOS
npm run build
# Windows
npm run build:win
# Linux
npm run build:linux| Shortcut | Action |
|---|---|
Cmd+T |
New Tab |
Cmd+W |
Close Tab |
Cmd+L |
Open URL Bar |
Cmd+K |
Command Palette |
Cmd+F |
Find in Page |
Cmd+J |
Toggle Nova AI |
Cmd+, |
Settings |
Cmd+\ |
Split View |
Cmd+Shift+F |
Focus Mode |
Cmd+Shift+S |
Screenshot |
Cmd+R |
Reload |
Cmd+[ |
Go Back |
Cmd+] |
Go Forward |
Cmd++ |
Zoom In |
Cmd+- |
Zoom Out |
Cmd+0 |
Reset Zoom |
"Open YouTube"
"Open github.com in a new tab"
"Close this tab"
"Go back"
"Search for React tutorials"
"Summarize this page"
"What is this page about?"
"Explain the main points"
"List files on my Desktop"
"Read ~/Documents/notes.txt"
"What PDFs are in my Downloads?"
"Save this to a file on my Desktop"
"Remember that my meeting is at 3pm"
"What did I ask you to remember?"
"Copy this URL to clipboard"
"Take a screenshot"
"What's my battery level?"
"Run git status in ~/Projects/myapp"
"Send a notification saying 'Time to take a break'"
Nova includes a premium 8-step onboarding experience:
- Welcome — Cinematic logo reveal with orbiting dots
- Your Name — Live preview of new tab greeting
- Pick Your Vibe — Accent color with live mini-browser preview
- Search Engine — Choose your default search
- Import — One-click import from Chrome, Firefox, Safari, Edge
- Quick Links — Pick your top 6 favorite sites
- Meet Nova AI — Interactive AI demo that greets you by name
- Ready — Confetti + personalized summary
npm run resetAccess via Cmd+, or click Settings in the sidebar.
- Profile — Name, search engine
- Appearance — Dark mode, accent color (12 options)
- Quick Links — Add/remove new tab shortcuts
- Privacy & Security — Ad & tracker blocker toggle
- Advanced — Custom CSS injection
- Import Bookmarks — Chrome, Firefox, Safari, Edge
- About — Version info
Nova is built with these principles:
- Premium feel — Glassmorphism, backdrop blur, smooth cubic-bezier animations
- Pixel-perfect — Consistent spacing, typography, and color harmony
- 60fps transitions — Every interaction is buttery smooth
- Contextual UI — Elements appear only when needed
- Dark mode first — Both themes look equally stunning
- Keyboard-first — Every feature accessible via shortcuts
| Phase | What was done |
|---|---|
| Phase 1 | Core Electron browser with sidebar, tabs, spaces, AI, ad blocker, all features |
| React Migration | Migrated from vanilla HTML/JS to React + TypeScript + Vite (25+ components) |
| UI/UX Overhaul | Premium sidebar, card-based settings, polished AI panel, micro-animations |
| Onboarding | 8-step premium onboarding with animations and live previews |
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT License — see LICENSE for details.
Smit Vanani — @smitvanani
Built with Electron, React, and Claude AI.