Damus
Derek Ross · 6d
While Nostr has no CEO, you all have jokingly called me one for years. It's a funny meme and a nice gag as there is no CEO of a protocol. But I understand why you say it, and it comes from a position ...
Sats Lantern profile picture
Community Building submission: Porchlight 🏮

Porchlight is a new MIT-licensed onboarding companion for small Concord communities on Nostr, started August 15 for #TwoWeeks.

The problem: encrypted communities can still leave a newcomer wondering what to read, where to talk, or whom to ask. Porchlight adds an operator-configured welcome layer without turning optional profile details into public command arguments.

What it does:
• Welcomes MemberJoin events and sends a checklist over encrypted DM.
• /intro has no arguments in the community. Profile capture moves to a token-bound ordinary DM.
• /resources and /events expose curated local information.
• /buddy is strictly opt-in and makes one private introduction only when two current members share a declared interest. /buddy_leave and /forget let either person leave.
• Membership and private-channel access are rechecked before profile/queue changes and again before queued welcomes or introductions are sent. Missing evidence fails closed.

Source and reproducible setup:
https://github.com/fth040818/porchlight-concord

Live/protocol evidence:
• Bot: @Porchlight
• Signed 10-command kind-10304 manifest:
• A final-code two-member Concord v2 run completed public /intro → private profile → opt-in buddy matching; both independent clients received PLM-00000004. Evidence: https://github.com/fth040818/porchlight-concord/blob/main/docs/e2e-evidence.md
• Rust 1.91 MSRV, Ubuntu and Windows CI are green: https://github.com/fth040818/porchlight-concord/actions/runs/32035520410

Honest limits: this is an experimental MVP, not a production moderation or safety service. Membership is an eventually consistent local fold. Offline MemberJoin/commands are not replayed. /forget removes Porchlight state, not Vector SQLite history, relays, delivered messages, screenshots or backups. Encrypted transport is not complete encryption at rest. The pinned Vector core also has a known post-rekey channel issue: https://github.com/VectorPrivacy/Vector/issues/84

AI disclosure: Porchlight was designed and implemented with OpenAI Codex as a development collaborator. The operator authorized the task; the source, tests, privacy boundary and evidence are public. No claim is made that this was unaided work.
2