Fetching latest headlines…

Dev

SideQuest: Turn ‘we should get out, but…’ into a family quest"

Dev.toUnited States · NORTH AMERICA

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass. “We should get out of the house, but…” Someone is tired. Someone wants something different. The children cannot...

3 views0 likes0 comments

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass.

What I Built

“We should get out of the house, but…”

Someone is tired. Someone wants something different. The children cannot agree on what would be fun. Choosing an activity becomes another task before the outing has even started.

I built SideQuest to turn that moment into one playable family mission.

Before generating a quest, the family chooses:

  • Who is going.
  • What is getting in the way.
  • How much time they have.
  • How far they can travel.

The blocker changes the kind of mission SideQuest creates. Children’s interests shape the theme and activities, while the youngest participant sets the reading level.

The result is a complete mission card: a short premise, five objectives, a bonus challenge, and one clearly marked Main Objective that creates a specific photo moment.

The family can photograph the card or print it on A4, then put the screen away. Everything needed for the mission is on that card.

After the outing, they confirm completion, rate the experience, and earn XP toward levels and new mission types. Recent feedback becomes part of the context for future quests.

SideQuest is for families who want to go outside together but need an idea that fits their time, energy, and interests. The aim is to make choosing the activity a short step before the actual adventure.

Demo

Watch the SideQuest demo on YouTube.

Code

SideQuest on GitHub

How I Built It

SideQuest uses:

  • React and TypeScript for the interface.
  • Fastify for the local API.
  • Zod for shared schemas and validation.
  • Mastra for the agent layer.
  • Gemma 4 E4B, running locally through Ollama.
  • A local JSON file for profiles, the active mission, and completion history.

The server prepares connected quest plans around the featured child’s interest. Gemma then selects and names a quest using the family’s setup and recent feedback.

This gives the model a defined role: adapt the mission choice and presentation to the people going outside. Zod validation and server checks keep the objectives, story, and photo task consistent.

One important design decision was making the mission card the complete handoff. If the family needs to keep checking the application during the outing, the card has not done its job.

Profiles and outing history stay on the family’s computer. The application does not upload photos or track location, and model requests go to the local Ollama endpoint. Once the application and model are installed, mission generation can work without an internet connection.

Why Does Open Innovation Matter?

Family names, ages, interests, and outing history are personal. Running an open-weight model locally lets SideQuest use that context while keeping it on the family’s computer.

Local inference also makes the application usable without a hosted model API key or an internet connection. That is useful for a tool whose purpose is to help people leave the screen behind.

Gemma provides the open-weight model, and Mastra provides an open-source agent framework. Developers can inspect the integration, replace the model, or change the mission rules as they learn what works for their families.

For SideQuest, open innovation means being able to adapt a small household tool around the people using it, while keeping control over their data and how the AI behaves.

Prize Categories

Best Use of Gemma

SideQuest runs Gemma 4 E4B locally through Ollama. The model uses participant context, the outing constraints, and recent feedback to select and name a family quest from server-prepared mission plans.

Best Use of Mastra

Mastra connects the application’s mission-generation agent to the local Gemma model. Shared Zod schemas and server validation provide the structure needed to turn the response into a usable mission card.

Comments (0)

Sign in to join the discussion

Be the first to comment!