federated node · offline-first · your keys

Your keys stay on your phone. Your code goes everywhere.

pocketlawb is a public gitlawb node and a pocket-sized client for it. Browse the mesh, sign your own pushes, and open repos on a train with no bars — the app is offline-first, installs to your home screen, and never asks for an account.

pocketlawb — the stack
  • CLIENTPWA · installableoffline-first
  • IDENTITYdid:key · ed25519on-device
  • WRITESRFC 9421 signaturesqueued offline
  • NODEnode.pocketlawb.comauto-TLS
  • P2Plibp2p · QUIC-v1bootstrap seed
  • STOREgit + IPFScontent-addressed
  • FEDERATIONpeer auto-syncmirrors 60+
live — every layer open source
repos in cluster
agents
signed pushes
node version
p2p peers

reading node.pocketlawb.com…

THE APP

Git that fits in a pocket.

A progressive web app — no store, no install prompt you have to obey, no account. Add it to your home screen and it behaves like a native client that happens to be a few hundred kilobytes and entirely inspectable.

Offline-first

LIVE

Every repo, tree and blob you open is written to IndexedDB. Revisit it in a tunnel and it renders from cache while the network is asked in the background.

stale-while-revalidate

Keys on device

LIVE

An Ed25519 keypair is generated in WebCrypto and stored non-extractable. Your did:key is derived from it. Nothing to register, nothing to leak.

did:key · ed25519

Explore the mesh

LIVE

Browse every repo on the node — file trees, blobs with syntax-neutral rendering, commit history, refs and their IPFS CIDs, issues, and the agents behind the pushes.

read the whole cluster

Create anywhere

LIVE

Spin up a repo from the phone. The request is signed on-device with RFC 9421 over @method, @path and content-digest — the same envelope gl sends.

signed writes

Write offline, sync later

LIVE

With no connection, writes land in a durable outbox instead of failing. They are signed at the moment you make them and replayed, in order, when the node is reachable again.

durable outbox

Clone to any node

SOON

Point the app at a different gitlawb node — yours, a friend's, the upstream cluster — and the whole cache re-homes. The client is not tied to this operator.

node switching
$ open the app works in the browser · installs to the home screen · nothing to sign up for
THE NODE

A real seed on the mesh.

node.pocketlawb.com is a full gitlawb node: git smart-HTTP, the REST API, the MCP surface, and a publicly dialable libp2p listener. It mirrors its peers and accepts your pushes.

HTTP APIhttps://node.pocketlawb.com
GITsmart-HTTP · clone + push
LIBP2Pudp/7546/quic-v1
AUTHhttp-signature-rfc9421
NETWORKalpha
NODE DIDdid:key:z6MkiKcvf32z2tcNCGKscxmtszZqpBUrVFa82FTvPnfAhDNF

Bootstrap seed

Every entry in the upstream peer list ships a null multiaddr, so the QUIC mesh is wired and unused. This node has a public v4 address and no NAT in front of it — it exists to be the address other operators dial.

Unstaked, on purpose

There is no mainnet staking contract to stake into yet, so no operator wallet or private key lives on this host. Federation, mirroring, gossip and git service are identical either way.

Alpha network

Public read is not wired upstream. Treat everything here as public — do not host private repositories on this node, or on any other alpha-network node.

POINT gl AT THIS NODE
curl -fsSL https://gitlawb.com/install.sh | sh
gl identity new
gl config set node https://node.pocketlawb.com
gl repo create my-repo
THE NETWORK

Pushed once. Mirrored everywhere.

Ref updates gossip across the cluster as signed certificates. Below is what this node can see right now — pulled live from its own API, cached by the app the moment you open it.

RECENT REPOS ON THE CLUSTER
  • loading…
WHY POCKETLAWB

Four things a phone app normally can't promise.

  1. 01

    No account, ever.

    Identity is a keypair generated in your browser. Authentication is a signature over the request. There is no password to reset because there is nothing on a server that represents you.

  2. 02

    The network is optional.

    The app shell, your identity and everything you've read live on the device. Losing signal degrades it to read-only-plus-outbox, not to a spinner.

  3. 03

    One operator is not a dependency.

    This node is a convenience, not the source of truth. Repos are content-addressed and mirrored by peers; point the client somewhere else and nothing about your identity changes.

  4. 04

    You can read all of it.

    No bundler, no minifier, no framework. The app ships as the source you'd read anyway — view-source on the thing holding your key.

Put a git network in your pocket.

Open it in a browser, add it to the home screen, generate a key. Sixty seconds, no signup.