{"slug": "wildstep-i-built-an-ai-that-wants-you-to-close-the-app", "title": "🌿 WildStep: I Built an AI That Wants You to Close the App\"", "summary": "A developer built WildStep, an AI-powered outdoor mission generator that turns a user's mood, available time, goal, and surroundings into a personalized checklist of real-world activities, with the stated goal of getting people off their screens. The full-stack app pairs a React/TypeScript frontend with a Java 21 Spring Boot backend, using Ollama with Gemma 2 for local inference and Cloudflare Workers AI with Llama 3.2 in the hosted deployment, with missions and rewards persisted in TiDB Cloud. Completion is self-reported through the checklist, and the developer notes the app does not independently verify physical activity via GPS or photo evidence.", "body_md": "Most apps want your attention.\n\nMore scrolling. More recommendations. More time spent looking at a screen.\n\n**What if an AI app was designed to help you leave it?**\n\nThat question led me to build **WildStep** — an AI-powered outdoor mission generator that turns your mood, available time, personal goal, and surroundings into a personalized set of real-world activities.\n\nThe idea is simple:\n\nAI generates the mission. You go experience it.\n\nWildStep is built around a different kind of product philosophy: the digital interaction should be short, useful, and focused on encouraging people to spend more time in the real world.\n\nWildStep helps people turn an ordinary break into a small, actionable outdoor mission.\n\nInstead of offering the same generic suggestion to everyone, it lets users personalize a mission using:\n\nThe AI generates a mission with individual tasks and estimated durations. Users can work through an interactive checklist, track progress, retrieve saved missions, and earn **Grass Points** when they finish.\n\nThe task checklist is intentionally simple. You shouldn't need another feed to scroll through when you're trying to take a break.\n\n🌐 **Live application:** [https://wildstep-six.vercel.app/](https://wildstep-six.vercel.app/)\n\n💻 **Source code:** [https://github.com/pushptandekar24-glitch/wildstep](https://github.com/pushptandekar24-glitch/wildstep)\n\nThe public demo uses Vercel for the frontend, Render for the Spring Boot backend, TiDB Cloud for persistence, and Cloudflare Workers AI for hosted inference.\n\nThe application has been deployed and tested with live mission generation and task completion. Free-tier services may introduce cold starts, latency, or usage limits.\n\nWildStep doesn't stop at suggesting an activity. It turns the idea into a sequence of tasks with progress tracking so users can see what they've completed.\n\nWhen all required tasks are marked complete, the backend updates the mission state and calculates the Grass Points reward.\n\nCompletion is self-reported through the checklist. The current application does not independently verify physical activity through GPS or photo evidence.\n\nWildStep is a modular full-stack application. The frontend handles the user experience, while the backend owns mission generation orchestration, validation, persistence, task completion, and rewards.\n\n| Layer | Technologies | \n|---|---|\n| Frontend | React, TypeScript, Vite, Tailwind CSS | \n| Backend | Java 21, Spring Boot REST APIs | \n| Persistence | Spring Data JPA, Hibernate, MySQL-compatible database | \n| Database migrations | Flyway, where configured | \n| Local inference | [Ollama](https://ollama.com/) with[Gemma 2](https://ollama.com/library/gemma2:2b) | \n| Hosted inference | [Cloudflare Workers AI](https://developers.cloudflare.com/workers-ai/models/llama-3.2-3b-instruct/) with Llama 3.2 | \n| Deployment | [Vercel](https://vercel.com/) ,[Render](https://render.com/) ,[TiDB Cloud](https://tidbcloud.com/) | \n| Testing | JUnit, Mockito, controller and integration tests | \n\nThe browser never calls the AI provider directly. It sends requests to the Spring Boot API, which manages the AI request and owns the mission lifecycle.\n\n```\nUser preferences\n       |\n       v\nReact + TypeScript\n       |\n       v\nSpring Boot REST API\n       |\n       v\nMission generation service\n       |\n       +-----------------------------+\n       |                             |\n       v                             v\nOllama + Gemma 2             Cloudflare Workers AI\n(local development)           (hosted deployment)\n       |                             |\n       +--------------+--------------+\n                      |\n                      v\n          Structured mission output\n                      |\n                      v\n           Backend validation\n                      |\n                      v\n          TiDB Cloud / MySQL\n                      |\n                      v\n        Tasks, progress and rewards\n```\n\nLanguage models can generate creative activities, but generated output should not automatically be trusted as application data.\n\nWildStep separates responsibilities:\n\nThis separation helps preserve consistent behavior even when an AI provider returns malformed output or becomes unavailable.\n\nGrass Points add a lightweight reward loop to encourage users to finish their missions.\n\nThe backend calculates rewards rather than asking the model to choose arbitrary points. Repeated task-completion requests are handled so that a completed task doesn't award its reward repeatedly.\n\nThe result is a clear loop:\n\n```\nGenerate mission\n       ↓\nGo outside\n       ↓\nComplete tasks\n       ↓\nTrack progress\n       ↓\nEarn Grass Points\n       ↓\nClose the app\n```\n\nThe last step is the most important part of the product.\n\nThis is the part of WildStep that made the project particularly interesting to build.\n\nOpen-weight models give developers more control over experimentation, deployment, and the way AI behavior is integrated into a product.\n\nDuring local development, WildStep can use Gemma 2 through Ollama. Developers can experiment with mission prompts on their own machines, subject to their hardware capabilities.\n\nFor the public demo, WildStep uses Cloudflare Workers AI with an open-weight Llama model. Visitors don't have to download a model before trying the application, although inference requests are processed by the hosted provider.\n\nThese two modes offer different trade-offs:\n\nOpen weights do not automatically make hosted inference private or offline. In the deployed version, prompts are sent to the configured inference service. In local mode, processing can remain local when the selected configuration and runtime support it.\n\nOpen innovation matters because developers can inspect their stack, experiment with different models, change prompts, and adapt their systems rather than building everything around a single closed API.\n\nFor WildStep, AI is not the destination. It is the trigger for an experience outside the screen.\n\nOne of the most valuable parts of this project was taking it beyond a local prototype.\n\nThe application went through frontend integration, backend testing, cloud database configuration, Docker deployment, frontend deployment, and live API verification.\n\nThe hosted AI integration also exposed an important debugging lesson: a successful HTTP request doesn't guarantee that an application can correctly interpret the returned JSON.\n\nI had to investigate response parsing and error handling so that Cloudflare's response envelope could be handled more robustly without bypassing the mission validation layer.\n\nThat reinforced an important principle: reliable AI applications require more than a working model call. They need validation, persistence, failure handling, and predictable application logic.\n\nThe project includes automated tests for mission generation, validation, lifecycle behavior, and deterministic rewards. The latest local verification report recorded 74 passing backend tests and a successful frontend production build; the final repository should be checked for the latest fixes before treating that test count as the published version's result.\n\nWildStep is intended to suggest approachable activities, not encourage risky adventures.\n\nThe backend applies validation and safety checks to generated mission content. Users should still skip activities that feel unsafe, respect public and private property, follow local rules, and avoid hazardous areas.\n\nWildStep is a recreational activity tool, not a medical or mental-health treatment.\n\nI used **Antigravity** as an AI-assisted development tool while building, refining, and debugging WildStep.\n\nThe implementation, tests, and application architecture can be explored in the [GitHub repository](https://github.com/pushptandekar24-glitch/wildstep).\n\nI haven't included a DevRelay agent-session link in this post.\n\n**Best Use of Gemma:** WildStep supports Gemma 2 through Ollama in its local development mode. The deployed public demo currently uses Cloudflare Workers AI with Llama 3.2, so the distinction between local and hosted inference is intentional.\n\nI also enjoyed reading other interpretations of the same challenge, including:\n\nIt's exciting to see different ways open-source AI can encourage people to spend more time outside.\n\nWildStep takes its own approach: short, context-aware missions, a persistent task checklist, backend-controlled progress, and a simple reward system.\n\nThe question wasn't how to make people generate more AI content.\n\nIt was how to make AI useful for a moment, so a person could do something meaningful without it.\n\nGenerate a mission. Go outside. Complete it. Come back when you're ready.\n\n🌿 **WildStep — AI that gets you to close the app.**", "url": "https://wpnews.pro/news/wildstep-i-built-an-ai-that-wants-you-to-close-the-app", "canonical_source": "https://dev.to/pushp_tandekar_43bde974a7/wildstep-i-built-an-ai-that-wants-you-to-close-the-app-published-false-tags-devchallenge-1g1h", "published_at": "2026-10-11 13:49:31+00:00", "updated_at": "2026-10-11 13:53:17.112470+00:00", "lang": "en", "topics": ["artificial-intelligence", "generative-ai", "ai-products", "developer-tools"], "entities": ["WildStep", "Cloudflare Workers AI", "Ollama", "Gemma 2", "Llama 3.2", "Spring Boot", "TiDB Cloud", "Vercel"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/wildstep-i-built-an-ai-that-wants-you-to-close-the-app", "markdown": "https://wpnews.pro/news/wildstep-i-built-an-ai-that-wants-you-to-close-the-app.md", "text": "https://wpnews.pro/news/wildstep-i-built-an-ai-that-wants-you-to-close-the-app.txt", "jsonld": "https://wpnews.pro/news/wildstep-i-built-an-ai-that-wants-you-to-close-the-app.jsonld"}}