Skip to content

jj10133/Vinjari

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vinjari

A p2p browser for macOS built on the Holepunch stack. Browse sites served directly from Hyperdrive over Hyperswarm — no servers, no CDN, no domain required.

How it works

Every site is a Hyperdrive — a p2p filesystem identified by a public key. When you navigate to a hyper:// address, Vinjari connects to peers in the Hyperswarm DHT who are seeding that drive and streams the content directly to WebKit. The experience is identical to browsing a normal website.

hyper://73kf7pzbtcy9f4jtxssy941adse9jheddqx3f931o9d65k13g99y/

Features

  • hyper:// browsing — load any Hyperdrive site by key or z-base-32 address
  • Native macOS tabs — full window tab support, ⌘T for new tab
  • Range requests — video and audio streaming works out of the box
  • Back / forward / reload — full browser navigation
  • External linkshttps:// links open in your default browser

Stack

Layer Technology
Runtime BareKit — JS worklet embedded in the app
Transport bare-rpc-swift — IPC between Swift and JS
Networking Hyperswarm — DHT peer discovery
Storage Hyperdrive — p2p filesystem
Rendering WebKit — hyper:// served via URLSchemeHandler

Publishing a site

Any static site works. Build it, mirror it to a Hyperdrive, seed it:

# Install the drives CLI
npm i -g drives

# Create a new drive
drives touch
# → New drive: <z32-key>

# Mirror your built site into the drive (Astro, Next.js, plain HTML — anything)
drives mirror ./dist/ <z32-key>

# Seed so others can reach it
drives seed <z32-key>

Then open Vinjari and navigate to hyper://<z32-key>/.

Getting your environment set up

Prerequisites

  • macOS 26+
  • Xcode 26+
  • Node.js 18+
  • XcodeGen: brew install xcodegen
  • GitHub CLI: brew install gh

Steps

1. Clone and install JS dependencies

git clone https://github.com/your-org/Vinjari
cd Vinjari
npm install

2. Download BareKit

BareKit is the Swift package that embeds the Bare JS runtime inside a macOS app. You need its prebuilt framework.

gh release download --repo holepunchto/bare-kit <version>

Unpack prebuilds.zip and move macos/BareKit.xcframework into app/frameworks/:

app/
  frameworks/
    BareKit.xcframework/   ← here

3. Generate the Xcode project

xcodegen generate

Re-run this any time you edit project.yml.

License

GPL-3.0

About

P2P browser for creators, podcasters, bloggers... all for macOS/iOS

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors