<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mennatullah Hosny</title>
    <description>The latest articles on DEV Community by Mennatullah Hosny (@mennaabdelaziz580).</description>
    <link>https://dev.to/mennaabdelaziz580</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4177669%2F51272b96-5049-4077-9bdd-2680e88fe3d6.jpg</url>
      <title>DEV Community: Mennatullah Hosny</title>
      <link>https://dev.to/mennaabdelaziz580</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mennaabdelaziz580"/>
    <language>en</language>
    <item>
      <title>OutThere: meet new people, make real friends and practice languages outdoors, with Gemma running in your browser</title>
      <dc:creator>Mennatullah Hosny</dc:creator>
      <pubDate>Mon, 12 Oct 2026 06:57:44 +0000</pubDate>
      <link>https://dev.to/mennaabdelaziz580/outthere-meet-new-people-make-real-friends-and-practice-languages-outdoors-with-gemma-running-in-3emp</link>
      <guid>https://dev.to/mennaabdelaziz580/outthere-meet-new-people-make-real-friends-and-practice-languages-outdoors-with-gemma-running-in-3emp</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;We built OutThere around one idea: the best reasons to go outside are other people.&lt;/p&gt;

&lt;p&gt;Most of us have hundreds of online contacts and still struggle to meet someone new face to face. We wanted an app that helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make new friends and real connections.&lt;/strong&gt; Not followers: people you actually meet, laugh with, and see again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice the social side of life.&lt;/strong&gt; Introducing yourself, starting a conversation, working in a group, presenting your ideas to people you just met. These skills only grow by doing them in person.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice languages for real.&lt;/strong&gt; A language-exchange walk in the park teaches you more than another week of flashcards, because you have to understand and be understood on the spot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Just have fun together.&lt;/strong&gt; Games, walks, and small challenges in public parks that cost little or nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cairo has beautiful public spaces: Al-Azhar Park, the Nile corniche, the gardens of Heliopolis. The hard part isn't going out; it's having &lt;em&gt;someone to go with&lt;/em&gt; and &lt;em&gt;something to do&lt;/em&gt; once you're there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OutThere&lt;/strong&gt; is a small web app for finding and hosting low-cost group activities in public outdoor spaces: chess in the park, language-exchange walks, photo scavenger hunts. You can browse activities, filter by area, category and date, and join with one tap. Every card explains &lt;em&gt;why&lt;/em&gt; it matches you.&lt;/p&gt;

&lt;p&gt;If you want to host but don't know what to run, the &lt;strong&gt;AI Idea Lab&lt;/strong&gt; uses &lt;strong&gt;Gemma&lt;/strong&gt; to plan an activity for your group size, time, area, budget and interests: steps, conversation prompts that help strangers open up, accessibility notes, safety checks, a closing reflection, and one sentence on why it fits you.&lt;/p&gt;

