Inspiration

Hacking solo means nobody's watching your six. No teammate double-checking the checklist, tracking the clock, or noticing when "I'll do the README later" turns into 20 minutes before submissions close. Plus One is that missing teammate — not a mascot, not a chatbot, just something quietly (then not-so-quietly) making sure you don't submit an unfinished project.

What it does

Plus One tracks your hackathon submission requirements — repo public, README written, demo video live, Devpost created, correct prize track selected — and watches the clock against how much is actually done. When you're on pace, it stays out of your way. When the gap between time-remaining and work-remaining crosses a danger threshold, it interrupts: the UI shifts from calm kraft/cream tones to escalating coral-pink, and it speaks the interrupt aloud so you don't have to be staring at the screen to hear it. Ask it "how am I doing?" anytime for an on-demand status readout.

How I built it

  • React + Vite for the interface — a narrow, full-height panel designed to tile beside a code editor, not float over it
  • GitHub REST API to automatically verify the repo is public and the README isn't a placeholder
  • Groq (Llama 3.3) generates the escalation copy itself — tone and urgency reasoned from time remaining, checklist completeness, and interrupt history, not hardcoded if/else strings
  • ElevenLabs turns that generated copy into spoken interrupts
  • State persists client-side; the whole thing runs and deploys from Figma Make/Figma Sites

Challenges we ran into

Getting AI-generated urgency to actually sound reasoned instead of repetitive took real iteration — feeding interrupt history into the prompt so the 5th nudge reads differently from the 1st. We also burned through more than one AI provider's free-tier quota mid-build (started on Gemini, hit quota walls, moved to GitHub Models, moved again to Groq) — which pushed us toward writing the integration layer provider-agnostically from the start, so swapping providers became a config change instead of a rewrite.

Accomplishments we're proud of

A genuinely working escalation loop — real-time urgency detection, AI-generated tone, and spoken interrupts — running end-to-end, with a graceful fallback to static copy if the AI call fails, so the demo never breaks even if a provider hiccups live.

What we learned

That "AI-generated" only feels meaningfully different from hardcoded strings when the model actually has context to reason with — time, completeness, and history — not just a vague instruction to "sound urgent."

What's next for Plus One

The original concept included two more modes — Scout (sponsor-doc briefing) and Debate (persona pushback) — scoped out for this build to ship one thing well rather than three things half-built.

Built With

Share this project:

Updates

Submission history