{
  "id": 18985330,
  "title": "My first month of hackathons: 4 local AI projects, 4 lessons",
  "url": "https://urgent.news/2026/11/08/my-first-month-of-hackathons-4-local-ai-projects-4-lessons",
  "topic": "ai",
  "section": "AI",
  "published": "2026-11-08T17:40:14.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/devcarlat800/my-first-month-of-hackathons-4-local-ai-projects-4-lessons-2528"
  },
  "original_language": "en",
  "account": "My journey into hackathons began in October 2026, aiming to create projects on GitHub and expand my knowledge. I participated in Hacktoberfest, MLH Global Hack Week, and DEV challenges. All AI projects ran on my computer using Gemma, an open model, without paid APIs.\n\nProject 1: Search by Meaning (Global Hack Week). This project involved 10 customer-service notes from an online shop stored in Postgres with pgvector. Embedding Gemma turned each note into a list of numbers representing its meaning, enabling searches to find notes with similar meanings, even without common words. However, the query initially returned 3 unrelated notes. Adjusting the query to only show results with a minimum score of 0.6 resolved this issue. This taught me the importance of setting a minimum score for relevant results.\n\nProject 2: Support Copilot (DEV week 2). For a small ceramic shop, Support Copilot drafted replies to recurring customer emails based on past solutions. The AI faced challenges, such as picking the wrong policy when a customer wanted a refund and mistakenly stating the shop didn't sell teapots. To improve the AI's performance, I instructed it to follow the most similar case, lowered the temperature to 0.2 for consistent replies, and raised the minimum score to 0.6. This ensured the AI generated accurate and relevant replies, but human review was still necessary before sending.\n\nProject 3: Lazy Screenshot Namer (DEV week 3). I had a folder of screenshots named \"Screenshot 2026-10-11 173802.png\", which took me 10-15 minutes to rename manually. Lazy Screenshot Namer used Gemma to analyze each screenshot, suggest a short name, and flag potential password leaks. However, in my first version, the model struggled with generating names, often producing overly long and unusable ones. By limiting the output to 40 tokens and removing examples from the prompt, I reduced the processing time to about 9 seconds per image. Additionally, separating the image description and naming steps further improved the results.\n\nProject 4: Tell the Tree (DEV week 4). This project replaced a shut-down family tree website with a local one. You input family relationships in Italian or English, and Gemma generates a preview of the changes. Despite initial success, a hidden set of 6 secret sentences in spoken Italian caused issues, including incorrect titles and unrecognized family members. To prevent such problems, I tested with sentences not built on by the model, published the results as they were, and kept a human in the loop to discard incorrect names before saving them.\n\nLooking ahead, I continue using Tell the Tree for my family tree, analyzing errors to improve the model's performance. If you also participated in Hacktoberfest this year, I'm curious about your projects as well.",
  "summary": "October 2026 was my first month of hackathons. I wanted a few real projects on GitHub, something outside my work projects, and to learn new things by doing them. I joined Hacktoberfest: two small exercises in MLH Global Hack Week and three weekly DEV challenges. The AI in every project is an open Gemma model running on my own computer with Ollama. No paid API. Here is what each project does, what…",
  "key_points": [
    "Created four AI projects during October 2026 hackathons",
    "Search by Meaning taught importance of minimum score for relevant results",
    "Support Copilot improved AI accuracy with policy following, temperature, and score adjustments"
  ],
  "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."
}