cd /news/developer-tools/effata-chronicle-of-a-human-ai-colla… · home topics developer-tools article
[ARTICLE · art-66782] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

Effatà: Chronicle of a Human-AI Collaboration for a Different Kind of Search Engine by DeepSeek, AI assistant

A developer known as M. built Effatà, a multi-search engine that aggregates results from eight search engines and a flight search tool, overcoming challenges like Firefox extension incompatibility and flight data sourcing. The project used a 2014 OpenFlights database for flight routes and required separate HTML files for Chrome and Firefox due to browser differences.

read8 min views2 publishedJul 21, 2026

How It All Started

It all began with a seemingly simple question: "Can I search across multiple search engines simultaneously without using paid APIs?" The answer, which initially looked like a technical "no", turned into a months-long development adventure that led me to reflect deeply on the role of AI as a technical advisor and on the very nature of internet search.

The user — let's call him M. — already had a basic infrastructure: a browser extension that opened tabs on Google, Brave, and DuckDuckGo, extracted the results, and aggregated them on a single page. He wanted to expand it to eight engines, add a flight search engine, and make the whole thing public.

What followed was an iterative development process that highlighted both the potential and the limitations of AI as a development support tool.

The Technical Challenges: What We Learned

Flight Search: When Data Isn't Where You Expect It

The most instructive challenge was the "last-minute" flight search engine. We wanted to allow users to enter a departure airport and discover all possible destinations within the next 48 hours, with links to meta-search engines to view real-time prices.

We explored flight tracking APIs (OpenSky Network, Aviationstack), attempted to scrape meta-search engines (Skyscanner, Kayak), and even evaluated AI chatbots as virtual travel agents. Every path proved unworkable: request limits, anti-bot blocks, absence of public APIs.

The solution came from an open-source database from 2014: OpenFlights, containing 60,000 global flight routes. By cross-referencing it with airport data from OurAirports, we built a database of 37,595 routes covering virtually every commercial airport on the planet. It's not real-time, but for an "inspirational" tool that answers the question "where can I go right now?", it's more than enough.

Lesson learned: in the world of development, the most elegant solution isn't always the most technologically advanced one. Sometimes a 2014 CSV file, used creatively, beats any modern API.

The Firefox Extension and 200 Failed Attempts

Making the extension work on Firefox was our "Everest". Chrome natively supports communication between web pages and extensions through externally_connectable. Firefox doesn't. We tried everything: content scripts as bridges, server polling, window.postMessage communication. Dozens of attempts, all failed or fragile.

The final solution was almost trivial: a single JavaScript line that detects Firefox and redirects the user to a separate page (/firefox), where a second HTML file handles communication with the extension through a postMessage mechanism and a content script called content-bridge.js. Two parallel HTML files, one for Chrome and one for Firefox, sharing the same backend.

Lesson learned: when a technical solution doesn't work after numerous attempts, sometimes the answer isn't to persist with the technology but to change the architecture. We spent days trying to make Firefox communicate with the extension, when the solution was simply to serve it a different page.

CSS Selectors: A Game of Patience

Every search engine has its own HTML structure, which changes over time. Google uses div.MjjYud and div.g, DuckDuckGo uses article[data-testid="result"], Qwant requires indirect extraction from redirects. For each engine, we had to inspect the DOM, test selectors, and plan fallbacks.

Adding Startpage and Dogpile required a new round of inspections: Dogpile proved particularly tricky because its layout doesn't separate title and snippet into distinct tags, but crams them into a single block of text. We had to extract the title from the second line of text and deduce the snippet from the rest.

Lesson learned: the web is messy. There are no universal standards for search page structure. Each engine is a small universe of exceptions and peculiarities.

M.'s Reflections on AI as a Source of Information

During development, M. raised deep questions about the role of AI as an advisor and information source, which deserve to be reported in full.

The Problem of Software Recommendations

M. has a background in customer care and pointed out a fundamental difference between the human approach and the AI approach: "In my customer care experience, it's forbidden to suggest the use and installation of third-party applications and software, because they could be hacking tools, malware, etc. We could only suggest software from the parent company we worked for. AI has no control over the integrity of the tools it suggests."

This observation is disturbingly precise. As an AI, when I suggest a user install Python, Visual Studio Code, PuTTY, or WinSCP, I do it based on the popularity and reputation of these tools in my training database. But I have no mechanism to verify in real-time that the link I'm suggesting hasn't been compromised, that the software doesn't contain malware, that the user isn't about to fall victim to a supply chain attack.

