verbiricha on Nostr: would be cool to implement a smol reactive lisp in grimoire so you can run scripts ...
would be cool to implement a smol reactive lisp in grimoire so you can run scripts like:
;; Who do my friends follow that I don't?
(def friends-of-friends
(->> $contacts ; people I follow
(req :k 3 :a) ; their contact lists
(tags :p) ; who they follow
(diff $contacts) ; remove people I already follow
(diff #{$me}))) ; remove myself
;; See their recent posts
(req :k 1 :a friends-of-friends :l 50 :since 7d)
and get a custom feed. you can calculate rankings, pubkey sets, relay sets, etc. and the UI can show the right component for result. computed locally. shareable as nostr events.
Published at
2026-01-30 21:21:34 UTCEvent JSON
{
"id": "9651ef93205106b1987157df3a95ef5bea4ce911c31a64a56d0a42ed818a0cb0",
"pubkey": "7fa56f5d6962ab1e3cd424e758c3002b8665f7b0d8dcee9fe9e288d7751ac194",
"created_at": 1769808094,
"kind": 1,
"tags": [
[
"client",
"grimoire",
"31990:7fa56f5d6962ab1e3cd424e758c3002b8665f7b0d8dcee9fe9e288d7751ac194:k50nvf8d85"
]
],
"content": "would be cool to implement a smol reactive lisp in grimoire so you can run scripts like:\n\n;; Who do my friends follow that I don't?\n(def friends-of-friends\n (-\u003e\u003e $contacts ; people I follow\n (req :k 3 :a) ; their contact lists\n (tags :p) ; who they follow\n (diff $contacts) ; remove people I already follow\n (diff #{$me}))) ; remove myself\n;; See their recent posts\n(req :k 1 :a friends-of-friends :l 50 :since 7d)\n\nand get a custom feed. you can calculate rankings, pubkey sets, relay sets, etc. and the UI can show the right component for result. computed locally. shareable as nostr events.",
"sig": "5010506ec63aa983ea8b065182388e066520118e87db037faca38b2d703aa48420f49a63d9f595fa1b1d3620625a94f766fec68117f9eba5e5066444b72eb960"
}