0xSearchstr — Decentralized Search That Answers to You
0xSearchstr — Decentralized Search That Answers to You
For twenty years the search box has been a confession booth. You type your questions, your fears, your plans into a box owned by an advertising company, and it remembers everything. The surveillance economy is built on that single text field. Every query is a free gift of intent to someone who monetizes it.
0xSearchstr flips the model. It is a browser-first search aggregator built by NostrDanish for the 0xPrivacy rebellion. Nostr-native search (NIP-50) comes first. Clearnet engines answer only when you ask them to. By default, no backend logs your intent — the search happens in the device in your hand.
The Core Idea: Search You Own
0xSearchstr does not run a giant crawler empire. It does not profile you. Instead it is a thin, auditable client that talks to many sources in parallel:
- Nostr relays (NIP-50) are ranked highest. Decentralized publishing gets rewarded, not ad boards.
- Clearnet providers — SearXNG, DuckDuckGo, Wikipedia, Hacker News — answer when you switch tabs or when Nostr has nothing.
- Tor (Ahmia) and I2P crawlers reach the dark and the distributed web that Google never indexes.
If one source is censored or down, the others still answer. There is no single throat to choke.
How It Works — Plugin Provider Architecture
Every source is a module implementing one interface: SearchProvider, returning a universal SearchResult[]. The orchestrator runs them all at once, then merges, dedupes and ranks the combined stream. Adding a provider is three steps: implement the interface, register it in registry.ts, done. The orchestrator picks it up automatically.
Current providers:
| Provider | Source | Transport |
|---|---|---|
| Nostr | NIP-50 relays | WebSocket |
| SearXNG | 6 public instances | CORS proxy |
| DuckDuckGo | HTML scraper | CORS proxy |
| Wikipedia | MediaWiki API | Direct CORS |
| Hacker News | Algolia API | Direct CORS |
| Tor (Ahmia) | .onion search | CORS proxy |
| I2P | Eepsite directory | Links |
The UI is split into tabs — All, Nostr, Web, Wiki, News, Tor, I2P — wrapped in a cyberpunk terminal theme: green CRT glow, monospace, scanlines. It reads like a hacker’s deck, not a corporate portal.
Self-Hosted Backend (Optional)
Want to own the index instead of leaning on public relays? The backend/ folder ships a Docker stack:
- Meilisearch — full-text index engine.
- Nostr Crawler — indexes kinds 0 / 1 / 30023 / 1063.
- Clearnet + Tor/I2P crawlers — polite, rate-limited, policy-enforced.
- NIP-50 Relay — bridges Meilisearch to Nostr so your index is queryable over the protocol.
- Abuse API — report management with an Ahmia-style content policy.
This is real infrastructure. Run it if you want to be a node in a decentralized search mesh — not because you have to.
Run It Yourself
The front end is pure React 19 + TypeScript + Vite + TailwindCSS 4 + shadcn/ui + Nostrify + TanStack Query, built with Shakespeare (shakespeare.diy). Clone, install, run:
git clone https://github.com/NostrDanish/0xSearchstr.git
cd 0xSearchstr
npm install
npm run dev
# open http://localhost:8080
No API keys. No account. No telemetry. That is the point.
Why It Matters to the Rebellion
Search is power. Whoever answers your questions shapes what you believe is true. Centralized search has spent two decades deciding which voices surface and which vanish. 0xSearchstr is a small, deliberate crack in that monopoly:
- It makes Nostr results first-class, giving decentralized publishers a discovery engine of their own.
- It removes the middleman between a question and an answer.
- It is fully auditable — you can read every line, run it locally, and fork it.
- Its fallback ladder (SearXNG, DDG, Brave, Presearch, Mojeek, Marginalia) means you are never trapped with one provider.
Honest Caveats
No tool is a silver bullet, and we do not pretend otherwise:
- Browser-first means dependencies. Some providers rely on CORS or a proxy to function from the client.
- NIP-50 is still young. Relay search is only as deep as what Nostr indexes — thin for general web queries today.
- The self-hosted backend is heavy. Meilisearch is CPU-hungry; run it on real hardware, not a phone.
- License gap. The README declares MIT, but verify the LICENSE file in the repo before forking commercially. At last check the repo shipped no LICENSE file — treat that as a flag, not a blocker.
Verdict
0xSearchstr is exactly the kind of tool the rebellion should ship: small, auditable, self-hostable, Nostr-first, surveillance-last. It will not replace Google tomorrow. It does not try to. What it does is hand the search box back to you — and show a generation of builders that a decentralized alternative is not only possible, it is already running.
Clone it. Run it. Add a provider. The cage has a door; this is one of the keys.
- Live: https://0xSearchstr.shakespeare.wtf
- Source: https://github.com/NostrDanish/0xSearchstr
- Nostr identity: @z2k4…2ew6
Write a comment