Agregore Browser
A minimal web browser for the distributed web
Running
Download an installer from the releases page
OR
- Clone the repo
npm install
bash ./rebuild.sh
npm run start
Supported protocols
-
hyper://
- Able to read from archives
- Able to resolve
dat-dns
domains
-
dat://
- Able to read from archives
- Able to resovle
dat-dns
domains 😢 NoDatArchive
support.- A bunch of websites are probably broken.
- ipfs
- Working on reading from URLs
PRs for more protocols are welcome.
Features / Keyboard shortcuts
- Navigate web pages (back and forward with
ctrl+[
andctrl+]
) - Open multiple windows (
ctrl+n
) - Basic navigation bar (
ctrl+l
to bring into focus) - Dev tools (
ctrl+shift+i
)
Contributing
Feel free to open a Github issue if you wish to tackle one of the items on the roadmap, or message @RangerMauve directly on whatever platform you can find them on.
This project uses the StandardJS code style. Please format your code with standard --fix
or run npm run lint
.
Roadmap
- Basic browser features
- Navigate to URL
- Back / Forward
- Welcome page
- Basic hypercore-protocol / dat support
- Basic IPFS support
- Loading files
- Directory listing
- Loading pretty urls with index.html
- IPNS?
- Basic BitTorrent support (loading)
- Load web page when opening magnet link
-
bt://
protocol for loading individual files
- Better navigation UX
- Multiple windows
- Shortcuts for window creation
- Only allow single instance of the app (reuse the protocol handlers across windows)
- Make sure protocol handlers open correct URL
- Make sure page titles update the window title
- Keyboard shortcuts (use Menu bar with accelerator keys)
- Dev tools
-
ctrl+[
andctrl+]
for navigating history -
ctrl+l
for selecting the navigation bar
- fetch API for hyperdrives GH issue
- Creating an archive (scoped to page origin)
- PUT/DELETE methods for files / folders
- Track created archives for origin in a DB
- Access control prompt for writing to origin
- Better browser history
- As an extension?
- Save history to a DB
- Search through history?
- Provide history suggestions when typing in URL bar
- Bookmarks
- As an extension?
- Sync with Hyperdrive API?
- fetch API for IPFS (look at how their proxy works?)
- WebXR - Make sure it's working!
- Web extension support via electron-extensions
- Load extensions from
app/extensions/
folder - Somewhere to render badges
- Developer options page
- Track extensions in a DB
- Drag and drop extension folder
- Load extensions from
- Persist browser settings / history to Hyperdrive
- Load extensions from p2p protocols.