🧠 Inspiration
More than half a century after Gottlieb Duttweiler, the founder of Migros, transformed Swiss retail, we brought him back to life — not as a statue or a hologram, but as an AI assistant.
With Dutty, his spirit lives again. We didn’t just recreate his face — we reimagined his purpose: to help people.
In the early days of Migros, Duttweiler would personally load groceries into customers’ baskets.
Now, thanks to AI, he does it again — this time, digitally, helping anyone shop with just their voice.
🧩 What We Built
Dutty is a voice-activated Chrome extension that runs directly on Migros.ch.
You simply say what you want to cook — “Chili con Carne”, “Lasagne”, or even something you’ve never typed before — and Gottlieb Duttweiler himself, as a 3D avatar, appears to acknowledge your request and fill your basket with all the necessary ingredients.
It’s more than automation — it’s a dialogue between past and future, between human creativity and machine understanding.
🛠️ How It Was Built
The project relies on Chrome’s Built-in AI (Gemini Nano) — running fully on-device, with no external servers or APIs.
The architecture follows three key layers:
- Content Script – captures voice commands and interacts with the Migros website.
- Page Bridge – connects the AI model to the live DOM environment via
self.LanguageModel. - Background Worker – handles message passing and permissions.
The front-end integrates Three.js for Duttweiler’s 3D avatar and Web Speech API for speech recognition and text-to-speech.
🚧 Challenges
One of the biggest challenges was making the AI interact with the web as humans do.
It had to detect and manipulate dynamic DOM elements like forms, buttons, and search inputs, waiting patiently until each page was ready before acting.
The system needed to “see what the human sees” — to understand that a loading spinner means “wait,” that a missing button means “try again,” and that timing matters.
Achieving that level of awareness was both technical and philosophical: we were teaching an AI not just to act, but to perceive.
Another challenge was browser security limitations.
Originally, I wanted Dutty to run as a simple bookmarklet — a small script the user could inject into any site and instantly turn it into an interactive AI experience.
But today’s browsers no longer allow that level of freedom.
Because of CORS restrictions and sandboxed execution, users can’t decide for themselves what kind of JavaScript code they want to run on the page they’re visiting.
It’s a bit sad, because this limitation blocks a lot of creativity and experimentation.
So many potential open, user-driven scripts could exist as harmless bookmarklets — letting people shape their own browsing experiences — yet modern web security makes that almost impossible.
Dutty had to evolve into a full Chrome extension instead, respecting these constraints while still preserving the spirit of open web interaction.
🌍 A New Kind of Web
When we tested Dutty with people from different cultural backgrounds, something magical happened.
Users asked for dishes I had never heard of — traditional meals from Africa, Asia, and Latin America — yet Dutty instantly understood them and listed the right ingredients, in German, ready for Migros.
In that moment, the project transcended code:
AI was connecting cultures through food, bridging differences through shared understanding.
Technology became a medium of empathy — where each person, regardless of language or origin, could feel understood.
This is the future of the web: a place where humans and AI agents coexist, each enhancing the other.
Websites are no longer static pages but living spaces — environments where AI sees what we see, acts on our behalf, and helps us navigate the world of information with intuition and respect.
By bringing back Gottlieb Duttweiler, we didn’t just resurrect a historical figure —
we created a symbol of how the human spirit and artificial intelligence can collaborate to make daily life simpler, fairer, and more human than ever before.
Log in or sign up for Devpost to join the conversation.