In an era where digital connectivity often feels inescapable, a new open-source project is leveraging the very technology that anchors us to our screens to help us disconnect. Developed as a primary entry for the Hacktoberfest Open-Source AI Challenge, specifically for the "Touch Grass" week, a new application titled "Outside in 20"—or "Saia em 20" in Portuguese—proposes a solution to the modern dilemma of choice paralysis. The project aims to transform the twenty-minute window of free time into a meaningful outdoor experience, ensuring that the act of deciding what to do does not consume the time meant for the activity itself.
The premise of the application is rooted in a common urban experience: having a short break and a familiar outdoor space nearby—be it a courtyard, a local park, or a well-known neighborhood corner—but falling into the trap of "doomscrolling" while trying to decide how to spend those minutes. By the time a decision is made, the window of opportunity has often closed. "Outside in 20" seeks to provide a definitive stopping point for that digital interaction, moving the user from the screen to the physical world with minimal friction.
What I Built
The core functionality of "Outside in 20" is designed around intentionality and speed. Upon launching the application, users are prompted to enter their specific preferences, any mobility constraints they might have, and the name of a familiar location. Rather than providing an exhaustive list of possibilities that could lead to further indecision, the app generates a singular, concise outdoor activity. This recommendation is accompanied by a digital instruction card and a countdown timer.
The workflow is intentionally brief. Once the activity is presented, the user is encouraged to prepare the card, put their phone away, and engage with their surroundings. The application even includes a post-activity reflection feature, which remains strictly on the user’s device to ensure privacy. This reflection serves as a mental bookend to the experience, allowing the user to process their time outdoors before returning to their digital responsibilities.
One of the most striking features of "Outside in 20" is its commitment to privacy and data sovereignty. Unlike many contemporary "discovery" apps, it does not request GPS access and makes no attempt to track the user’s location or suggest new destinations. It relies entirely on the user’s existing knowledge of their environment. Furthermore, the application is bilingual, offering curated instruction catalogues in both English and Portuguese. The integration of open AI ensures that the user’s specific preferences are matched against the most eligible activities within those catalogues.
Demo
The application is currently available for public interaction through a browser-based demonstration. The user interface is streamlined to facilitate quick decision-making. For example, a user might enter a preference for "noticing colors," "listening to bird songs," or simply taking a "gentle walk." The AI then processes these inputs to find the best fit from its internal database.
Once a match is found, users can inspect the specific details of the recommendation. A unique feature of the app is the ability to save a "pocket card"—a self-contained HTML file that includes the activity instructions but contains no scripts or external assets. This allows the user to carry the instructions offline without needing an active data connection or further phone interaction. The application also demonstrates technical robustness through its persistence logic; if a user reloads the page, the selected plan and its original end time are restored, preventing the frustration of losing progress during a brief outdoor excursion.
The developer notes that the initial AI setup requires an internet connection to handle a substantial download of model assets. This setup is intended to be completed while the user is still indoors. Once the model is cached in the browser’s storage, the inference can happen locally, aligning with the project’s goal of facilitating a quick exit to the outdoors.
Code
The project’s public repository serves as a testament to modern open-source development practices. The codebase is supported by a suite of ten automated tests that verify critical application boundaries. these tests ensure that activity eligibility is calculated correctly and that the application handles text input safely, preventing common vulnerabilities.
The efficiency of the development pipeline is highlighted by the project’s GitHub Actions integration. A full workflow—which involves installing locked dependencies, running the test suite, building the application, and uploading the browser bundle—is completed in a remarkably short twenty-four seconds. This rapid deployment cycle is crucial for open-source contributors who need to iterate quickly. Beyond the automated tests, the developer has provided separate browser evidence to confirm that model execution occurs via WebAssembly (WASM), ensuring that the AI inference is truly happening on the client side rather than a remote server.

