# Build Small Hackathon -- The Complete Winning Guide ## Table of Contents 1. [Hackathon Overview](#hackathon-overview) 2. [What the Judges Want](#what-the-judges-want) 3. [Small Language Models -- Theory & Education](#small-language-models) 4. [Gradio -- Theory & Education](#gradio) 5. [Your Real Problem & Winning Strategy](#your-winning-strategy) 6. [Technical Stack & Hosting](#technical-stack--hosting) 7. [Bonus Quests to Earn](#bonus-quests) 8. [Pitch & Demo Tips](#pitch--demo-tips) 9. [Timeline & Checklist](#timeline--checklist) --- ## Hackathon Overview **Name:** Build Small Hackathon **Hosted by:** Gradio + Hugging Face **URL:** https://huggingface.co/build-small-hackathon **Dates:** May 29 -- June 8, 2026 (two weekends to build, ship, and demo) **Cash Prizes:** $15,000 **Registration deadline:** May 27, 2026 ### The Philosophy The hackathon motto is **"Making AI Fun Again."** The organizers feel AI has become anxiety-inducing -- labs keep releasing bigger and bigger models doing things that feel threatening. This hackathon wants to bring back the 2021 vibe: when models were small enough to tinker with, and building with AI was joyful and personal. The core instruction: **Think small.** Armed with only 32 billion parameters, solve a real problem for someone you know -- or build something whimsical and delightful. ### Two Tracks (Pick One) #### Track 1: "Backyard AI" (Chapter One) -- YOUR TRACK > Solve a real problem for someone you actually know. Pick a person -- a neighbor, a parent, a small-business owner on your street -- and build something that makes their day measurably better. **Judged on:** - Problem is specific and real - The person actually *used* it - Honest fit between problem and the small-model constraint - Polish of the Gradio app #### Track 2: "An Adventure in Thousand Token Wood" (Chapter Two) > Build something delightful that wouldn't exist without AI. A toy, a tiny game, a strange interactive story, an art experiment. The AI should be doing the fun thing -- not just helping you build it. Strange is good. Joyful is the bar. **Judged on:** - Genuinely delightful (would you show a friend?) - AI is load-bearing for the experience - Originality of concept - Polish of the Gradio app ### Three Hard Rules ("Pack Light") | # | Rule | What It Means | |---|------|---------------| | 1 | **Small Models Only** | Total parameters must be **<= 32 billion**. The model must fit on a laptop. | | 2 | **Built on Gradio** | Your app must be a **Gradio app**, hosted as a **Hugging Face Space**. | | 3 | **Show, Don't Tell** | Submit a short **demo video** and a **social-media post** alongside your Space. | ### The Deliverable (What You Actually Submit) 1. **A running Gradio app** hosted as a Hugging Face Space under the `build-small-hackathon` org 2. **A short demo video** (screen recording showing the app in action) 3. **A social media post** (tweet, LinkedIn, etc.) about your project That's it. No slides. No paper. A working app, a video, and a post. --- ## What the Judges Want ### Judge Mindset (Track 1 -- Backyard AI) The judges are looking for projects where **a real person has a real problem, and AI genuinely helps.** They are NOT impressed by: - Generic productivity tools - Yet another RAG chatbot - Technical complexity for its own sake They ARE impressed by: - **Authenticity** -- "I built this for myself / my own business" - **Before vs. After** -- "This used to take 3 hours, now it takes 10 minutes" - **Honest constraint fit** -- "I chose a small model because the task is structured extraction, not novel reasoning" - **Polish** -- The Gradio app looks finished, not like a prototype ### The Secret Scoring Formula | Criteria | Weight | What Wins | |----------|--------|-----------| | Real problem, real person | HIGH | You ARE the person. Show real documents, real store names. | | Honest small-model fit | HIGH | Explain WHY a small model works: parsing structured docs, not writing novels | | Gradio polish | HIGH | Beautiful UI, smooth flow, no jank | | Actually used | MEDIUM | Demo with your actual PO documents and store data | ### The Meta-Game Judges spend **3-10 minutes** per project. Your app must instantly communicate: 1. What the problem is 2. What the AI is doing 3. Why it's cool --- ## Small Language Models ### What Is a "Small" Model? In this hackathon, "small" means **<= 32 billion parameters**. For context: - GPT-4 is rumored to be ~1.8 trillion parameters - Claude, Gemini are similarly massive - A 3B model is roughly 600x smaller than GPT-4 Parameters are the "brain cells" of a neural network. More parameters = more knowledge and reasoning ability, but also more compute, memory, and cost. ### Size Tiers and What They're Good For | Size | Examples | RAM Needed | Good For | Limitations | |------|----------|-----------|----------|-------------| | **0.5B -- 1.5B** | Qwen2.5-0.5B/1.5B, Llama 3.2-1B | 0.5--1 GB | Simple extraction, classification, formatting | Limited knowledge, short context | | **3B** | Qwen2.5-3B, Llama 3.2-3B, Phi-3-mini | ~2 GB | Structured extraction, summarization, translation | Struggles with complex multi-step logic | | **7B -- 8B** | Llama 3.1-8B, Mistral-7B, Qwen2.5-7B | ~5 GB | Strong extraction, conversation, code generation | Needs 8GB+ RAM machine | | **14B** | Qwen2.5-14B, Phi-4-14B | ~10 GB | Good reasoning, strong coding, multi-language | Needs 16GB+ RAM, GPU recommended | | **27B -- 32B** | Gemma-2-27B, Qwen2.5-32B | ~20 GB | Near-GPT-3.5 quality for many tasks | Needs 32GB RAM or GPU | ### Your Laptop: 6 GB RAM Your AMD Ryzen 7 3700U with 6 GB RAM can run: - **Qwen2.5:1.5b** -- comfortably (needs ~1 GB) - **Qwen2.5:3b** -- tight but possible (needs ~2 GB) - **Qwen2.5:7b** -- NOT possible (needs ~5 GB, your machine only has ~1.5 GB free) **For the hackathon demo on HF Spaces**: The model runs on HF's servers, not your laptop. RAM doesn't matter. **For local development**: Use the HF Inference API (free tier) -- the model runs in the cloud. Your laptop just runs the Gradio UI. ### Why Small Models Are GOOD (Not Just "Acceptable") This is key for your pitch: 1. **Privacy:** Store sales data, supplier info, pricing -- stays private. Indonesian small businesses don't want data going to OpenAI. 2. **Cost:** Zero API fees. No monthly subscription. A small business owner can run this forever for free on a decent laptop. 3. **Right-sizing:** Parsing "20 sticker kucing hologram 5x5cm" from a messy PO document is structured extraction -- you DON'T need GPT-4 for this. A 3B model handles it perfectly. 4. **Speed:** For structured tasks, small models are often FASTER than cloud APIs because there's no network latency. 5. **Accessibility:** Works for Indonesian small businesses who may not have reliable internet or cloud budgets. ### What Small Models Do Well (YOUR Use Cases) - **Structured data extraction from messy formats** -- THE core of your app. Different stores send POs in Excel, PDF, handwritten, different formats. LLM normalizes them all into structured data. - **Text formatting/templating** -- Generating delivery documents, order summaries - **Translation** -- English/Indonesian bilingual output - **Summarization** -- Best seller reports, monthly summaries - **Classification** -- Categorizing sticker types, matching product names across stores ### What Small Models Struggle With - Open-ended creative writing - Complex multi-step mathematical reasoning - Tasks requiring broad world knowledge - Very long context (>4K tokens on smaller models) --- ## Gradio ### What Is Gradio? Gradio is a **Python library for building web-based UI for machine learning apps.** You write Python, and Gradio generates a full interactive web app. Key facts: - Made by Hugging Face (the hackathon host -- using it well MATTERS) - Write **only Python** -- no HTML, CSS, or JavaScript needed (though you can add custom CSS) - Generates a **shareable web URL** automatically - Deploys to **Hugging Face Spaces** with one click - Has 30+ built-in components (text boxes, tables, file uploads, buttons, chat interfaces, etc.) ### Gradio Core Concepts #### 1. Interface (Simple Mode) The simplest way. Define inputs, outputs, and a function: ```python import gradio as gr def greet(name): return f"Hello, {name}!" demo = gr.Interface(fn=greet, inputs="text", outputs="text") demo.launch() ``` #### 2. Blocks (Advanced Mode) -- WHAT YOU SHOULD USE Full layout control with rows, columns, tabs: ```python import gradio as gr with gr.Blocks(title="My App") as demo: gr.Markdown("# My App Title") with gr.Row(): with gr.Column(scale=1): input_text = gr.Textbox(label="Input", lines=5) submit_btn = gr.Button("Submit", variant="primary") with gr.Column(scale=2): output_table = gr.Dataframe(label="Results") submit_btn.click(fn=process, inputs=input_text, outputs=output_table) demo.launch() ``` #### 3. Key Components You'll Use | Component | What It Does | Your Use Case | |-----------|-------------|---------------| | `gr.Textbox` | Text input/output | Paste PO text from stores | | `gr.Dataframe` | Editable table | Show parsed orders, stock levels | | `gr.Markdown` | Rich text display | Delivery documents, reports | | `gr.Button` | Clickable button | Submit, Export, Generate | | `gr.File` | File download | Export CSV | | `gr.Dropdown` | Select from options | Choose store | | `gr.Tab` | Tabbed interface | Organize PO intake, stock, print calc, delivery | | `gr.Number` | Numeric input | Edit quantities | | `gr.State` | Persist data between interactions | All session data | #### 4. Theming & CSS (For Polish) ```python # Built-in themes available: Soft, Glass, Monochrome, Default # Custom CSS also supported for branding demo.launch(theme=gr.themes.Soft(), css="custom styles here") ``` #### 5. State Management ```python # gr.State persists data across interactions within a session store_data = gr.State(value={}) def update_store(new_data, current_data): current_data.update(new_data) return current_data button.click(fn=update_store, inputs=[input, store_data], outputs=[store_data]) ``` ### Gradio + Hugging Face Spaces (Deployment) Your final app must be hosted on Hugging Face Spaces: 1. Create a Space under the `build-small-hackathon` org 2. Choose "Gradio" as the SDK 3. Push your `app.py` + `requirements.txt` via git 4. The Space auto-builds and deploys 5. You get a public URL that judges can visit **Free tier:** Yes, free CPU instances. Good enough for a hackathon demo. **How to push:** ```bash # Clone the space git clone https://huggingface.co/spaces/build-small-hackathon/your-app-name # Copy your files in # Push git add . && git commit -m "Initial app" && git push ``` For the model on HF Spaces, use the **Hugging Face Inference API** (free tier) -- the model runs on HF servers, not on the Space's CPU. --- ## Your Winning Strategy ### The REAL Problem (This Is Gold for Hackathon Judges) You run a sticker shop in Jogja, Indonesia. You design and sell ~150 varieties of stickers through **25 offline partner stores** across Java island (Solo, Klaten, Semarang, Jakarta, Bandung, Bali, etc.). Each store gets your stickers on consignment (they pay you a % of sales). **The monthly workflow (currently manual, ~3+ hours):** 1. **Receive reports from 25 stores** -- Each store sends a monthly sales report AND a Pre-Order (PO) for restocking. Every store uses a DIFFERENT format: Excel, PDF, handwritten, Indonesian, English, mixed. 2. **Parse and normalize** -- You manually read each report/PO and type the data into your own spreadsheet. 25 stores x different formats = tedious. 3. **Aggregate demand** -- Combine all 25 POs to see total demand per sticker variety. 4. **Check home stock** -- Compare aggregated demand against what you have in stock at home. 5. **Calculate printing** -- For stickers you need to produce, calculate how many A3 sheets to order from your printer (each A3 = 8 x A5 stickers, so divide quantity by 8, round up). 6. **Place print order** -- Send order to external printing service. 7. **Generate delivery documents** -- After printing, create a packing list for each store: "Store X, here are the stickers I'm sending you." This helps them match incoming shipments. 8. **Recommend best sellers** -- Some stores ask "What should I order?" You check sales data across all stores and recommend top sellers. ### Why This Is a PERFECT Hackathon Entry | Judge Criteria | Your Score | Why | |----------------|-----------|-----| | Problem is specific and real | 10/10 | You literally do this every month. 25 real stores. Real documents. | | Person actually used it | 10/10 | YOU are the person. You can demo with real data. | | Honest small-model fit | 10/10 | Parsing messy POs into structured data is EXACTLY what small models excel at. No need for GPT-4. | | Gradio polish | High | Multi-tab workflow, clean tables, export buttons, bilingual | ### The Pitch (Practice This) > "I run a sticker shop in Jogja, Indonesia. I sell 150 designs through 25 partner stores across Java. Every month, each store sends me sales reports and restock orders -- in 25 different formats. Excel, PDF, handwritten notes, Indonesian, English. I spend 3+ hours every month just copying data into spreadsheets. Then I have to calculate what to print, and create delivery documents for each store. > > I built an AI assistant that does all of this. Paste in any store's PO -- any format -- and a 3-billion parameter model extracts the structured data. It aggregates across stores, calculates my print order (A3 sheets, 8 stickers per sheet), and generates delivery documents in both English and Indonesian. > > All running on a tiny model. Because parsing 'butuh 20 stiker kucing hologram' doesn't need GPT-4." ### App Features (What We Build) #### Tab 1: PO Intake (Parse Store Orders) - Select store from dropdown - Paste PO text in any format (messy Excel copy, handwritten transcription, mixed languages) - AI extracts: product name, quantity, notes - Review and edit parsed data - Save to session #### Tab 2: Stock & Demand Dashboard - View home stock levels (editable) - See aggregated demand from all parsed POs - Visual comparison: what you have vs. what stores want - Highlight shortages #### Tab 3: Print Calculator - Shows what needs to be printed (demand - stock = shortage) - Calculates A3 sheets needed (qty / 8, rounded up) - Estimated cost - Export print order #### Tab 4: Delivery Documents - Select a store - Generate packing list of what to send them - Bilingual (English / Indonesian) - Export as text #### Tab 5: Best Seller Report - AI analyzes sales data across stores - Recommends top sellers to stores that ask --- ## Technical Stack & Hosting ### What You Need | Component | Tool | Why | |-----------|------|-----| | Language | **Python 3.11** | Only language needed | | UI Framework | **Gradio 6.x** | Required by hackathon | | LLM (Cloud) | **HF Inference API + Qwen2.5-3B** | Free, runs on HF servers, no local RAM needed | | LLM (Local) | **Ollama + Qwen2.5:3b** (optional) | For offline/privacy demo on a machine with 8GB+ RAM | | Data | **pandas** | CSV export, data manipulation | | Deployment | **Hugging Face Spaces** | Required by hackathon. Free tier. | ### How the App Works ``` Store sends PO (messy text) --> You paste into Gradio UI --> Python sends to HF Inference API --> Qwen2.5-3B parses it --> Structured JSON returned --> Gradio displays editable table --> Python aggregates + calculates print needs --> Export ``` ### Hosting on Hugging Face Spaces **Cost: FREE** for the basic CPU tier. This is enough for your hackathon demo. **What HF Spaces gives you:** - Public URL (e.g., `https://huggingface.co/spaces/build-small-hackathon/your-app`) - Auto-builds from your code - Judges click the link and use your app instantly - The LLM runs via HF Inference API (on HF's powerful servers), not on the Space's tiny CPU **How to deploy (step by step):** 1. Create a free account on huggingface.co 2. Get a free API token (Settings > Access Tokens) 3. Create a new Space under `build-small-hackathon` org 4. Push your code via git 5. Set your HF token as a Space Secret (so the Inference API works) 6. Done -- your app is live **It is NOT like AWS.** It's much simpler: - No servers to configure - No Docker files needed (Gradio Spaces handle it) - No billing surprises (free tier has limits but won't charge you) - Judges don't need accounts to use your app --- ## Bonus Quests | Badge | Requirement | Recommendation | |-------|------------|----------------| | **Off the Grid** | No cloud APIs, fully local | Can demo this on a machine with 8GB+ RAM using Ollama. Mention it in pitch. | | **Off-Brand** | Custom frontend beyond default Gradio | **DO THIS** -- custom CSS with your sticker shop branding | | **Well-Tuned** | Fine-tuned model on HF | Skip (not enough time) | | **Llama Champion** | Use llama.cpp runtime | Nice-to-have only | | **Sharing is Caring** | Share agent trace on Hub | **DO THIS** -- easy, free | | **Field Notes** | Blog post about the build | Do if time allows | --- ## Pitch & Demo Tips ### Demo Video Structure (60--90 seconds) 1. **Hook (10s):** "I sell stickers through 25 stores across Indonesia. Every month I spend 3 hours processing their orders manually." 2. **Problem (15s):** Show the messy reality -- different Excel formats, handwritten POs, mixed languages. 3. **Solution (40s):** Paste a real PO. Watch AI parse it. Show aggregation. Show print calculator. Show delivery document. 4. **Wow moment (10s):** "3 billion parameters. That's all you need to turn chaos into a clean order." 5. **Close (10s):** "Built with Gradio + Qwen2.5-3B for the Build Small Hackathon." ### What to Highlight - The 25-store scale (real business, not a toy example) - Before vs. after (3 hours -> 10 minutes) - The variety of input formats (your unique challenge) - Bilingual English/Indonesian - The print calculator (a practical non-AI feature that adds real value) - That 3B parameters is MORE than enough for structured extraction ### Common Mistakes to Avoid 1. Don't over-engineer -- a clean, working demo beats a half-finished ambitious project 2. Don't use jargon -- say "Paste your store's order" not "Enter NLP query" 3. Don't forget examples -- pre-fill sample POs so judges can try instantly 4. Don't make it generic -- the Indonesia sticker shop angle is your ADVANTAGE --- ## Timeline & Checklist ### Before May 29 (Prep Phase -- NOW) - [x] Read hackathon guidelines - [x] Define your idea and track - [ ] Register on Hugging Face - [ ] Join Gradio Discord - [x] Install Python, Gradio locally - [x] Build and test prototype locally - [ ] Prepare real PO documents from your stores (anonymize if needed) - [ ] Get HF API token (free) ### May 29 -- June 1 (Weekend 1) - [ ] Create your HF Space under the build-small-hackathon org - [ ] Polish the Gradio UI (custom CSS, sticker shop branding) - [ ] Add all features (PO parsing, aggregation, print calc, delivery docs) - [ ] Test with real PO data from your stores - [ ] Deploy to HF Spaces ### June 2 -- 5 (Midweek) - [ ] Record demo video - [ ] Write social media post - [ ] Attend Live AMA if possible - [ ] Bug fixes and polish ### June 6 -- 8 (Weekend 2) - [ ] Final polish and testing - [ ] Submit: Space link + demo video + social post --- ## Quick Reference Card ``` HACKATHON: Build Small Hackathon TRACK: Chapter One -- Backyard AI IDEA: Sticker Restock Manager -- AI-powered PO parser & print calculator PERSON: You (sticker shop owner in Jogja, 25 partner stores across Java) MODEL: Qwen2.5-3B (3B params, via HF Inference API) UI: Gradio Blocks with custom CSS DEPLOY: Hugging Face Space (free tier) LANGUAGES: English + Indonesian DEADLINE: June 8, 2026 PRIZE POOL: $15,000 ```