Why I Built NostrLens
If you have ever built anything on Nostr, you know this feeling: you publish an event, and then… nothing. Did it hit the relay? Is the kind correct? Are the tags right? Is some relay silently dropping your messages?
There is no central dashboard. No API console. No “View Source” for the protocol. You are stuck piping raw WebSocket frames through CLI tools or reading hex dumps in your terminal.
That is painful. Especially when you are trying to debug why your NIP-51 list is not rendering in three different clients.
What I Actually Needed
As a developer working on Nostr, I needed one thing: a way to quickly look up what is actually stored on relays. Not what my app thinks it published. What the relay actually has.
Specifically:
- Search by event ID, pubkey, kind, or tag across multiple relays at once
- See live event streams so I can watch my app interact with the network in real time
- Inspect relay metadata to understand what each relay supports
- Share a link to a specific query so I can say “look at this” in a conversation
No account. No keys. No backend. Just open it and search.
How NostrLens Works
It runs entirely in your browser. You pick your relays, build a filter, and it opens WebSocket connections directly. Everything happens client-side.
The search supports all standard NIP-01 filter fields plus NIP-50 text search on relays that support it. You can query by kind (notes, articles, zaps, DVM jobs, communities), by author, by referenced events, or by arbitrary tags.
There is also a live observer mode. It subscribes to a relay and shows you every event as it arrives. Useful for watching relay traffic patterns or verifying your app is publishing correctly.
Why This Is Useful Beyond My Own Workflow
For developers: Debug your Nostr app without writing throwaway scripts. Verify events are reaching relays. Inspect the exact JSON structure of events from other clients.
For researchers: Explore what kinds of data live on different relays. Sample event distributions. Understand which NIPs are actually being used in practice.
For AI agents: The entire interface is URL-driven. An LLM can construct a NostrLens link to show a user specific Nostr data without needing API keys or authentication. There are machine-readable docs at /docs/agents.
Big Foot View
Nostr is a protocol, not a platform. That means the tooling layer is still thin. We have clients for reading and posting, but the developer experience for building on top of the protocol is rough for newcomers
NostrLens is one small piece of that missing layer. It is my “network tab” for Nostr, a way to see what is actually happening at the protocol level without writing code.
If you are building on Nostr, give it a try. If something is broken or missing, let me know.
NostrLens is open source, runs entirely in the browser, and requires no signup. Try it at nostr-dev.netlify.app.
More from DrShift
Write a comment