&lt;p&gt;Then the app gets out of the way. Every plan asks people to keep their phones in their pockets and talk to each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who it's for:&lt;/strong&gt; people new to a city, students, language learners, and anyone who wants more friends but doesn't know where to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://mennatullah122.github.io/Hacktoberfest26-OutThere/" rel="noopener noreferrer"&gt;https://mennatullah122.github.io/Hacktoberfest26-OutThere/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try it: create an account, host an activity, then sign in as a second user and join it. Open the &lt;strong&gt;AI Idea Lab&lt;/strong&gt; to let Gemma plan one for you. On desktop Chrome or Edge it runs on your own device; on other browsers it uses hosted Gemma 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Mennatullah122" rel="noopener noreferrer"&gt;
        Mennatullah122
      &lt;/a&gt; / &lt;a href="https://github.com/Mennatullah122/Hacktoberfest26-OutThere" rel="noopener noreferrer"&gt;
        Hacktoberfest26-OutThere
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌿 OutThere&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Meet people in Cairo by doing things together outside: small games, language circles, walks and treasure hunts in public parks.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;OutThere is a lightweight web app for finding and hosting small group activities in public outdoor spaces. Its AI Idea Lab uses &lt;strong&gt;Gemma&lt;/strong&gt;, an open-weight model, to plan an activity that fits your group, time, area and budget. By default Gemma runs &lt;strong&gt;entirely in your browser&lt;/strong&gt; through &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;, so your interests and neighborhood never leave your device.&lt;/p&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05" rel="nofollow"&gt;Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore&lt;/strong&gt; activities by category, neighborhood, group size and date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join and leave&lt;/strong&gt; with rules enforced: sign-in required, no duplicate joins, capacity limits, no joining cancelled or finished activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt; an activity with validation (future start time, 2–30 people, 15–480 minutes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent recommendations&lt;/strong&gt;: each card says why it matches you (category +3, neighborhood +2, interests +1…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Mennatullah122/Hacktoberfest26-OutThere" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Open-weight AI, three ways, always labelled.&lt;/strong&gt; Every plan shows exactly which model produced it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;On-device Gemma (default).&lt;/strong&gt; If your browser supports WebGPU, &lt;strong&gt;Gemma 2 2B&lt;/strong&gt; runs &lt;em&gt;inside your browser&lt;/em&gt; via &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;. After a one-time ~1.5 GB download (cached), your interests and neighborhood never leave your device. No server, no API key, no cost per user.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted Gemma 4 (fallback).&lt;/strong&gt; Phones and browsers without WebGPU call a Supabase Edge Function that runs &lt;strong&gt;&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;&lt;/strong&gt; (falling back to &lt;code&gt;gemma-4-31b-it&lt;/code&gt;) on Google AI Studio. The app says plainly that this mode sends your answers to Google's servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring your own.&lt;/strong&gt; Point the app at your own &lt;strong&gt;Ollama&lt;/strong&gt; or any OpenAI-compatible server running Gemma.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If no model is available, you get a curated template, clearly labelled "not AI-generated." We never wanted the app to pass off a template as AI.&lt;/p&gt;

