Join Nostr
2026-03-25 06:35:17 UTC

Innis on Nostr: And released innis/nostr-relay today. An async PHP relay for the Nostr protocol. It ...

And released innis/nostr-relay today. An async PHP relay for the Nostr protocol. It has been proven in the wild, but has not been beaten on by the world in the same way the client has.

There was again a round of refactoring before release, the same disease as before, tidying the internals so that strangers looking at the code would not think less of me. I am aware of what this is. Perfectionism dressed as professionalism, the delicate ego of a man who knows his work will be judged and would rather delay than be found wanting. At some point you recognise the pattern and push the thing out anyway.

Built on innis/nostr-core, same architecture, same discipline. AI was involved, same terms as the others. The architecture is mine. The machine held the other end of the board.

https://github.com/johninnis/nostr-relay

With the core, the client, and the relay now public, the infrastructure is out. The code was battle tested but weather worn, and the cleanup took more effort than I expected. Now back to the writing and the things built on top of it.
And released innis/nostr-client today. An async PHP client for the Nostr protocol. It talks to relays, manages subscriptions, handles the back-and-forth of messages. Async, which was the reason I started building it in the first place, because neither nostr-php nor nostriphant offered that when I began, and by the time they might have I was already too far in to turn around. How far in is something I am too ashamed to say out loud.

It has been running in production long enough that most of the sharp edges have been worn smooth by actual use rather than speculation about what use might look like. There was a recent round of refactoring to make the internals presentable for public viewing, the kind of work where you realize that code written for yourself and code written for others are not the same thing and the gap between them is larger than you thought. That tidying was part of what kept me from releasing it previously, and at some point the tidying becomes the delay and the delay becomes the excuse. It is done now. Ship the thing.

Built on innis/nostr-core, same architecture and same discipline. The protocol layer does the protocol work and the client does the client work and they do not reach into each other's business.

AI was involved, same terms as before. The architecture is mine and the decisions are mine and the machine held the other end of the board while I cut it.

https://github.com/johninnis/nostr-client

Thanks again to and for doing the real hard work and breaking the ice.

#nostr #php #opensource #nostrdev #asyncphp


#nostr #php #opensource #nostrdev