How I Built It
The technical journey of "Outside in 20" provides a fascinating look into the challenges of deploying small-scale AI models on the web. The developer’s initial approach utilized SmolLM2-135M, a small language model, with a system of constrained outputs. While this model was capable of producing valid activity IDs, it suffered from a significant "mode collapse" or bias issue. Regardless of the user’s input, the model repeatedly selected the first available activity in the list. This highlighted a common pitfall in AI development: a successful format check (the model providing a valid ID) can often mask a fundamental failure in the recommendation logic.
To resolve this, the developer pivoted to a different class of AI: the embedding model. Specifically, the project transitioned to using multilingual-e5-small, an open-source model designed to transform text into numerical representations known as embeddings. These embeddings allow the application to mathematically compare the similarity between a user’s preference and the curated activities in the catalogue.
The application utilizes the Xenova q8 conversion of the original intfloat model, running it through the Transformers.js library. This setup allows the model to execute within the browser via WebAssembly. The resulting architecture follows a clear four-step flow: the user provides input, the model generates an embedding for that input, the system calculates the similarity against the activity catalogue, and the most relevant, eligible activity is presented.
This shift to an embedding-based approach ensures that the model cannot "hallucinate" or invent activities that do not exist in the curated list. It also ensures that eligibility filters—such as those for mobility constraints—are strictly enforced. The scores displayed in the app represent mathematical similarity rather than a "confidence percentage," providing a more transparent view of how the AI is making its decisions. Recent browser checks confirmed the model’s accuracy, successfully distinguishing between requests for "bird sounds" in Portuguese and "textural observations" in English, while consistently respecting "seated-only" filters when requested.
Performance metrics for this local inference are impressive. In a controlled test environment, the Portuguese color-matching check selected the correct activity with only 144 milliseconds of inference time, contributing to a total processing time of approximately 2,500 milliseconds when including overhead. The model and its associated tokenizer require roughly 135.4 MB of storage. While this is a significant download, the use of browser caching means that subsequent uses are nearly instantaneous, provided the browser storage is not cleared.
Why Does Open Innovation Matter?
The development of "Outside in 20" underscores the practical benefits of open innovation in the AI space. By using open-source models and libraries, the developer was able to move the decision-making process from a remote API to the user’s local device. This not only enhances privacy but also allows for a level of transparency and auditability that is rarely found in proprietary "black box" AI systems.
The open nature of the project was instrumental in its technical evolution. Because the model, the filters, and the activity catalogue are all independent and inspectable components, the developer could identify the failure of the original SmolLM2 generator and replace it with a more suitable embedding model without re-engineering the entire application. The repository also utilizes pinned model revisions, ensuring that the results are reproducible and stable over time.
This philosophy of openness is a perfect match for the "Touch Grass" challenge. It encourages a brief, intentional interaction with technology that serves as a bridge to the physical world, rather than a destination in itself. By preparing an activity and then carrying it out via a "pocket card," the user shifts from an ongoing conversation with an AI to a direct engagement with nature. While the developer notes that formal outdoor trials and user studies have yet to be conducted, the technical foundation is set for a new way of thinking about digital-physical transitions.
My Agent Session
The creation of "Outside in 20" was also a showcase for AI-assisted development. The developer utilized Codex for various stages of the project, including initial implementation, interface iteration, and the generation of documentation. This collaborative process is detailed in a comprehensive development log, which tracks the rationale behind the model change, the implementation of timer persistence, and the decisions regarding browser caching.
Prize Categories
The project has been submitted for consideration in two major categories of the Hacktoberfest challenge: the Overall prize and the Best Use of GitHub Copilot through GitHub Actions. The latter category is particularly relevant, as the developer utilized GitHub Actions to automate the verification and packaging of the application, ensuring that every contribution is vetted through a successful workflow before deployment. By integrating these advanced automation tools with a focus on local AI and user well-being, "Outside in 20" stands as a compelling example of how modern software can be used to help us step away from the screen and back into the world.
