OverviewFilesCommitsIssuesDocsReleasesPeers

favela-peer commits / 6a13f01

README: Install and License, and less bold
From the same holepunch comparison: 4 of 10 of theirs carry Install and 9 of 10 carry License; we had neither, in any of the three. Install is the publish-then-install ceremony rather than a hand build, with the registry key left as a placeholder — this app was never `pgh app claim`ed, so there is no real key to quote and inventing one would be worse than the placeholder. License states the truth: package.json declares nothing and there is no LICENSE file. That is a decision to make, not something a README can assert on its own. Trimmed four decorative bold spans in the primitives and ideas sections. Holepunch averages one per file; we averaged nine, which spends the emphasis I need for the things that actually bite. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
6a13f01dcef4e22ceee76526bb1708149dfb71bf
by plankatron <fleeky@gmail.com> · 2026-09-09T21:29:05.000Z

Changed files (1) +22 -7

README.md +22 -7
……@@ -6,10 +6,21 @@ your machine. There is no server, no account, and nobody to ask.
66This is the daemon. It keeps your data, talks to other peers, and answers questions over a unix
77socket. You read it through `favela-surface` in a browser, or the `favela` CLI below.
88
9## Running
9## Install
10
11Deploy is publish then install — there is no hand build, and the release carries prebuilds for
12every platform:
1013
14```sh
15pgh publish .
16pgh app install pgh://<registry-key>/favela-peer --name favela-peer
1117```
12bare index.js # or the pgh-installed launcher, favela-peer
18
19## Running
20
21```sh
22favela-peer # the pgh-installed launcher
23bare index.js # or straight from a checkout
1324```
1425
1526Storage is `~/.favela`, socket `~/.favela/favela.sock` — `FAVELA_STORAGE` and `FAVELA_SOCK` move
……@@ -49,25 +60,25 @@ contributes nothing — which is correct, and is why `favela missing` exists. A
4960different thing from a gap that is silently empty.
5061
5162**A post is a markdown file** — JSON frontmatter, then a body. It is mutable and edited in place,
52so the content hash changes on every edit and **the name is the stable identity, never the hash**.
63so the content hash changes on every edit and the name is the stable identity, never the hash.
5364The bytes live content-addressed in hyper-overlay; the log holds a pointer. See `favela-markdown`.
5465
5566## The three primitives
5667
57**Feed** — one identity's log. Its writers are that identity's devices, and its roster is flat:
68**Feed** — one identity's log. Its writers are that identity's devices, and its roster is flat —
5869the only question is whether a writer is on it. You have exactly one.
5970
60**Room** — many *members*, each with their own devices, and membership is the audience. Two levels
71**Room** — many members, each with their own devices, and membership is the audience. Two levels
6172rather than one, which matters more than it sounds: a role belongs to a person, not to a laptop.
6273The vocabulary is keet's — admin, moderator, peer, read-only — because there was no reason to
6374invent another. A DM is a room with one other member in it.
6475
65The engine underneath is **autobee**, not autobase. Autobase needs `floor(N/2)+1` indexers, so at
76The engine underneath is autobee, not autobase. Autobase needs `floor(N/2)+1` indexers, so at
6677N=2 one member going offline freezes the view while it keeps growing, and it cannot heal by
6778dropping to one. A person's two devices make N=2 the ordinary case, not an edge case. Weights
6879retire that whole class of problem.
6980
70**Namespace** — human names that resolve to feeds. It is a *subscription*, not an authority: two
81**Namespace** — human names that resolve to feeds. It is a subscription, not an authority: two
7182people subscribed to different namespaces resolve the same string to different feeds, and that is
7283correct rather than a conflict. We give up global uniqueness and get, in exchange, a name that is
7384always qualified by a namespace you can point at. Resolution runs handle → self-label → key, and
……@@ -93,3 +104,7 @@ browser sessions, files and avatars, the mirror, the follow graph, search, notif
93104replication. All passing.
94105
95106Build order and the two-peer acceptance tests are in `hyper-social` #61 §10 and §11.2.
107
108## License
109
110Not yet declared — `package.json` carries no `license` field and there is no LICENSE file.