{
  "id": 11753304,
  "title": "Practice the Awkward Bit: rehearse conversations with local Gemma",
  "url": "https://urgent.news/2026/10/03/practice-the-awkward-bit-rehearse-conversations-with-local-gemma",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-03T19:27:05.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/sasivarnan/practice-the-awkward-bit-rehearse-conversations-with-local-gemma-1kl0"
  },
  "original_language": "en",
  "account": "Rahul created a web application called \"Practice the Awkward Bit\" as part of the Hacktoberfest Weekend Challenge. The app is aimed at introverts who struggle with starting conversations. Users can practice declining invitations, making requests, or joining conversations by choosing a scenario and Gemma, an AI-powered conversational partner, plays the other person.\n\nThe app provides feedback on the user's replies, suggesting improvements and presenting alternative ways to express themselves. Users can save their conversations using localStorage or export them as text. The app is built with React, TypeScript, and Tailwind CSS, and runs the Gemma 2 2B model locally through WebLLM in a WebGPU worker.\n\nThe app is hosted on a site with separate downloads for the site and model assets. The code is available on GitHub under an MIT license. While the app offers benefits such as privacy and the ability to inspect prompts and swap models, it requires a large download and depends on the user's hardware. The app also acknowledges the limitations of being not fully offline and Gemma's terms still apply.",
  "summary": "A submission for the Hacktoberfest Weekend Challenge: Build for a Friend . What I Built I’m an introvert, and sometimes the hardest part of a conversation is getting the first sentence out. Practice the Awkward Bit gives you a quiet place to rehearse: decline an invitation, ask for something back, or join a conversation. Set the scene, choose how cooperative the other person is, and try a few…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}