Show HN: My not-for-profit search engine with no ads, no AI, & all DDG bangs (nilch.org)

199 points by UnmappedStack ↗ HN
I've been working on a little open source [1] search engine, nilch. I noticed that nearly all well known search engines, including the alternative ones, tend to be run by companies of various sizes with the goal to make money, so they either fill your results with ads or charge you money, and I dislike this because search is the backbone of the internet and should not be commercial, so it runs in a not-for-profit style and aims to survive on donations. Additionally I'm personally really sick of AI in my search results so I got rid of that, and I wanted DuckDuckGo bangs so it supports all of them. Like many alternative search engines, it is fully private.

Sadly, it currently does not have its own index but rather uses the Brave search API. Once I'm in a financial position that it's possible, I would absolutely love to build a completely new index from the ground up which is open source, as well as an open source ranking and search algorithm, to back it.

I posted on Reddit and got an amazing amount of feedback which I implemented a number of feature requests, so I would really like your ideas, critiques, and bug reports as well. Thank you and sorry for the long post!

[1] https://github.com/UnmappedStack/nilch

26 comments

[ 0.27 ms ] story [ 56.7 ms ] thread
Awesome project, I have a quick suggestion but can you please make adding custom ddg bangs into your project itself rather quickly?

There was this project on hackernews which was recently shown where they (scraped?) the internet and then created an really efficient embedding of the search engine. I wish if you could look more into it or contact the creator of that project perhaps.

https://news.ycombinator.com/item?id=44878151 (Show HN: Building a web search engine from scratch with 3B neural embeddings)

Looks like https://search.wilsonl.in/ they have since then closed the live demo but I had used it when it was live and in my opinion, it was a mix of that if things needed some improvements but that it was also usable for some things which were in the dataset (Of course you wouldn't get Organic chemistry questions/answers for high schoolers as an example in there but you will find most things (usually wikipedia) and then some good sources, usually the ones popular but it was really cool overall so perhaps you can look more into it and helps

Now I really love your project a lot and I think there should be not for profit search engines, but I am a little worried about using it since if I use it as my search engine, then it might cost you a lot of money (using the brave api) .

I just searched and it seems that ecosia is a non profit as well so you can definitely partner up with them, I remember a post about qwant and ecosia partnering up to create an independent search engine.

I think that there should be competition within the search engine space especially via non profits in a way similar to wikipedia one might say ideally. Wishing you the best for this project's future!

(replying to dead reply downthread)

Kagi (custom) bangs[1] already supports `!cobalt <youtube video>`

I just added !cobalt to my custom bangs as `https://cobalt.meowing.de#%s`, and it works.

Kagi also accepts new public bangs: https://github.com/kagisearch/bangs#contribution-guidelines

Kagi bangs are free for everyone (a subscription is required for custom bangs and regular search).

- Example of how to use Kagi bangs without subscription: https://kagi.com/search?q=!chatgpt+TEST

- https://zbang.leftium.com/ uses Kagi bangs under the hood.

[1]: https://help.kagi.com/kagi/features/bangs.html#custom-bangs

Oh thanks for sharing but it seems I would still need to get kagi if I wanted to do !cobalt and I just wanted it to be something which can be used by just about anybody. (Imagine seeing someone downloading something on shitty website and being like oh let me help you and boom)

I think kagi's nice but this is some real pain which I feel like could be solved via nilch with not much pain as well.

Perhaps you can add the cobalt bang to kagi's global list so that people like us who don't use Kagi can use it as well too since the bangs are free for everyone.

I believe an open source ranking algorithm is antithetical to good search, sadly. It hands spammers a recipe for how to push past legitimate sites to dominate the search results.
How is it different from searxng then?
I'm in no way an expert, but IMO there is a major misconception in the free-ish software community that profit should be at most secondary to offering a fair and as good as sustainably possible product.

I strongly disagree with this. IMO developers of free-ish as in freedom products OWE it, not only to themselves, but their community to be as profitable as possible within the rules they think that should be followed (and those that are mandatory ofc).

Profit is not only by far the strongest motivating factor for others to adopt your set of rules, but also a guarantee to your community that the product will still be around in a few years and not turn into a rug pull because its developer is burned out after working 80 hour weeks for months or even years for less than minimum wage. It is also something you can trade for your values, e.g. offering great working conditions to your employees or funding projects or lobbying for laws you think will benefit society.

Debian keeps doing very well.
Will you include suggested autocomplete searches?
Doesn't seem to like double-quoted search strings:

  SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Single-quotes don't seem to work (doesn't change search results... doesn't exclude irrelevant results that don't contain the exact string).
I get this error anytime I search anything.

  Error loading search results. Please try again.

  SyntaxError: JSON.parse: unexpected keyword at line 1 column 1 of the JSON data
Searching for "DOMContentLoaded" gives me an error "'noresults' is not valid JSON" and the page gets stuck in an infinite refresh loop.

Edit: It's actually unrelated to the search term, I get this for anything I search for. I'm using Vivaldi Android with adblocker on, maybe that's the problem.

Interesting project. Thanks for sharing.

I am also a fan of DDG bangs and I see two missing features:

1. DDG supports bangs at any place in the query (even in the middle of it). I can search "topic !wiki" and it will work as expected.

2. DDG also supports following the first result in a query if a bare '!' is present in the query. Searching " hacker news !" will land me in the actual website without having to click anything in the results page.

Maybe you can consider adding these.

I thought ddg supported !s at arbitrary locations, but came across enough exceptions that I now invariably put them at the beginning or end.
The fact that “no ads and no AI” reads like a luxury feature set in 2025 says a lot about the state of search. Nice reset to sane defaults.
> nilch uses the Brave search API internally for results.

I wish wrappers would stop being called search engines. Google is a search engine, and so is Bing, and Yandex, and Marginalia Search. DDG, Brave, Nilch, and Kagi are search interfaces, or search coats of paint.

Why would I use this over Brave search if I were already using it? Especially when all it seems to add is a childish rant against LLMs, "G**gle" and "D*ckD*ckGo".
I'd love to fork this and archive the results from brave's api Lazily as people search and then use that to snowball scrape. If you got users then that's a really good strat for snowballing the relevant internet.
I’d be more convinced if the project explicitly scoped itself as “best possible frontend + governance model” first, and treated a custom index as an aspirational, separate phase.
I think this distinction matters less to users than to builders. From a user perspective, what’s novel here is policy and intent (no ads, no AI, privacy-first), not whether the index is first-party yet.

Many projects start as thin layers over existing infrastructure and only later take on the hard parts as resources allow. Being explicit about that roadmap feels like the right tradeoff early on.

"No AI, no ads, just search."

Clicked to give it a try, only to be greeted with this LLM authorship trope.

If "sick of AI", rehumanize the slogan?

And carry on! "We were there" when DDG and Kagi got started; hope you enjoy carving a niche as well.

// Yes, LLMs learned it from SEO and marketing slop predating LLMs, but the "No A, No B, Just C" association is too dominant for your brand.