What I Built
When I'm coding, studying, or debugging, it's easy to spend hours looking at a screen. I wanted to build something that makes stepping outside feel less like another item on a to-do list and more like a small adventure.
That idea became Outside Quest 🌿, an AI-powered outdoor adventure generator that turns a short break into three activities you can actually go and try.
Choose an environment—campus, garden, park, or neighborhood—along with your available time, interests, and accessibility preferences. Outside Quest then generates three personalized quests, such as a sensory walk, mindful observation, nature journaling, or exploring the details of your surroundings.
The app also has an Adventure Log that tracks completed quests, outdoor minutes, and streaks in the browser without requiring an account.
The goal is simple: spend less time planning a break and more time experiencing the real world.
Demo
Try the live application: https://outside-quest.onrender.com
I deployed Outside Quest on Render and tested the public application. It successfully generated three AI-created outdoor quests from my selected preferences.
The free hosting instance can take longer to respond after periods of inactivity, so the first visit may need a little patience.
Code
GitHub repository: https://github.com/shauryamalhotra957-wq/outside-quest
The repository contains the FastAPI backend, responsive frontend, automated tests, setup instructions, environment-variable template, Render deployment configuration, and MIT license.
How I Built It
I built Outside Quest using Python, FastAPI, Pydantic, and a responsive HTML, CSS, and JavaScript frontend.
For AI generation, I chose Meta Llama 3.1 8B Instruct, an open-weight language model accessed through OpenRouter using Backboard.io's API.
The backend validates the preferences submitted by the user, sends a generation request to Backboard, and validates the returned structured content before displaying the quests. The Backboard API key stays on the server in an environment variable instead of being embedded in the frontend.
I also added error handling for API failures, timeouts, malformed responses, and missing configuration. The Adventure Log uses browser local storage so users can track completed quests without creating an account.
The project includes automated tests for input validation, API request handling, error cases, and response parsing. My latest reported test run passed all 40 tests without making live model requests.
Why Does Open Innovation Matter?
I wanted to build around an open-weight model rather than make the project dependent on a single closed model.
Using Llama 3.1 gives the project a model whose weights are publicly available under Meta's Llama Community License. The selected model can also be changed through the backend's configuration, making experimentation with alternative models possible without redesigning the entire application.
There is an important trade-off: Outside Quest does not currently run inference locally or work fully offline. It uses Backboard and OpenRouter for model access. The selected preferences—including the environment, available time, and interests—are sent to Backboard to generate quests.
The application does not request GPS coordinates or camera permissions, and it does not require a user account. I wanted to be transparent about the distinction between avoiding unnecessary personal data and running an application entirely on-device.
For this project, open-weight AI provides flexibility in model choice and experimentation, while a hosted API makes the application practical to deploy and demonstrate.
What I Learned
Building Outside Quest helped me connect a real AI model to a Python web application, validate structured model responses, handle failures from an external API, protect credentials, write automated tests, and deploy an application from GitHub to Render.
It also changed how I think about the purpose of an AI application. Not every useful product needs to maximize screen time. Sometimes the best outcome is helping someone close their laptop and go outside.
What's Next?
I'd like to improve quest personalization, evaluate the usefulness and safety of generated activities, and explore additional open-weight models.
For now, choose a quest, step outside safely, and notice something you might otherwise have missed.
🌿 Touch grass. Reclaim your day.
Top comments (0)