&lt;p&gt;Each plan includes conversation prompts and a closing reflection, because the goal isn't the game itself; it's the connection people make while playing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guardrails we cared about:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No invented places.&lt;/strong&gt; The prompt forbids making up venue names, opening hours, fees or crowd levels. Venues are marked unverified and link to an OpenStreetMap &lt;em&gt;search&lt;/em&gt; instead of claiming coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validated output.&lt;/strong&gt; Model output is parsed defensively and normalized. Fixed safety rules (public areas only, no climbing, don't disturb wildlife) are always appended, whatever the model says.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A locked-down endpoint.&lt;/strong&gt; The hosted function builds the prompt itself from validated form fields, so it can't be used as a free general-purpose chatbot on our key. It also only accepts requests from the app's own site and rate-limits per IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fair joining rules.&lt;/strong&gt; No duplicate joins, capacity limits, and no joining cancelled or finished activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community safety.&lt;/strong&gt; Clear participation guidelines and a report button on every activity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What bit us:&lt;/strong&gt; Gemma 4 "thinks" before answering, and on the API those thinking tokens count against the output limit. Our first hosted calls came back completely empty because the model spent its whole budget thinking. The fix was &lt;code&gt;thinkingLevel: "minimal"&lt;/code&gt;, which turns thinking off; a short activity plan doesn't need it, and responses got much faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; vanilla HTML/CSS/JS · WebLLM · Gemma 2 &amp;amp; Gemma 4 · Supabase Edge Functions (Deno) · GitHub Pages. A Supabase schema with Row Level Security and an atomic, row-locked join function is included for the next step: a shared multi-user version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Because the weights are open, Gemma can run &lt;strong&gt;inside the user's browser&lt;/strong&gt;. You can't download a closed model into a browser tab. That made three things possible that a closed API wouldn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by default.&lt;/strong&gt; What you're interested in and which neighborhood you hang out in is personal. With on-device Gemma, it never leaves your phone or laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free at any scale.&lt;/strong&gt; There's no per-request bill, so the app can stay free for students and newcomers, the people who need new connections most.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in.&lt;/strong&gt; The same plan generator works on-device, on Google's hosted Gemma, or on anyone's own Ollama server. If a provider changes its terms, we switch with one setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; the AI Idea Lab runs Gemma 2 2B entirely in the browser via WebLLM, with Gemma 4 on Google AI Studio as a clearly labelled fallback for devices without WebGPU.&lt;/p&gt;

&lt;h2&gt;
  
  
  Team
&lt;/h2&gt;

&lt;p&gt;Built by @&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;We built OutThere around one idea: the best reasons to go outside are other people.&lt;/p&gt;

&lt;p&gt;Most of us have hundreds of online contacts and still struggle to meet someone new face to face. We wanted an app that helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make new friends and real connections.&lt;/strong&gt; Not followers: people you actually meet, laugh with, and see again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice the social side of life.&lt;/strong&gt; Introducing yourself, starting a conversation, working in a group, presenting your ideas to people you just met. These skills only grow by doing them in person.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice languages for real.&lt;/strong&gt; A language-exchange walk in the park teaches you more than another week of flashcards, because you have to understand and be understood on the spot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Just have fun together.&lt;/strong&gt; Games, walks, and small challenges in public parks that cost little or nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cairo has beautiful public spaces: Al-Azhar Park, the Nile corniche, the gardens of Heliopolis. The hard part isn't going out; it's having &lt;em&gt;someone to go with&lt;/em&gt; and &lt;em&gt;something to do&lt;/em&gt; once you're there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OutThere&lt;/strong&gt; is a small web app for finding and hosting low-cost group activities in public outdoor spaces: chess in the park, language-exchange walks, photo scavenger hunts. You can browse activities, filter by area, category and date, and join with one tap. Every card explains &lt;em&gt;why&lt;/em&gt; it matches you.&lt;/p&gt;

&lt;p&gt;If you want to host but don't know what to run, the &lt;strong&gt;AI Idea Lab&lt;/strong&gt; uses &lt;strong&gt;Gemma&lt;/strong&gt; to plan an activity for your group size, time, area, budget and interests: steps, conversation prompts that help strangers open up, accessibility notes, safety checks, a closing reflection, and one sentence on why it fits you.&lt;/p&gt;

&lt;p&gt;Then the app gets out of the way. Every plan asks people to keep their phones in their pockets and talk to each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who it's for:&lt;/strong&gt; people new to a city, students, language learners, and anyone who wants more friends but doesn't know where to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://mennatullah122.github.io/Hacktoberfest26-OutThere/" rel="noopener noreferrer"&gt;https://mennatullah122.github.io/Hacktoberfest26-OutThere/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try it: create an account, host an activity, then sign in as a second user and join it. Open the &lt;strong&gt;AI Idea Lab&lt;/strong&gt; to let Gemma plan one for you. On desktop Chrome or Edge it runs on your own device; on other browsers it uses hosted Gemma 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Mennatullah122" rel="noopener noreferrer"&gt;
        Mennatullah122
      &lt;/a&gt; / &lt;a href="https://github.com/Mennatullah122/Hacktoberfest26-OutThere" rel="noopener noreferrer"&gt;
        Hacktoberfest26-OutThere
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌿 OutThere&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Meet people in Cairo by doing things together outside: small games, language circles, walks and treasure hunts in public parks.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;OutThere is a lightweight web app for finding and hosting small group activities in public outdoor spaces. Its AI Idea Lab uses &lt;strong&gt;Gemma&lt;/strong&gt;, an open-weight model, to plan an activity that fits your group, time, area and budget. By default Gemma runs &lt;strong&gt;entirely in your browser&lt;/strong&gt; through &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;, so your interests and neighborhood never leave your device.&lt;/p&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05" rel="nofollow"&gt;Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore&lt;/strong&gt; activities by category, neighborhood, group size and date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join and leave&lt;/strong&gt; with rules enforced: sign-in required, no duplicate joins, capacity limits, no joining cancelled or finished activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt; an activity with validation (future start time, 2–30 people, 15–480 minutes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent recommendations&lt;/strong&gt;: each card says why it matches you (category +3, neighborhood +2, interests +1…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Mennatullah122/Hacktoberfest26-OutThere" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Open-weight AI, three ways, always labelled.&lt;/strong&gt; Every plan shows exactly which model produced it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;On-device Gemma (default).&lt;/strong&gt; If your browser supports WebGPU, &lt;strong&gt;Gemma 2 2B&lt;/strong&gt; runs &lt;em&gt;inside your browser&lt;/em&gt; via &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;. After a one-time ~1.5 GB download (cached), your interests and neighborhood never leave your device. No server, no API key, no cost per user.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted Gemma 4 (fallback).&lt;/strong&gt; Phones and browsers without WebGPU call a Supabase Edge Function that runs &lt;strong&gt;&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;&lt;/strong&gt; (falling back to &lt;code&gt;gemma-4-31b-it&lt;/code&gt;) on Google AI Studio. The app says plainly that this mode sends your answers to Google's servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring your own.&lt;/strong&gt; Point the app at your own &lt;strong&gt;Ollama&lt;/strong&gt; or any OpenAI-compatible server running Gemma.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If no model is available, you get a curated template, clearly labelled "not AI-generated." We never wanted the app to pass off a template as AI.&lt;/p&gt;

&lt;p&gt;Each plan includes conversation prompts and a closing reflection, because the goal isn't the game itself; it's the connection people make while playing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guardrails we cared about:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No invented places.&lt;/strong&gt; The prompt forbids making up venue names, opening hours, fees or crowd levels. Venues are marked unverified and link to an OpenStreetMap &lt;em&gt;search&lt;/em&gt; instead of claiming coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validated output.&lt;/strong&gt; Model output is parsed defensively and normalized. Fixed safety rules (public areas only, no climbing, don't disturb wildlife) are always appended, whatever the model says.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A locked-down endpoint.&lt;/strong&gt; The hosted function builds the prompt itself from validated form fields, so it can't be used as a free general-purpose chatbot on our key. It also only accepts requests from the app's own site and rate-limits per IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fair joining rules.&lt;/strong&gt; No duplicate joins, capacity limits, and no joining cancelled or finished activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community safety.&lt;/strong&gt; Clear participation guidelines and a report button on every activity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What bit us:&lt;/strong&gt; Gemma 4 "thinks" before answering, and on the API those thinking tokens count against the output limit. Our first hosted calls came back completely empty because the model spent its whole budget thinking. The fix was &lt;code&gt;thinkingLevel: "minimal"&lt;/code&gt;, which turns thinking off; a short activity plan doesn't need it, and responses got much faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; vanilla HTML/CSS/JS · WebLLM · Gemma 2 &amp;amp; Gemma 4 · Supabase Edge Functions (Deno) · GitHub Pages. A Supabase schema with Row Level Security and an atomic, row-locked join function is included for the next step: a shared multi-user version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Because the weights are open, Gemma can run &lt;strong&gt;inside the user's browser&lt;/strong&gt;. You can't download a closed model into a browser tab. That made three things possible that a closed API wouldn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by default.&lt;/strong&gt; What you're interested in and which neighborhood you hang out in is personal. With on-device Gemma, it never leaves your phone or laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free at any scale.&lt;/strong&gt; There's no per-request bill, so the app can stay free for students and newcomers, the people who need new connections most.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in.&lt;/strong&gt; The same plan generator works on-device, on Google's hosted Gemma, or on anyone's own Ollama server. If a provider changes its terms, we switch with one setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; the AI Idea Lab runs Gemma 2 2B entirely in the browser via WebLLM, with Gemma 4 on Google AI Studio as a clearly labelled fallback for devices without WebGPU.&lt;/p&gt;

&lt;h2&gt;
  
  
  Team
&lt;/h2&gt;

&lt;p&gt;Built by @&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;We built OutThere around one idea: the best reasons to go outside are other people.&lt;/p&gt;

&lt;p&gt;Most of us have hundreds of online contacts and still struggle to meet someone new face to face. We wanted an app that helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Make new friends and real connections.&lt;/strong&gt; Not followers: people you actually meet, laugh with, and see again.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice the social side of life.&lt;/strong&gt; Introducing yourself, starting a conversation, working in a group, presenting your ideas to people you just met. These skills only grow by doing them in person.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Practice languages for real.&lt;/strong&gt; A language-exchange walk in the park teaches you more than another week of flashcards, because you have to understand and be understood on the spot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Just have fun together.&lt;/strong&gt; Games, walks, and small challenges in public parks that cost little or nothing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cairo has beautiful public spaces: Al-Azhar Park, the Nile corniche, the gardens of Heliopolis. The hard part isn't going out; it's having &lt;em&gt;someone to go with&lt;/em&gt; and &lt;em&gt;something to do&lt;/em&gt; once you're there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OutThere&lt;/strong&gt; is a small web app for finding and hosting low-cost group activities in public outdoor spaces: chess in the park, language-exchange walks, photo scavenger hunts. You can browse activities, filter by area, category and date, and join with one tap. Every card explains &lt;em&gt;why&lt;/em&gt; it matches you.&lt;/p&gt;

&lt;p&gt;If you want to host but don't know what to run, the &lt;strong&gt;AI Idea Lab&lt;/strong&gt; uses &lt;strong&gt;Gemma&lt;/strong&gt; to plan an activity for your group size, time, area, budget and interests: steps, conversation prompts that help strangers open up, accessibility notes, safety checks, a closing reflection, and one sentence on why it fits you.&lt;/p&gt;

&lt;p&gt;Then the app gets out of the way. Every plan asks people to keep their phones in their pockets and talk to each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who it's for:&lt;/strong&gt; people new to a city, students, language learners, and anyone who wants more friends but doesn't know where to start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://mennatullah122.github.io/Hacktoberfest26-OutThere/" rel="noopener noreferrer"&gt;https://mennatullah122.github.io/Hacktoberfest26-OutThere/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try it: create an account, host an activity, then sign in as a second user and join it. Open the &lt;strong&gt;AI Idea Lab&lt;/strong&gt; to let Gemma plan one for you. On desktop Chrome or Edge it runs on your own device; on other browsers it uses hosted Gemma 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Mennatullah122" rel="noopener noreferrer"&gt;
        Mennatullah122
      &lt;/a&gt; / &lt;a href="https://github.com/Mennatullah122/Hacktoberfest26-OutThere" rel="noopener noreferrer"&gt;
        Hacktoberfest26-OutThere
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🌿 OutThere&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Meet people in Cairo by doing things together outside: small games, language circles, walks and treasure hunts in public parks.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;OutThere is a lightweight web app for finding and hosting small group activities in public outdoor spaces. Its AI Idea Lab uses &lt;strong&gt;Gemma&lt;/strong&gt;, an open-weight model, to plan an activity that fits your group, time, area and budget. By default Gemma runs &lt;strong&gt;entirely in your browser&lt;/strong&gt; through &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;, so your interests and neighborhood never leave your device.&lt;/p&gt;
&lt;p&gt;Built for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05" rel="nofollow"&gt;Hacktoberfest Open-Source AI Challenge, Week 1: Touch Grass&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Explore&lt;/strong&gt; activities by category, neighborhood, group size and date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Join and leave&lt;/strong&gt; with rules enforced: sign-in required, no duplicate joins, capacity limits, no joining cancelled or finished activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Host&lt;/strong&gt; an activity with validation (future start time, 2–30 people, 15–480 minutes).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transparent recommendations&lt;/strong&gt;: each card says why it matches you (category +3, neighborhood +2, interests +1…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Mennatullah122/Hacktoberfest26-OutThere" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Open-weight AI, three ways, always labelled.&lt;/strong&gt; Every plan shows exactly which model produced it:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;On-device Gemma (default).&lt;/strong&gt; If your browser supports WebGPU, &lt;strong&gt;Gemma 2 2B&lt;/strong&gt; runs &lt;em&gt;inside your browser&lt;/em&gt; via &lt;a href="https://github.com/mlc-ai/web-llm" rel="noopener noreferrer"&gt;WebLLM&lt;/a&gt;. After a one-time ~1.5 GB download (cached), your interests and neighborhood never leave your device. No server, no API key, no cost per user.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hosted Gemma 4 (fallback).&lt;/strong&gt; Phones and browsers without WebGPU call a Supabase Edge Function that runs &lt;strong&gt;&lt;code&gt;gemma-4-26b-a4b-it&lt;/code&gt;&lt;/strong&gt; (falling back to &lt;code&gt;gemma-4-31b-it&lt;/code&gt;) on Google AI Studio. The app says plainly that this mode sends your answers to Google's servers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bring your own.&lt;/strong&gt; Point the app at your own &lt;strong&gt;Ollama&lt;/strong&gt; or any OpenAI-compatible server running Gemma.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If no model is available, you get a curated template, clearly labelled "not AI-generated." We never wanted the app to pass off a template as AI.&lt;/p&gt;

&lt;p&gt;Each plan includes conversation prompts and a closing reflection, because the goal isn't the game itself; it's the connection people make while playing it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guardrails we cared about:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No invented places.&lt;/strong&gt; The prompt forbids making up venue names, opening hours, fees or crowd levels. Venues are marked unverified and link to an OpenStreetMap &lt;em&gt;search&lt;/em&gt; instead of claiming coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validated output.&lt;/strong&gt; Model output is parsed defensively and normalized. Fixed safety rules (public areas only, no climbing, don't disturb wildlife) are always appended, whatever the model says.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A locked-down endpoint.&lt;/strong&gt; The hosted function builds the prompt itself from validated form fields, so it can't be used as a free general-purpose chatbot on our key. It also only accepts requests from the app's own site and rate-limits per IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fair joining rules.&lt;/strong&gt; No duplicate joins, capacity limits, and no joining cancelled or finished activities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community safety.&lt;/strong&gt; Clear participation guidelines and a report button on every activity.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What bit us:&lt;/strong&gt; Gemma 4 "thinks" before answering, and on the API those thinking tokens count against the output limit. Our first hosted calls came back completely empty because the model spent its whole budget thinking. The fix was &lt;code&gt;thinkingLevel: "minimal"&lt;/code&gt;, which turns thinking off; a short activity plan doesn't need it, and responses got much faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stack:&lt;/strong&gt; vanilla HTML/CSS/JS · WebLLM · Gemma 2 &amp;amp; Gemma 4 · Supabase Edge Functions (Deno) · GitHub Pages. A Supabase schema with Row Level Security and an atomic, row-locked join function is included for the next step: a shared multi-user version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Because the weights are open, Gemma can run &lt;strong&gt;inside the user's browser&lt;/strong&gt;. You can't download a closed model into a browser tab. That made three things possible that a closed API wouldn't:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by default.&lt;/strong&gt; What you're interested in and which neighborhood you hang out in is personal. With on-device Gemma, it never leaves your phone or laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free at any scale.&lt;/strong&gt; There's no per-request bill, so the app can stay free for students and newcomers, the people who need new connections most.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No lock-in.&lt;/strong&gt; The same plan generator works on-device, on Google's hosted Gemma, or on anyone's own Ollama server. If a provider changes its terms, we switch with one setting.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; the AI Idea Lab runs Gemma 2 2B entirely in the browser via WebLLM, with Gemma 4 on Google AI Studio as a clearly labelled fallback for devices without WebGPU.&lt;/p&gt;

&lt;h2&gt;
  
  
  Team
&lt;/h2&gt;

&lt;p&gt;Built by &lt;a class="mentioned-user" href="https://dev.to/mennaabdelaziz580"&gt;@mennaabdelaziz580&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
