Skip to content

Repository files navigation

PeerSky Browser

GitHub Actions Workflow Status platform GitHub Pre-release Mastodon Follow Ask DeepWiki JavaScript Style Guide PeerSky Browser home page

💻 Download 📜 Docs

PeerSky is a gateway to the peer-to-peer web, not just a browser. It turns your computer into a node (a server for the network), so pages and apps can come from the people who have them rather than from one company's server. The everyday web works as usual, and alongside it PeerSky carries a full ecosystem of apps built on the same idea: chat, collaborative editing, file sharing, a music player, a local AI, and more. Most of these keep working on a local network with no internet at all.

We are building a surveillance-free internet where you own your tools, your data, and your connections, and where no single company can shut you out. Our vision is to save the internet, one peer at a time.

Development

Node.js and npm Setup

Please refer to the Node.js official documentation to install Node.js. Once installed, npm (Node Package Manager) will be available, allowing you to run commands like npx and npm.

  • npm: Comes bundled with Node.js. Verify installation by running:
    node -v
    npm -v

Install dependencies

npm install

Start the app

npm start

Build

After development of the browser, run the following command. This will create a production build for the platform you are on.

npm run build

Now, the dist folder will appear in the root directory.

Building the Linux AppImage also needs zsyncmake, from the zsync package, to produce the .zsync that AppImage update tools use for incremental downloads. Without it the build still succeeds and simply skips that file, but a release should be built with it installed.

sudo apt-get install -y zsync   # or: brew install zsync

Linting

This project uses StandardJS for code style. To check for lint errors:

js-standard-style

npm run lint

To auto-fix lint errors:

npx standard --fix

Testing

Run all tests:

npm test

Run specific test suites:

npm run test:p2p          # Protocol handler unit tests (IPFS/Hyper/HS/BitTorrent)
npm run test:p2p:e2e      # End-to-end sync tests (2-3 min)
npm run test:backup       # Backup, restore, and identity transfer
npm run test:extensions   # Extension lifecycle tests
npm run test:security     # Security and isolation tests
npm run test:llm          # LLM streaming and dispatcher contract
npm run test:updater      # Auto-updater tests
npm run test:perf         # Performance regression tests
npm run test:integration  # Real app restart tests (5+ min)

npm test runs every suite and prints a combined pass/fail tally. It keeps going after a failure so one run shows the whole picture, then exits non-zero naming the suites that failed. npm run test:ci is the same minus the slow integration suite, and is what the workflows run.

For detailed testing documentation, see Testing Guide.

Logging

For details on the Peersky logging system, see the Logging Documentation.

Contribute

  • Thanks for your interest in contributing to PeerSky Browser. There are many ways you can contribute to the project.
  • To start, take a few minutes to read the "contribution guide".
  • We look forward to your pull requests and / or involvement in our issues page.

License

PeerSky Browser is licensed under the MIT License.

About

A local-first, peer-to-peer web browser for a surveillance-free internet.

Topics

Resources

Code of conduct

Contributing

Stars

88 stars

Watchers

4 watching

Forks

Releases

Used by

Contributors

Languages