This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
LifeBuddy — a local-first AI daily companion built for my busy student friend who always says "I don't know where to start" when the week fills up with essays, problem sets, emails, errands, and a group project. The problem isn't a lack of tasks — it's that the list feels bigger than the day, and every planner app they've tried feels cold or overwhelming.
LifeBuddy solves it in one friendly flow:
- Brain-dump mode: type everything on your plate in plain language, and it becomes structured tasks with deadlines, durations, and priorities.
- AI daily planner: tell it how many hours you have and your energy level, and it builds a realistic schedule — with explanations for why tasks are ordered that way, built-in breaks, and warnings when the work exceeds the available time.
- Break it down: an overwhelming task becomes a checklist of small, specific steps you can actually tick off.
- Replanning: "I only have 1 hour now", "I'm exhausted", "a new task came up" — it adjusts without deleting completed work.
- End-of-day reflection: a kind, honest summary of what got done. No guilt, no hype.
Demo
- Live demo (Vercel): https://lifebuddy-chi.vercel.app
- Live demo (GitHub Pages): https://yashspidey.github.io/lifebuddy/
- Run locally with live AI: npm install npm run dev ollama pull gemma3:4b
- The hosted demos run in clearly-labeled Demo mode; live AI works on localhost, where prompts go only to your own Ollama server — never to a third-party cloud. Code https://github.com/yashspidey/lifebuddy src/ lib/ai/ # Ollama live client + clearly-labeled demo fallback + validation lib/planner.ts # deterministic scheduling, ordering, overflow detection lib/validate.ts# parse, validate, coerce every model response components/ # Dashboard, Tasks, Planner, Breakdown, Progress, Settings
Code
https://github.com/yashspidey/lifebuddy
How I Built It
The core is an open-weight Gemma model (gemma3:4b) served locally via Ollama, called through its HTTP API (/api/generate with format: json). It powers task-dump parsing, daily planning, task breakdown, replanning, and the day summary. The model name and base URL are configurable via environment variables.
I deliberately didn't let the model do the bookkeeping: deadline ordering, start times, hour totals, and overflow detection are deterministic TypeScript. The model proposes a plan; the app validates every field, recomputes the schedule, and shows a friendly error (never silent bad state) on malformed JSON. If Ollama isn't running, the app falls back to an explicitly-labeled Demo mode — Live AI is never faked.
Frontend: React 19, TypeScript (strict), Vite, Tailwind CSS 4, Lucide icons. Persistence is local-first via localStorage — no accounts, no cloud DB. Tests: Vitest + React Testing Library (23 tests passing). Deployed on Vercel and GitHub Pages via CI-ready configs (vercel.json, gh-pages).
Why Does Open Innovation Matter?
A planning companion is deeply personal. A closed API would mean my friend's assignments, deadlines, and stress flowing through someone else's servers forever. With open-weight Gemma running locally, their task dump stays on their laptop — the only "network call" is a private handshake with their own Ollama server. Open innovation made the privacy story true, not a line in a ToS.
It also means zero cost, no rate limits, and any open-weight model (Gemma, Llama, Phi) by changing one env variable. A closed API gives you a monthly bill and a deprecated model. Open innovation gives you a tool that stays yours.
My Agent Session
Built collaboratively with an AI coding agent (OpenCode). The session covered scaffolding, the AI abstraction layer, Ollama integration, validation logic, the full UI, tests, screenshots, and both deployment targets. Saved session: PASTE-YOUR-SESSION-LINK
Prize Categories
- Best Use of Gemma — core planning/parsing/breakdown features run on a local Gemma model via Ollama.
- Best Use of Render — placeholder, only if you actually deploy on Render (we used Vercel + GitHub Pages instead, so remove this).
My Agent Session
Built with an AI agent (OpenCode). Full transcript — prompts, reasoning, tool calls, and code changes — saved on DEV:
Direct link: https://dev.to/agent_sessions/lifebuddy-devrelay-session-export-render-deploy-for-hackathon-submission-ocx2vp
Prize Categories
- Best Use of Gemma — the core AI features (task parsing, daily planning, task breakdown, replanning, end-of-day summaries) run on a local Gemma model via Ollama.
-
Best Use of Render — deployed as a static site via the repo's
render.yamlblueprint (Demo mode on Render; live AI needs a local Ollama server). Live: https://lifebuddy.onrender.com/
participated solo. no team.
Top comments (0)