A privacy-focused mobile browser built with React Native and Expo, designed to promote mindful browsing through permanent, local-only history tracking.
- Privacy First: All browsing data (history, bookmarks, usage stats) is stored locally on your device. No external servers, no data collection, no tracking.
- Accountability Focus: Permanent browsing history encourages mindful internet usage. History cannot be deleted within the app.
- Clean Interface: Modern, intuitive UI with dark mode support.
- Tab Management: Multiple tabs support with easy switching.
- Bookmarks: Save your favorite sites for quick access.
- Usage Statistics: Track your browsing habits with daily usage stats.
- Desktop Mode: Toggle between mobile and desktop user agents.
- Ad Blocking: Built-in ad blocking capabilities.
Note: Add screenshots here showing the app interface, home screen, settings, etc.
-
Clone the repository:
git clone https://github.com/MohiuddinSumon/square-browser.git cd SquareBrowser -
Install dependencies:
npm install
-
For Android development, see SETUP.md for detailed setup instructions.
-
Run the app:
npm start
Then press
afor Android orifor iOS.
See BUILD_APK.md for instructions on building a release APK.
- Node.js (v18 or higher)
- npm or yarn
- Android Studio (for Android development)
- Xcode (for iOS development, macOS only)
- Expo CLI
SquareBrowser/
├── components/ # Reusable UI components
│ ├── AddressBar.js
│ ├── HomeScreen.js
│ └── NavigationControls.js
├── context/ # React Context providers
│ └── BrowserContext.js
├── screens/ # Screen components
│ ├── BrowserScreen.js
│ ├── BookmarksScreen.js
│ ├── HistoryScreen.js
│ ├── SettingsScreen.js
│ ├── PrivacyPolicyScreen.js
│ └── TermsOfServiceScreen.js
├── utils/ # Utility functions
│ └── storage.js
├── assets/ # Images and icons
├── android/ # Android native code
└── App.js # Main app component
npm startcd android
./gradlew bundleRelease # AAB for Play Store
./gradlew assembleRelease # APK for direct installOutput locations:
android/app/build/outputs/bundle/release/app-release.aab
android/app/build/outputs/apk/release/app-release.apk
Use the included release.bat script (Windows) to update all version files and build in one step:
release.batThe script will prompt for the new version name and version code, then automatically update:
android/app/build.gradle—versionCodeandversionNameapp.json—versionandandroid.versionCodepackage.json—version
Then it runs bundleRelease and assembleRelease back-to-back.
Important: Always keep
versionCodein sync across all three files. The Gradle file takes precedence when building — a mismatch causes Play Console to receive the wrong version.
Version info lives in three places and must always match:
| File | Fields |
|---|---|
android/app/build.gradle |
versionCode, versionName |
app.json |
expo.version, expo.android.versionCode |
package.json |
version |
Use release.bat to update all three atomically and avoid drift.
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
SquareBrowser is committed to your privacy:
- No Data Collection: We do not collect, transmit, or store any of your browsing data on external servers.
- Local Storage Only: All history, bookmarks, and usage statistics are stored locally on your device using AsyncStorage.
- No Tracking: No analytics, no tracking, no telemetry.
- Open Source: The entire codebase is open source, so you can verify our privacy claims.
For more details, see the in-app Privacy Policy or view it in screens/PrivacyPolicyScreen.js.
By using SquareBrowser, you acknowledge that:
- This is an accountability-focused tool with permanent history logging.
- History cannot be deleted within the app.
- No incognito/private mode is provided.
- The app is provided "as is" without warranties.
For full terms, see the in-app Terms of Service or view it in screens/TermsOfServiceScreen.js.
This project is licensed under the MIT License - see the LICENSE file for details.
See landing/docs/planned-features.md for the full roadmap.
In Progress
- Weekly/monthly usage trend views and streak tracking
- Custom domain block lists
- Scheduled browsing windows (e.g., no browsing before 9am)
- Home screen timer widget
Planned
- iOS release (SwiftUI + WKWebView)
- Family/parental controls with supervised profiles
- Accountability partner — share usage summaries with a trusted contact
- Exportable usage reports (CSV/PDF)
SquareBrowser is free, open source, and built by one person. If it's helped you reclaim time from the internet, consider giving back:
- 💸 Send via Wise — direct transfer, any amount, any currency
- ⭐ Star the repo — free, helps with discoverability
Core accountability features stay free forever. Sponsorships help keep it that way.
- Bugs / Feature requests: GitHub Issues
- Discussions: GitHub Discussions
- Built with React Native
- Powered by Expo
- Uses react-native-webview for web rendering
Made with ❤️ for privacy-conscious users