This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.
What I Built
Observation Coach — A little less screen. A little more world.
Most AI applications try to keep you engaged with your screen. I wanted to build something that does the opposite: an AI coach that helps you put your phone away and pay closer attention to the world around you.
Observation Coach — Live Preview
The idea is simple: AI should teach you how to observe, rather than observe everything for you.
Here's how it works:
- Choose an exercise: Pick a short observation session lasting 5, 10, 20, or 30 minutes.
- Step away: The app invites you to put your phone away and explore your surroundings.
- Notice something real: Return and describe a detail you actually observed.
- Reflect with AI: The coach asks a thoughtful follow-up question based on your description.
- Build the skill: Receive an adaptive next exercise designed to help you develop your observation skills over time.
Instead of identifying objects through a camera, generating endless challenges, or turning everything into a competition, Observation Coach focuses on attention, description, comparison, change, inference, and deeper observation.
It's designed for anyone who wants to reconnect with their surroundings, become more mindful of everyday details, or simply spend less time staring at a screen.
The goal isn't to make people spend more time with AI. It's to make them need AI less.
Demo
Product Walkthrough:
https://youtu.be/KArn5bRtpeI
Code Walkthrough:
https://youtu.be/vQHZ7amHMTo
Try the Live Preview:
https://observation-coach.vercel.app
Code
The project is open source:
https://github.com/devrittik/observation-coach
Built with Next.js, TypeScript, Tailwind CSS, and MongoDB.
How I Built It
I built Observation Coach with a focus on modular architecture, privacy, and the flexibility to use open-weight models locally or through a hosted inference provider.
The technology stack
- Frontend and application: Next.js App Router, TypeScript, and Tailwind CSS.
- Database: MongoDB for user accounts, sessions, saved observations, and progress.
- AI integration: A provider abstraction that supports local inference and hosted OpenAI-compatible APIs.
- Local inference: Qwen 3B Instruct in GGUF format, downloaded from Hugging Face and run through llama.cpp.
- Hosted inference: Qwen 27B Instruct through Groq.
- Validation: Structured model responses are validated before being used by the application.
Why the AI is a coach, not an answer machine
The interesting part of this project isn't simply generating a response to a user's observation.
The coach needs to meet the user where they are. If someone notices only a basic detail, the AI should help them explore it further rather than immediately provide an elaborate interpretation.
The application uses structured prompts and validated responses to support short reflections, follow-up questions, and adaptive exercises. A separate progression system helps determine what the user can practise next.
Local AI and hosted AI
I wanted the project to be adaptable rather than permanently tied to one AI provider.
The local setup uses an instruction-tuned Qwen model in GGUF format through llama.cpp. For hosted inference, the application supports an OpenAI-compatible API, with Qwen 27B Instruct through Groq as my intended hosted configuration.
This separation means the application can support different inference environments without requiring a complete rewrite of its AI integration.
The project also includes a guided demo mode, so people can explore the observation workflow without requiring a working AI API key.
Why Does Open Innovation Matter?
For Observation Coach, open innovation is not just a way to reduce API costs. It changes where and how the application can be used.
1. AI that can work offline
With a local application, a local database, and a local open-weight model, the experience can work without an internet connection once everything is installed and running.
That makes the concept useful even in places with limited or unreliable connectivity. It also means the user doesn't have to depend on a remote AI service just to practise observing their surroundings.
2. Privacy and control over personal observations
An observation can be personal. People might write about their surroundings, emotions, memories, or everyday experiences.
Running inference locally allows those observations to remain on the user's machine rather than being sent to an external AI provider. This is an important option for a product built around personal reflection.
The hosted version is a practical alternative, but local inference gives users more control over their data.
3. Freedom to experiment and switch models
Open-weight models let developers experiment with different model sizes, prompts, and inference setups.
A smaller model can be useful for resource-constrained machines, while a larger hosted model can offer another option when local hardware is insufficient. This flexibility is especially valuable when building a project that should remain accessible to people with different hardware and budgets.
4. Technology that encourages people to disconnect
The most important design decision is that the AI is not supposed to become another reason to stay online.
Observation Coach deliberately keeps the interaction short. It gives the user an exercise, steps aside, and waits for them to return with something they actually noticed.
For me, that's the real point of the Touch Grass challenge: using AI to help people reconnect with the world, rather than creating another experience that competes for their attention.
My Agent Session
I didn't use DevRelay for this project, so I don't have a DevRelay session to share.
The code and implementation details are available in the GitHub repository, and the code walkthrough provides another way to explore the project.
Prize Categories
- Best Use of MongoDB Atlas
Submission Type
Individual submission.
Built for Hacktoberfest 2026 — Open-Source AI Challenge, Week 1: Touch Grass.
Top comments (1)
Clear Mission: Framing the AI as a coach rather than an "answer machine" sets the project apart from typical computer vision or identification tools.
I'm new to dev.to! Any feedback or thoughts on my posts would be greatly appreciated.