v0.1.0 - Early Access

The web,
unchained.

Lattice is a peer-to-peer protocol for publishing and browsing websites without servers, registrars, or anyone else's permission. Your name. Your site. Your network.

lattice
$lattice publish --dir ./my-site --name mysite
Publishing mysite.loom...
Auto-claimed mysite.loom
Published mysite.loom v1 (12 files)
$lattice name info mysite
Name: mysite.loom
Owner key: 3f31afeb97ae362178d1...
$open mysite.loom
Live. No servers. No registrar. No permission needed.

No registrars.
No gatekeepers.

Lattice uses a Kademlia DHT to store name records and site content across a network of peers. Ed25519 signatures ensure only you can publish to your name. Every node verifies everything.

01 - Claim

Register your name

Names are claimed on the DHT with your Ed25519 public key. First-come, first-served. No registrar. No fees. Heartbeats keep names alive.

02 - Publish

Push your site

Files are content-addressed and distributed as hashed blocks. The manifest is signed, so peers reject tampered or forged content.

03 - Browse

Visit any .loom site

The browser extension routes .loom requests to your local daemon. Your node fetches, verifies, and serves content from the network.

04 - Persist

The network remembers

As peers fetch content they replicate it. The more nodes online, the stronger and more resilient every published site becomes.

Everything you need to
build, publish, and operate.

The landing page tells the story. The docs cover the protocol model, identity rules, Fray, CLI usage, and local development workflow.

Built for the
open web.

🔑

Cryptographic ownership

Names and sites are tied to Ed25519 keypairs. No authority can revoke your name or take down your site. Ownership is proven by signature, not by a registrar's database.

🌐

Real browser support

Browse .loom sites natively in Firefox via the Lattice extension. No special browser. No Tor. Install the extension and it just works.

🔒

Content integrity

Every file is hashed. Every manifest is signed. Your node verifies everything before serving it, so corrupted or forged content is rejected at the protocol level.

📡

NAT traversal

AutoNAT detects your network topology. Circuit relay and hole punching connect nodes behind home routers automatically without port forwarding.

Zero configuration

Install the daemon, install the extension, done. Bootstrap peers connect you to the network on first run. Publishing a site is a single command.

🛠️

Open protocol

GPL v3. The same network that hosts static sites can also host apps, forums, and other signed overlays built on the same core protocol.

Up in
five minutes.

Pick the packaged install path for your platform if you just want to get online quickly. The source build is still there if you want to hack on the protocol itself.

1 - Install

Choose the fastest path for your platform

Arch users can install from the AUR, Debian and Ubuntu can use the published APT repo, macOS can use the Homebrew tap, Windows can use the MSI, and source builds still work everywhere. Linux package upgrades restart active daemons automatically, and the same is now true for Homebrew-managed and MSI-managed services.

Arch:
yay -S lattice-net-git

Debian / Ubuntu:
sudo apt install lattice

Windows:
lattice-windows-x86_64.msi

macOS:
brew tap fordz0/lattice
brew install lattice-net
2 - Source build

Build from source if you want the repo workflow

This is still the right path if you want to work on Lattice itself or run straight from a checkout.

git clone https://github.com/fordz0/lattice
cd lattice
cargo build --release -p lattice-daemon -p lattice
3 - Run

Bring the node online

lattice up starts or enables the daemon, waits for RPC readiness, and leaves you with one obvious way to get back online later. Follow it with lattice doctor if you want a quick health check.

lattice up
lattice doctor
lattice status
Server note

Use server mode on always-on Linux hosts

For a VPS or box that should stay online continuously, use the explicit system-service path instead of the desktop convenience command.

sudo lattice up --server
sudo lattice up --bootstrap
4 - Browse

Load the Firefox extension

The extension keeps .loom in the address bar and routes requests through your local node instead of a gateway.

Install from AMO:
https://addons.mozilla.org/en-US/firefox/addon/lattice/
5 - Publish

Ship your first site

Publishing will claim the name if it is still free. Add a .latticeignore file if you want to keep build artifacts or private files out of the published site. Later, app updates are one command away.

lattice publish --dir ./my-site --name mysite
lattice update --all

Live on the
Lattice network.

The network is still young. Each peer that joins makes the system stronger, improves replication, and increases the odds that published content remains reachable.

DHT
Name records
SHA
Content addressed
P2P
No origin server