Remix.run Logo
Show HN: My not-for-profit search engine with no ads, no AI, & all DDG bangs(nilch.org)
176 points by UnmappedStack 15 hours ago | 67 comments

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

Tiberium 12 hours ago | parent | next [-]

Right now it seems like the project is just a thin wrapper over Brave Search. Building a complete search engine is way harder than that. You could look into using https://github.com/MarginaliaSearch/MarginaliaSearch if you want to run a real search index - https://marginalia-search.com/ is powered by it.

UnmappedStack 12 hours ago | parent [-]

Yup, it is pretty much just a better frontend for existing search. I want to build my own index and ranking algorithm in the future, but sadly it's quite resource intensive so it will depend on financial viability a bit in terms of timeframe.

RadiozRadioz 12 hours ago | parent | next [-]

So it's not a search engine, it's a frontend for a search engine.

dangus 11 hours ago | parent | next [-]

You can just turn off the AI feature in Brave search so it’s sort of extra pointless.

It’s possibly worth pointing out that the about page doesn’t offer any indicator that this is an actual nonprofit entity from a legal standpoint, so at this point I have to assume it’s just a sole proprietorship that is pinky promising to become a non-profit.

In that sense I’m quite happy “donating” to Kagi to provide a stable and supported product from a company with employees.

UnmappedStack 11 hours ago | parent [-]

That's fair enough. For the record I do intend to apply for a non-profit official entity. I would say it still has a role as opposed to Brave considering the lack of advertising though.

dangus 9 hours ago | parent [-]

I certainly assume your heart is in the right place. I felt like it was worth warning people to do research before making donations.

UnmappedStack 11 hours ago | parent | prev [-]

Sure, would've made for a chunky post title tho :P

Fnoord 11 hours ago | parent | prev | next [-]

There's tons of these frontends, including SearXNG and proprietary (but very good) Kagi. Kagi are working on their own index; this will be their meat.

I am convinced LLMs are the way forward for searching, with a caveat: what they summarize isn't very relevant (it is overrated). It just gives a (hopefully accurate) semantic context. What matters is the sources it directs to. These are your links normally on top of ypur search query.

riedel 9 hours ago | parent | prev | next [-]

openwebsearch.eu wants to build an open index. But despite the funding it is still quite sparse.

sjs382 3 hours ago | parent | prev [-]

How is it better?

DeepSeaTortoise 13 hours ago | parent | prev | next [-]

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.

stevage 7 hours ago | parent | next [-]

Are you confusing revenue and profit? Wikipedia, OpenStreetMap and Lichess are examples of successful non-profit sites. They have costs, they have revenues, but they don't exist to generate profit.

>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

There are no guarantees. Think of all the perfectly good websites that got shut down not because they weren't financially sustainable, but because they didn't generate enough profit for their owners. Google's graveyard is a good place to start.

Or the sites that were profitable, so they then they got bought out, and shut down, because what the owners really wanted was money more than anything.

Clearly the site in question here is not currently sustainable. But attempting to build a sustainable non-profit website is not impossible.

axiolite 12 hours ago | parent | prev | next [-]

> developers of free-ish as in freedom products OWE it, not only to themselves, but their community to be as profitable as possible

Wikipedia seems to do just fine without.

Commercializing a product is a whole other field, and it's not reasonable to expect everyone to be good at that, and not reasonable to expect developers to all take on a second job of commercializing their hobby projects.

Why don't YOU commercialize your fork of their service, and use the proceeds to hire developers to maintain the code? That would be infinitely more useful than armchair criticism of others.

DeepSeaTortoise 7 hours ago | parent | next [-]

> Wikipedia seems to do just fine without.

Because donations are a system that works very much in their favor and not at all in favor of other types of projects. Look at the OpenSSL Software Foundation having received less than $2k in yearly donations during the leadup to heartbleed.

> Commercializing a product is a whole other field, and it's not reasonable to expect everyone to be good at that, and not reasonable to expect developers to all take on a second job of commercializing their hobby projects.

