Thanks for your interest in contributing! Here's how to get started.
-
Clone the repo
git clone https://github.com/asukul/thatbrowser.git cd thatbrowser -
Install dependencies
npm install
-
Run in development mode (hot-reload enabled)
npm run dev
src/
main/ # Electron main process
main.js - Window management, tab lifecycle, IPC handlers
ai-service.js - Multi-provider AI abstraction (chat, vision, streaming)
gemini-search.js - Gemini-powered verified search
updater.js - Auto-update via GitHub Releases API
preload/ # Context bridge (IPC between main ↔ renderer)
preload.js
renderer/ # React UI
App.jsx - Root component, tab/state management
components/ - All UI panels (AIPanel, AutomationsTab, SettingsPage, etc.)
index.css - Global styles, CSS variables, component styles
Open a GitHub Issue with:
- Steps to reproduce
- Expected vs. actual behavior
- OS and version info
- Screenshots if applicable
Open an issue with the Feature Request label. Describe the use case and any UI/UX ideas you have.
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes
- Test locally with
npm run devand verify the build withnpm run build - Commit with a clear message
- Push and open a Pull Request
- JavaScript/JSX — Use ES modules (
import/export), functional React components with hooks - CSS — Use the existing CSS variable system (
--brand-*,--bg-*,--text-*) - Naming — Component files use PascalCase (
AIPanel.jsx), utilities use camelCase (ai-service.js) - IPC channels — Follow the
namespace:actionpattern (e.g.,tab:create,ai:chat-stream)
- Add the provider config to
PROVIDERSinsrc/renderer/components/SettingsPage.jsx - Implement the API call in
src/main/ai-service.js(see existing providers for patterns) - Add connection test and model listing support
- Update the docs
npm run dist:win # Windows NSIS installer
npm run dist:mac # macOS DMG
npm run dist:dir # Unpacked executableBy contributing, you agree that your contributions will be licensed under the MIT License.