-
@ Sebastix
2025-06-02 18:20:031) How did you spend your time?
I continued to write and publish more detailed weekly updates here: https://nostrver.se/blog. These updates are also cross-posted via Nostr as long-form content.
All commits on the main branch from 01-03-2025 till 30-04-2025: https://github.com/nostrver-se/nostr-php/commits/main/?since=2025-03-01&until=2025-04-30
NIP-19 bech32-encoded entities
This has been implemented in the library, see https://github.com/nostrver-se/nostr-php/pull/68
Added getTag method to the Event class
https://github.com/nostrver-se/nostr-php/commit/5afa38a45d3371bf79c78cda4d93be3ecef86985
Added a profile class to fetch profile metadata of a given pubkey
https://github.com/nostrver-se/nostr-php/commit/0e6cbbb80b08b2b38722d4cef68205c64b70b205
Drupal nJump module which implements Nostr-PHP
This Drupal module which is providing these Nostr features is FOSS and uses the Nostr-PHP library for doing the following:
- Request the event from one or more relays
- Decode the provided NIP-19 identifier
For now this module is way for me to utilize the Nostr-PHP library with Drupal for fetching events.
Any event and a NIP-19 identifier can now be fetched with the following URL pattern:
https://nostrver.se/e/{event_id|nevent1|note1|addr1}
As an example, take this URL https://nostrver.se/e/nevent1qvzqqqqqqypzqmjxss3dld622uu8q25gywum9qtg4w4cv4064jmg20xsac2aam5nqqsqm2lz4ru6wlydzpulgs8m60ylp4vufwsg55whlqgua6a93vp2y4g3uu9lr fetches the data from one or more relays. This data is then being saved as a (Drupal) node entity (in a database on the server where this website is hosted, which is located in my tiny office). With this saved node, this data is now also available at https://nostrver.se/e/0dabe2a8f9a77c8d1079f440fbd3c9f0d59c4ba08a51d7f811ceeba58b02a255/1 where the (cached) data is server from the database instead. It's just raw data for now, nothing special about it (yet).
Contributions to the library
- NIP-04 + NIP-44
https://github.com/nostrver-se/nostr-php/pull/84
https://github.com/nostrver-se/nostr-php/pull/88 - NIP-05 internet identifier lookup
https://github.com/nostrver-se/nostr-php/pull/89 - Allow verification of Event objects
https://github.com/nostrver-se/nostr-php/pull/86 - Work in progress: NIP-17 direct messages
https://github.com/nostrver-se/nostr-php/pull/90
All these contributions are made by Djuri who is working on the Nostr integration in https://satsback.com and on a private messaging browser client https://n17.chat.
Removed the CLI tool from the library
See https://github.com/nostrver-se/nostr-php/pull/93
New / updated documentation at nostr-php.dev
I started to explore what is possible generating documentation using Goose as an AI agent and Claude as the LLM provider. Bootstrapping new pages with documentation works very well while I point to several resources to be used as input for the LLM (using the example snippets in the Nostr-PHP library and the Nostr NIP repository).
All commits on the master branch from 01-03-2025 till 30-04-2025: https://github.com/nostrver-se/nostr-php.dev/commits/master?since=2025-03-01&until=2025-04-30- Updated the page how to handle tags on a event, see https://nostr-php.dev/guides/manage-tags-on-an-event#getting-specific-tags
- Added a instructions to try out the library online at https://nostr-php.dev/guides/get-started
- Work in progress, NIP-19 documentation: https://github.com/nostrver-se/nostr-php.dev/tree/feat/nip19docs and https://nostr-php.dev/guides/nip19
Some analytics
Source: https://packagist.org/packages/swentel/nostr-php/stats
Other Nostr stuff I would to mention I worked on
NIP-B0 web bookmarks with CCNS.news
I moved https://ccns.nostrver.se to a own domain https://ccns.news and has integrated NIP-B0 which we worked out how to handle web bookmarks via Nostr. Before this NIP was merged, there were already some other Nostr clients handling web bookmarks:
Also Fiatjaf started to work on an annotation noting tool (browser extension) called Lantern (which is a fork of https://hypothes.is) integrating Nostr for creating highlights and annotations on a webpage with text. This extension can also be used to bookmark web pages.
On CCNS.news there is a global feed now: https://ccns.news/global which fetches all the web bookmark events with kind
39701
from several public Nostr relays. I had a rough idea to compare feeds generated with NDK and Nostr-PHP (for both using the same set of relays):When you post a bookmark now on the site, a kind
39701
event is transmitted to some Nostr relays (take a look at this event for example). Optionally you can also publish this content as a note to the network.2) What do you plan to work on next quarter?
- Already work in progress:
- Review and merge PR with NIP-17
https://github.com/nostrver-se/nostr-php/pull/90 - Implement NIP-65 with RelayListMetadata class
https://github.com/nostrver-se/nostr-php/pull/100 - Implement DMRelayList class
https://github.com/nostrver-se/nostr-php/blob/main/src/Event/List/DmRelaysList.php - Review and implements extra metadata fields for profile
- https://github.com/nostrver-se/nostr-php/pull/94
- Implement PersistantConnection class
https://github.com/nostrver-se/nostr-php/pull/99 - Review and merge PR NIP-13 proof of work
https://github.com/nostrver-se/nostr-php/pull/97 - Review and merge PR for implementing methods (TODO's) on Relay and RelaySet class
https://github.com/nostrver-se/nostr-php/pull/95
- Review and merge PR with NIP-17
- Planned:
- Research how the revolt/event-loop package can be used to serve as a sort of a message bus for handling async and concurrent requests in the library
- Build a stable 2.0.x release
- By default and full async concurrent requests support
- Add / update documentation on https://nostr-php.dev:
- Direct messages with NIP-04 and NIP-17
- Encrypted payloads with NIP-44
- Instructions how to bootstrap a Nostr profile with a given pubkey
- Host the https://nostr-php.dev website as a static website using Blossom.
See https://github.com/lez/nsite and https://github.com/hzrd149/nsite-ts
3) How did you make use of the money?
- Livings costs
4) Is there anything we could help with?
I would love to see a (closed/private) digital place with other Nostr OpenSats grantees where we can share our experiences and challenges. We could give feedback to each other as a form of encouragement. For example I'm curious how other grantees are explaining the work they to other which are not familiar with FOSS, Nostr and/or Bitcoin.