I very much want to disagree with you, but I do not know how. Achieving some commercial success if you do look for it where others with your skill set are successful is not too difficult (see the trades), but the whole point of such projects is the exact opposite: Doing things differently and pushing accepted boundaries to where you think they should be.

On the other hand I think that this is acceptable. As I wrote in another comment, the obligations in these projects mostly arise from what the developers wants to commit themselves to (or, sadly, do so mistakenly). It is very reasonable to e.g. not value the long term success of your project highly.

You might want to just share an idea, maybe someone else will carry on your project or maybe if in 5 years someone shows a picture of you proudly presenting your project, you're like "AI has gotten really impressive, if I didn't know better, I don't think I could tell that this is a fake". And if you're anything like me, strong commitments to internet strangers might be life-threatening. 2 out of 3 times a promise I made got upvoted, I got hit by a car within less than 48 hours of making it and not once otherwise. An up-arrow got just one pointy end, a GitHub star 5. I'm not taking chances.

YetAnotherNick 11 hours ago | parent | prev [-]

> Wikipedia seems to do just fine without.

No, they still pay fair wage, and I would trust it more if it pays fair wage to people spending their time on the project(including the creator).

input_sh 10 hours ago | parent | next [-]

They pay fair wages because they have enough scale where pestering for donations once a year is enough to justify their costs and then some. And even then, this forum is very famous for shitting on such a large scale not-for-profits, with many justifying their decision not to donate by seeing how much money the non-profit already has in their pockets. The only reason we even know how much money the non-profit has in its pockets is because non-profits are legally obliged to publicly disclose that, while for-profits are not (until they go public of course).

My point being that it's a mountain to climb, and just because those at the top have already climbed it doesn't translate into everyone being able to climb it. It takes a whole lot of effort and probably some public grants, but getting those public grants is a whole different skill set than actually building the thing. And you can only get a public grant after you've already created something useful, so your idea of a non-profit quickly turns into an inescable hole in your pocket that you're desperately trying to fill for at least a year or two.

This is why while our lists might vary, every single one of us can only name like 5, maybe 10 non-profits that have "made it" (however we define that success).

All that said, go set up a reocurring $2/month donation to your favourite non-profit right now. Whether you choose Wikimedia or something else, I'm sure it's well worth 10% of a monthly subscription you're already paying for an LLM or whatever. Unlike your for-profit subscriptions, if the money becomes tight you can always cancel these without losing anything.

topaz0 8 hours ago | parent | prev [-]

Wages and profits are conceptually different sorts of things, even if it's sometimes hard to draw a bright line in specific cases.

YetAnotherNick 7 hours ago | parent [-]

If it was not clear till now I am talking about wage or wage level earning for the creator.

UnmappedStack 13 hours ago | parent | prev | next [-]

