prm3theus / agregore-browser

A minimal web browser for the distributed web

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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
    • 😢 No DatArchive 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+[ and ctrl+])
  • 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+[ and ctrl+] 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
  • Persist browser settings / history to Hyperdrive
  • Load extensions from p2p protocols.

About

A minimal web browser for the distributed web

License:GNU Affero General Public License v3.0


Languages

Language:JavaScript 91.0%Language:HTML 6.9%Language:Shell 2.1%