This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
What I Built
I'm an introvert by nature but an extrovert by society. In a meeting or anything official, I'm fine, mainly because there's a reason to talk. What I struggle with is talking to people when I don't have to, or what we call small talk, especially with someone I don't necessarily need to talk to.
So when the theme was "Touch Grass", I didn't want another app that tells you to go for a walk. Going outside isn't the hard part for introverts. Talking to the people out there is. Many social apps help you talk to people, but almost all of them keep you talking through a screen. This app is the opposite. It gets you talking to the world around you: the people you already pass every day and never really speak to. It’s about realizing that every random passerby is living a life just as vivid, complex, and emotionally rich as your own. That’s the idea behind the app.
Sonder is a weekly game for that. It makes it easier to connect with the people around you, without the pressure of walking up to a stranger and figuring out what to say. Because sometimes, all it takes to turn a stranger into a friend is a little nudge. Every week you get a few quests on sticky notes set in places you actually go. It comes with two difficulty levels (easy, fine, and scary)
You do the quest out in the world, come back, and write what you found out. Gemma replies like a friend, and your notes build into a wall of people who aren't strangers anymore. It's for anyone who walks past the same faces every day and never says more than "good morning".
How it works
- Tell it your normal week. Pick the places you actually go (market, office, gym, bus stop, church or mosque, beach and more), or add your own.
- Pick your challenge. Easy, Fine or Scary (see below).
- Get your week. Gemma writes a mix of quests for your places. Each has a one-line opener you can actually say.
- Go and do them. Write down what you found out. Gemma replies to what you learned, not to the quest.
- Watch your wall grow. The People tab keeps every note, week by week.
Settings let you change places, level, and quests per week at any time. New quests swaps the ones you haven't started and keeps the ones you've done.
Three levels
| Level | What a quest looks like | Example |
|---|---|---|
| Easy | One quick question, under a minute | Ask someone at the bus stop which bus goes somewhere you know |
| Fine | A light chat with one simple follow-up | Ask a regular at the gym to show you one exercise they swear by |
| Scary | A real conversation | Ask an older trader at the market what has changed most over the years |
Every week mixes quest types, so no two weeks feel the same. There are 14 types, from Learn a name and Ask the way up to Origin story and Return visit (going back to someone you met before).
|
|
|
A real quest, start to finish
Gemma generates the quests:
Quests are displayed.
Give feedback on the quest. What did you learn?
See all the strangers you have interacted with:
"Evening, because he tried morning for a week and was sleepy at work." That's one person at my gym who isn't a stranger anymore.
Not feeling it? Skip with a reason. "Didn't feel safe" switches you to Play it safe automatically.
Demo
Sonder runs on my laptop, so there's no public link. It also stores notes about real people you've met, so it runs on your own laptop instead of a server. To try it, clone the repo and follow the three steps in the README. It takes about five minutes if you have Ollama installed.
The video below shows how it works on my MacBook.
I took it outside
My first quest was an Easy one: ask your barber which style everyone is asking for right now. So I went for a haircut and asked Tobi, my barber. I've been going to him for a while, and I'd never really asked him anything beyond "the usual". His answer: everyone wants to dye their hair. 😂
That turned into a whole conversation. He reminded me that I'd talked about dyeing my hair when I came in a month ago, and dragged me for never coming back to do it.
I wrote it down in Sonder, and Gemma replied:
"Seriously? Everyone's going for a dye job? That's wild, what color were people asking for specifically?"
Which is fair. I didn't ask. That's the follow-up for my next haircut. Sonder has a gallery of all your conversations.
Code
Bennykillua
/
sonder
A weekly game that gets you talking to the people you walk past every day. Small quests on sticky notes, written by Gemma running locally. Your notes never leave your laptop.
Sonder
Going outside was never the hard part. Saying hello was.
sonder (n.): the realisation that every stranger you pass has a life as vivid and complex as your own.
Sonder is a weekly game that gets you talking to the people you walk past every day. You get a few small quests on sticky notes, set in the places you actually go. You do them out in the world, write down what you found out, and Gemma replies like a friend would. Over time, strangers turn into names.
It runs entirely on your own machine, with Gemma running locally through Ollama.
The problem
I'm an introvert. In a meeting or anything official, I'm fine, because there's a reason to talk. Talking to people when I don't have to is the hard part.
Most "touch grass" apps tell you to go outside. Going outside was never my problem. Sonder is…
MIT-licensed and built during the challenge. It's one Python file for the backend. The README explains how to run it locally with Ollama in three commands.
How I Built It
The stack is small on purpose:
- Gemma, running locally through Ollama
- FastAPI and SQLite on my laptop
- One HTML page for the whole interface, opened on my phone. I made it whimsical and delightful
The interesting part wasn't the stack. It was getting a small model to write quests worth doing.
What Gemma does
- Writes your week. It turns your places and your challenge level into a set of quests, each with an opener you can actually say and, for Fine and Scary, a follow-up question.
- Replies to what you found out. When you finish a quest and write a note, Gemma responds to the person you met, like a friend would over text.
How the app is built around a small local model
Small models are fast and private, but they copy examples and drift off-brief. So the app gives Gemma structure instead of freedom:
- Each week is planned before Gemma writes anything. The app splits the week into slots, and each slot gets a quest type (14 types, from "Learn a name" to "Origin story") and one of your places. Gemma writes one quest per slot, so the week stays varied and tied to where you actually go.
- Gemma returns structured JSON. Ollama's structured output means every quest arrives with the same fields: task, opener, follow-up, and place.
- Every quest is checked in code before you see it. It's dropped if it's a label instead of a task, small talk, a copy of its own brief, too long to say out loud, set somewhere you didn't pick, or a repeat.
-
Safety rules are enforced in code, not just in the prompt:
- never asks about marriage, tribe, politics, money, or age, and never asks for phone numbers or photos
- no faith questions at all
- hospital quests are staff-only
- no alcohol at bars or drink shops
- a "Play it safe" mode keeps everything in shops and queues
- 83 backup quests fill any gaps, so a bad run from the model never leaves you with an empty week.
- Weeks are written in the background. The phone checks back every few seconds, so a slow model never freezes the app.
Why Does Open Innovation Matter?
Because of what Sonder stores. It's a diary of every person you talked to, what they told you, and which conversations you skipped because they felt awkward or unsafe. I wouldn't send that to a server I don't control, and I don't think anyone else should either.
That's also why there's no hosted version: the moment I host it, your notes live on my server.
With an open model running locally:
- Nothing leaves my laptop. Gemma, the quests, and the notes all live on my machine.
- It costs nothing to run. That matters in Nigeria, where paying per request adds up fast.
- I could choose my own speed and quality trade-off. I tried gemma3:1b, which wrote a week in about 2 seconds but gave plainer quests. I went back to gemma3:4b for better ones, and kept it loaded in memory so it's ready when you open the app. With a closed API, that choice wouldn't be mine.
- The safety filters are in my code, and anyone can read them in the repo.
My Agent Session
I don't have a DevRelay session to share. I didn't build Sonder with Claude Code. I used Claude in chat as a pair programmer: it drafted code, helped me plan the app, and helped me fix bugs. I ran everything, tested it on my phone and with various friends, debugged with Claude Code, and decided what stayed.
Prize Categories
- Best Use of Gemma
Gemma does two jobs in Sonder. Both run locally through Ollama, using gemma3:4b on my laptop (a MacBook):
- The quest writer. Each week, the app gives Gemma one brief per quest: a quest type, one of your places, and your challenge level. Gemma writes the task, a one-line opener you can actually say and, on Fine and Scary, a follow-up question. It returns them as structured JSON, and code checks every quest before you see it.
- The friend who replies. When you finish a quest and write what you found out, Gemma responds to the person you met, not the quest, like a friend over text.
Running Gemma locally means your notes about real people never leave your machine, and Sonder costs nothing per request.
Built solo.
If you run Sonder yourself, tell me what features you'd like to see or how I can improve it.
Also, if you have some doubts about giving it a try, think of this viral internet quote: "It’s okay to embarrass yourself a little in the pursuit of human connection," which stemmed from a quote by Bianca Sparacino
In a world that seeks connection, we oddly avoid eye contact, we time our text responses to protect ourselves from seeming too eager or too interested, and we hold our feelings back because we don’t want to seem overly emotional or unreasonable. We silence our instincts, and at the end of the day instead of feeling good about ourselves, we feel alone, we feel misunderstood. Remember - it is okay to be emotional, to seek help, to confidently tell someone you enjoy being around that you are infatuated with them. There is nothing wrong with vulnerability, with being human, for that is what creates depth within our relationships, and that is what ultimately unities us.













Top comments (1)
I think this is a great idea for introverts! Hi, I'm that introvert. Giving a reason to seek 5 random conversations with strangers though I definitely think in a small way could balance the idea of a social disaster with a challenge to conquer in mind., And as a developer, I love challenges.