Browse decentralized websites on Nostr - A censorship-resistant, verifiable, permanent web.
|
|
|
- Automatic Detection: Just type any domain in your browser (e.g.,
nweb.shugur.com) - Manual Entry: Click extension icon → Enter domain → Press Enter
- Browse: Navigate links, use back/forward, and enjoy decentralized web!
The extension implements multiple security layers:
- Author Pinning - DNS TXT record pins site publisher's public key
- Subresource Integrity - SHA256 verification for JavaScript
- Sandboxed Rendering - Isolated execution environment
- Rate Limiting - Protection against DoS attacks
User types domain → DNS lookup → Fetch from Nostr relays → Verify integrity → Render in sandbox
- Check DNS TXT record at
_nweb.<domain>for publisher pubkey and relay list - Query relays for entrypoint (kind 11126) pointing to site index
- Fetch site index (kind 31126) listing all page manifests
- Fetch page manifest (kind 1126) for current route
- Fetch all assets (kind 1125) - HTML, CSS, JS, images, etc.
- Verify author signatures and JavaScript integrity (SRI)
- Assemble HTML and render in sandboxed iframe
- First-EOSE Strategy - Returns after fastest relay (200-500ms typical)
- Connection Pooling - Persistent WebSocket connections
- Smart Caching - 7-day asset cache, 30-second manifest cache
- Event Deduplication - Filters duplicates from multiple relays
- Parallel Fetching - Queries all relays simultaneously
# Setup
git clone https://github.com/Shugur-Network/nw-extention.git
cd nw-extention
npm install
# Build
npm run build # Build both browsers
npm run build:chrome # Chrome only
npm run build:firefox # Firefox only
# Test
npm test # Run test suite
npm run validate # Validate structure
# Output: dist/chrome/ and dist/firefox/nw-extention/
├── src/
│ ├── chrome/ # Chrome-specific (service worker + offscreen)
│ ├── firefox/ # Firefox-specific (background script)
│ ├── shared/ # Shared modules (logger, constants, errors)
│ └── ui/ # UI components (popup, viewer, settings, sandbox)
├── test/ # Test suite
├── scripts/ # Build scripts
└── public/ # Static assets
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new code
- Submit a Pull Request
MIT License - See LICENSE file for details
- Website: https://nweb.shugur.com
- GitHub: https://github.com/Shugur-Network/nw-extention
- Issues: https://github.com/Shugur-Network/nw-extention/issues
- Publisher Tool: nw-publisher on npm
- Chrome Store: https://chromewebstore.google.com/detail/nostr-web-browser/hhdngjdmlabdachflbdfapkogadodkif
- Firefox Add-ons: https://addons.mozilla.org/en-US/firefox/addon/nostr-web-browser/
- Issues: GitHub Issues
- Email: support@shugur.com