This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
For this challenge, I decided to tackle a problem that has paralyzed a close friend of mine for years: Productive Procrastination.
My friend has an incredibly elaborate Obsidian vault. They have nested folders for 2026 goals, 5-year plans, and daily habits. They spend hours organizing these notes, researching the "best backend frameworks," and restructuring their markdown files. But when it comes time to actually sit down and write code? They freeze. They use planning as an emotional shield against execution.
To solve this, I built NoPlanB: an open-source, air-gapped AI execution engine designed to force you out of the planning phase and into the trenches.
Demo
Before you can start a task, you must face the Crucible. Traditional tools often fail because they don't address the underlying emotion preventing you from starting. NoPlanB replaces the passive to-do list with a Socratic WOOP Interrogator:
- The Emotion: What exact emotion is making you avoid this? (e.g., Fear of failure).
- The Planning Trap: How are you productively procrastinating right now?
- Atomic Action: What is the absolute smallest physical step?
- Internal Obstacle: What feeling will make you quit?
- Survival Plan: If that happens, what is your plan?
Once the Crucible is complete, the entire planning interface disappears. You are locked into the "Active Task" widget. I took inspiration from YPT (Yeolpumta) and added a massive, neon-green digital countdown timer. The Socratic planning is replaced by a blunt directive: π STOP PLANNING. JUST EXECUTE.
Code
The goal wasn't to build another to-do list. The goal was to build a psychological mirror that makes it impossible to hide behind "planning."
π GitHub Repo: NoPlanB
How I Built It
Because my friend uses an older i3/i5 laptop, I had to ensure the app was blazing fast and didn't crash when running local LLM inference.
- Backend: Pure Python / FastAPI. Lightning-fast and lightweight.
- Frontend: Vanilla JS, CSS, and HTML. No heavy React payloads.
-
Data Layer: Zero databases. It reads/writes directly to local
.mdfiles using Python'spathlib.rglob. -
Markdown: I wired in
marked.jsand wrote a custom regex parser to support Obsidian-style[[bidirectional linking]]so my friend feels right at home.
Why Does Open Innovation Matter?
I didn't want my friend's deepest anxieties, cognitive distortions, and personal journal entries going to a third-party server. Open-source AI made this project possible by allowing it to run entirely air-gapped.
If my friend is too overwhelmed to figure out their emotional blockers, they click the β¨ Ask AI button. NoPlanB uses a local Google Gemma model (via Ollama) to read their current journal entry, call out their cognitive distortions, and generate a harsh but fair CBT (Cognitive Behavioral Therapy) survival planβall without a single byte of personal data ever leaving their machine.
Prize Categories
- Best Use of Gemma



Top comments (0)