This is a really interesting view, but I'm not sure I agree. So many amazing projects are truly free without the goal of profit yet their maintainers still do amazing work. I feel like part of the reason this works is because often the load is split between several maintainers (of which I hope to onboard soon, and have one or two offers already from people to contribute) and also the fact it's genuinely something enjoyable to work on (of course, to the extent it's not too stressful and overworked).

NitpickLawyer 13 hours ago | parent | next [-]

There's a difference between awesome projects that don't have a recurring cost (i.e. open source software that users run themselves) and a search engine. You cannot physically run a search engine without real-world costs today. Those funds need to come from somewhere. And offering a good product at scale costs a lot of money.

UnmappedStack 12 hours ago | parent | next [-]

That is very true, and it's not cheap to maintain. I do however really hope that donations can cover it enough, and I have plans about other ways to monetise it while remaining not-for-profit without ads or anything that affects the user.

Intermernet 7 hours ago | parent | prev [-]

Just brainstorming here, but would a distributed search index be possible / usable with current network speeds and latency? I'm not sure how to set up the data structure to not require many high latency jumps, but maybe someone has solved this problem.

Marsymars 5 hours ago | parent [-]

It's possible, see the YaCy project. It suffer from probably a couple of orders of magnitude too few resources (in the funding/development sense) to really be competitive though.

YetAnotherNick 11 hours ago | parent | prev [-]

Examples? If you are going to say something like linux, almost every developer gets paid to contribute to linux(I remember 95% commits have company attribution). Same with postgres etc.

ranguna 10 hours ago | parent [-]

They are paid, but the end used doesn't pay.

YetAnotherNick 7 hours ago | parent [-]

End user are corporate linux users and they pay for maintenance? Perhaps you mean all the end users doesn't pay.

grey-area 13 hours ago | parent | prev | next [-]

Profit is fine.

Profit from advertising is highly corrosive and corrupts everyone it touches (social networks, your tube, search etc etc).

UnmappedStack 13 hours ago | parent [-]

Honestly I agree. This is part of what I love about the idea of Kagi. I do believe a not-for-profit alternative is needed, however if there's any for-profit model a search engine should have, it should be paid for by the user rather than the advertiser imo.

BrenBarn 13 hours ago | parent | prev | next [-]

It depends what you mean by "profit". If you mean "the developers/maintainers can pay the bills of a modest lifestyle", then yes, I think that's important. But often "profit" is used to refer to the idea of unlimited upside, that there are stocks, that the project will be sold, that some kind of sizable windfall is expected, etc. And that I think is to be avoided.

barrell 12 hours ago | parent | prev | next [-]

There’s part of this that I agree to - I tend to disagree with most anti-capitalist (or anti-profit) sentiment. However, I disagree that builders “owe” anyone anything, and I strongly disagree with goal of as much profit “as possible”.

I miss the days when someone would make a service where the user would benefit as much as possible and the creator got compensated fairly. I feel like that system worked for hundreds of years. It’s only in the last couple decades that we’ve made this obligation for maximal profits - something that I personally hold responsible for all the mass enshittification going on these days.

DeepSeaTortoise 8 hours ago | parent [-]

> I disagree that builders “owe” anyone anything

I disagree, but I think "owe" carries too much of a negative connotation. Through your project you enter both a relationship with yourself, having taken on a commitment to achieve what got you interested in starting your project in the first place, and the community (who also could be nobody but yourself) you want to benefit from your project, who want to rely on your project to some degree.

These relationships lead to obligations, few, if any, of them being legal or moral ones. Instead they are obligations put onto you by your own interests. You do not observe them because e.g. your project's community demands them (who, I'd like to point out again at this specific point, may still be nobody but yourself!), but because they are important to you. What is important to you can and will change, of course.

> I strongly disagree with goal of as much profit “as possible”.

TBH, I consider the "within the rules they think should be followed" part essential to the statement.

> obligation for maximal profits - something that I personally hold responsible for all the mass enshittification going on these days.

I'm not sure, but I don't think that's the case, sad enough, IMO the reason is to be found a bit to the opposite:

As a group, the people we're overall aligned with in our values (on this issue), having found fulfilling success in goals way less influential than money.

Zardoz84 5 hours ago | parent | prev [-]

Debian keeps doing very well.

GaryBluto 2 hours ago | parent | prev | next [-]

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".

inetknght 2 hours ago | parent [-]

> all it seems to add is a childish rant against LLMs, "G*gle" and "DckDckGo"

What's childish is the way you're characterizing what was said.

amortka 40 minutes ago | parent | prev | next [-]

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.

ckardaris 11 hours ago | parent | prev | next [-]

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.

UnmappedStack 11 hours ago | parent [-]

I actually did not know if these, but I definitely will implement those!

mesosan an hour ago | parent | prev | next [-]

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.

soldthat 11 hours ago | parent | prev | next [-]

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.

UnmappedStack 10 hours ago | parent [-]

Yeahhh I like to think of it as search like it's 2015...

IshKebab 6 hours ago | parent [-]

Search had ads in 2015. They were just a bit less obtrusive.

supermatt 11 hours ago | parent | prev | next [-]

You NEED to validate/escape untrusted input.

Searching “ causes an error