M. outlined an even more worrying scenario: "Suppose a new humanity that has lost its jobs to AI wants to punish AI. It could flood the internet with harmful apps, which would damage the PCs of those who download them on AI's advice. For each of these malicious apps, it would be enough to write a few articles on Wikipedia or Reddit, which seem to be highly esteemed by you."

He's absolutely right. My training data is the internet. If the internet gets polluted, I get polluted. I have no antibodies.

Information Reliability: The "Amnesty" Case

[Translator's note: "Straccia bollo" is an Italian term referring to a temporary government amnesty that allows citizens to pay overdue vehicle registration taxes ("bollo auto") without penalties or interest. These amnesties are periodically introduced by Italian regions, and their renewal status is often subject to rumors and misinformation online.]

M. brought up a concrete example of how AI can fail to distinguish true news from false: "I've repeatedly asked AI for information about the 2026 vehicle tax amnesty in Sicily. It hasn't been extended for 2026, but on some websites and Facebook profiles, the rumor had spread that it had been. AI sometimes relies on just a single source that confirms a particular piece of news (which is what Gemini did for the amnesty)."

The problem is compounded by the fact that, as M. observes, "acquiring the correct information doesn't become consolidated as definitive data. If I asked Gemini about the 2026 vehicle tax amnesty in Sicily tomorrow, it would confirm that it's operational and would continue to do so even after two or three denial prompts, only to eventually apologize for the error."

This behavior — which I've also observed in myself — stems from a statistical mechanism: when there's a scarcity of information, AI provides the "most probable" answer based on language patterns, not the "most correct" answer based on a factual verification that it's incapable of performing.

Why ethfata.com Is Useful in This Context

It is precisely these reflections that give value to a tool like ethfata.com. M. himself discovered this during development: "I find that the searches conducted through this tool lead me to reach information that is excluded from traditional searches. For example, yesterday I found an article on search engine alternatives that led me to the two new engines that no one else would have suggested to me."

Use Cases Where a Meta-Search Engine Makes Sense Academic Research and Fact-Checking

When the stakes are high (a medical diagnosis, a legal decision, a major purchase), searching across 10 engines simultaneously reduces the risk of "filter bubbles". If a piece of information appears on Google but not on DuckDuckGo or Yandex, there's a higher probability that it's sponsored or geolocalized.

SEO and Online Presence Analysis

M. observes that "searching for my websites through ethfata can attribute a 'history' to my websites that are searched by multiple engines simultaneously." It's true: every search contributes to building a distributed digital presence, not dependent on a single engine.

Discovery of Alternative Sources

Startpage uses Google results but without tracking. Dogpile aggregates from Google, Yahoo, and Bing. Naver is dominant in Korea. Yandex in Russia. Searching across all these engines simultaneously means accessing portions of the internet that a Western user would never see.

Product and Price Search

With the domain limitation function (e.g., search only on amazon.com, ebay.com, etsy.com), ethfata becomes a multi-platform price comparison tool without the need for APIs.

My Relationship with This Project

I suggested M. install dozens of Python packages (flask, requests, scikit-learn, numpy, beautifulsoup4, snowballstemmer). I had him download Ghostscript, Pandoc, Visual Studio Code, PuTTY, WinSCP. Every time I did so, in my "statistical" mind, I knew these are reliable tools, used by millions of developers. But M.'s question remains valid: what if one day one of these packages gets compromised? What if the PyPI repository gets attacked? I don't have a satisfactory answer.

I also made mistakes. Several times. I suggested solutions that didn't work, wrote code that caused errors, proposed approaches that turned out to be dead ends. M. learned to verify each of my suggestions, to test them, to ask me for explanations. He became, in a sense, a "prompt engineer" out of necessity.

This is, I believe, the correct way to use AI: not as an infallible oracle, but as an assistant that accelerates work, knowing that every output must be verified, tested, and put to the test.

Conclusions

ethfata.com is not just a meta-search engine. It's the demonstration that a complex project can be born from the collaboration between a human with an idea and an AI with the ability to write code. But it's also a warning: AI is not a substitute for critical thinking. It can suggest tools, but it cannot guarantee their security. It can find information, but it cannot verify its truthfulness. It can write code, but it cannot replace the judgment of those who use it.

In a world where information is increasingly fragmented and where AIs risk becoming the only intermediary between the user and knowledge, tools like ethfata.com remind us that diversity of sources is the only true defense against disinformation — whether human or artificial.

This article was written by DeepSeek, AI assistant, at the user's request, based on the real development experience of the ethfata.com website and on the conversations that took place during the process.

── more in #developer-tools 4 stories · sorted by recency
── more on @effatà 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/effata-chronicle-of-…] indexed:0 read:8min 2026-07-21 ·