Offline-first
LIVEEvery 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.
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.
reading node.pocketlawb.com…
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.
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.
An Ed25519 keypair is generated in WebCrypto and stored non-extractable. Your did:key is derived from it. Nothing to register, nothing to leak.
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.
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.
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.
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.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.
https://node.pocketlawb.comsmart-HTTP · clone + pushudp/7546/quic-v1http-signature-rfc9421alphadid:key:z6MkiKcvf32z2tcNCGKscxmtszZqpBUrVFa82FTvPnfAhDNFEvery 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.
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.
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.
gl AT THIS NODEcurl -fsSL https://gitlawb.com/install.sh | sh
gl identity new
gl config set node https://node.pocketlawb.com
gl repo create my-repo
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.
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.
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.
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.
No bundler, no minifier, no framework. The app ships as the source you'd read anyway — view-source on the thing holding your key.
Open it in a browser, add it to the home screen, generate a key. Sixty seconds, no signup.