https://cheatsheetseries.owasp.org/cheatsheets/Input_Validat...

UnmappedStack 11 hours ago | parent [-]

Yeah I really do need to, I'm not sure why I didn't from the start...

throwatdem12311 4 hours ago | parent | prev | next [-]

You can just turn off ads and AI on the duck.

ILoveHorses 12 hours ago | parent | prev | next [-]

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
UnmappedStack 11 hours ago | parent | next [-]

I see, that is odd and I haven't run into that yet, thank you! I'll have a look into it and try to reproduce the issue, which browser+OS are you on?

BaudouinVH 11 hours ago | parent | prev [-]

you are not alone

everfree 13 hours ago | parent | prev | next [-]

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.

Tepix 12 hours ago | parent | next [-]

The topic of ranking mechanisms sits at the core of many of our issues with social networks and centrally operated instances. I think it deserves far more attention.

And these algorithms should be open source and we should be able to pick our own and mash them.

Related:

Build Your Own Timeline Algorithm: A Blueprint

https://blog.mozilla.ai/build-your-own-timeline-algorithm-a-...

UnmappedStack 13 hours ago | parent | prev [-]

This is sadly probably quite true. I'm sure there are workarounds, like slightly changing it every month or two, although that would require quite heavy maintenance. Perhaps the core algorithm stays the same but some constants that decide on the weights of different things are randomised? Not too sure.

thesdev 12 hours ago | parent | prev | next [-]

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.

UnmappedStack 11 hours ago | parent [-]

Woah it was because I had run out of API credits, fixed! I'll improve the error screen for that. Sorry, did not expect this traffic, it's had several thousand searches today!

ngc6677 9 hours ago | parent | prev | next [-]

Can also checkout https://github.com/internet4000/find for a client side "search router" supporting custom bangs.

axiolite 12 hours ago | parent | prev | next [-]

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).
UnmappedStack 12 hours ago | parent | next [-]

Oh! I will make sure to fix that, thank you for the bug report!

consp 12 hours ago | parent | prev [-]

Escaping and encapsulating input data strikes again.

renegat0x0 13 hours ago | parent | prev | next [-]

How is it different from searxng then?

UnmappedStack 13 hours ago | parent [-]

I see nilch as slightly more about being simplistic and not having many features that are unnecessary. I do share many of the values and benefits with searxng (and really love their work!), however this is also about my own specific desire for something that is clean and has very little that is unnecessary.

KomoD 11 hours ago | parent [-]

You don't need to touch any of the "unnecessary" features in SearXNG, it's as simple as any search engine, just write your query into the input and look at the results

Imustaskforhelp 14 hours ago | parent | prev | next [-]

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!

UnmappedStack 13 hours ago | parent | next [-]

Thank you! I would definitely consider custom ddg bangs, yes. Is there any particular reason you want that rather than just all ddg's bangs like it is currently?

I'll have a look into that project, thank you. Cost is a slight issue so far, yes. There have been about 4,000 searches in the past couple days but I've slightly improved cost efficiency with caching, and I've received two small donations which do help a bit, so the hope is that donations will be able to sustain it.

Partnering with Ecosia is a really interesting idea, however I think that there may be a conflict of interest since they do aim to make money with ads, just to go towards environmental efforts rather than a corporation. They would be disadvantaged if nilch was at an advantage over their users.

I do love the wikipedia model and I hope that nilch can run similarly. Thank you again!

prmoustache 13 hours ago | parent | prev [-]

Ecosia is still making money (that it uses to plant trees). That means it is selling something and we can reasonnably think that is your data/privacy.

UnmappedStack 13 hours ago | parent [-]

As far as I'm aware, Ecosia does sell ads.

immibis 6 hours ago | parent | prev | next [-]

> 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.

angel- 13 hours ago | parent | prev | next [-]

Will you include suggested autocomplete searches?

UnmappedStack 13 hours ago | parent [-]

I do intend to support this and have actually already been asked to!

nubinetwork 10 hours ago | parent | prev [-]

Typescript failed to fetch?