This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady.
What I Built
Loafline answers a question most productivity apps pretend doesn't exist: "Can I safely loaf on this commitment?"
You paste text or record a short voice memo. Open-source AI returns:
- a defer verdict (
loaf/this_week/today) from TabPFN on tabular features, - the smallest closing action so you are not ghosting anyone,
- a safe-until date,
- and a markdown permission slip you can copy into Slack or email.
The Sloth ledger (/history) stores every check on MongoDB Atlas, surfaces similar past promises from Tiger Data (pgvector), and can generate a Gemma morning digest. Batch mode triages up to five standup brain-dump lines in one pass.
Lazy payoff (measured on production): our Render smoke test estimated ~14 minutes of rumination avoided per check versus manually re-listening, drafting, and worrying.
Demo
- Live app: https://loafline.onrender.com
- Health: https://loafline.onrender.com/api/health
- Suggested 60s flow: voice memo β verdict β Copy permission slip β Ledger stats β batch mode
Code
Loafline
Loafline is a Hacktoberfest Week 3 (Slow and Steady) project: open-weight AI that rewards laziness by telling you which commitments you can safely defer, with the smallest closing action and a βsafe untilβ date.
What it does
- You paste text or record a short voice memo.
- Gemma (open-weight via OpenRouter) extracts who/what/when.
- TabPFN classifies defer risk from tabular features (with a bundled training set).
- Tinker polishes the sloth-friendly verdict copy.
- Backboard recalls patterns; SerpApi optionally grounds deadlines.
- Tiger Data (pgvector) surfaces similar past promises.
- MongoDB Atlas stores the ledger; ElevenLabs transcribes voice and reads the verdict aloud.
- Sentry traces the pipeline; Mastra orchestrates the workflow.
- Deploy on Render (
render.yaml).
Local dev
cp .env.example .env.local
# fill keys
npm install
npm run dev
Set DEMO_MODE=true to try the UI without APIs.
Render deploy
Repo: github.com/smriad/loafline
Option A β Blueprint (recommended)
- Go to dashboard.render.com β New ββ¦
How I Built It
Loafline is a Next.js 15 app on Render (render.yaml). A Mastra workflow wraps a single pipeline step that orchestrates partner APIs server-side.
flowchart LR
A[Voice or text] --> B[ElevenLabs STT]
B --> C[Gemma extract]
C --> D[TabPFN defer class]
D --> E[Tinker verdict copy]
E --> F[Backboard memory]
F --> G[SerpApi ground]
G --> H[Tiger echo search]
H --> I[(MongoDB ledger)]
I --> J[Permission slip + lazy payoff]
| Partner | What it does in Loafline |
|---|---|
| Render | Hosts the web app and API |
| Gemma (open-weight via OpenRouter) | Extracts who / what / deadline from messy input |
| TabPFN | Classifies defer risk from feature rows (word_count, deadline words, β¦) |
| Tinker | Polishes sloth-friendly verdict prose |
| Mastra | Workflow orchestration for /api/loaf
|
| MongoDB Atlas | Persistent commitment ledger |
| Tiger Data | pgvector echoes β "you promised this before" |
| ElevenLabs | Speech-to-text + verdict text-to-speech |
| Backboard | Cross-session memory on recurring defer patterns |
| SerpApi | Optional deadline / context grounding |
| Sentry | Traces the agent pipeline (loafline.run span) |
Production partner wall currently reports 11/11 integrations live after env vars are set on Render.
Why Does Open Innovation Matter?
A closed "productivity" API would own your guilt graph: every promise, every voice memo, every pattern of avoidance. Loafline keeps the open pieces at the center:
- Gemma (open-weight) does the language understanding β you can swap models or routers.
- TabPFN scores defer risk from auditable tabular features shown in the UI, not a black-box "urgency score."
- Voice and ledger data flow through your MongoDB / Tiger services, not a vendor training set.
That matters for Slow and Steady: the win is not hustle β it is doing less mental work without handing your commitments to a single closed model vendor.
The Lazy Payoff
| Scenario | Manual (est.) | Loafline |
|---|---|---|
| Re-listen to a voice memo + draft a reply | ~8β15 min | ~2.5 min (voice path) |
| Monday standup β 5 loose promises | ~40+ min of triage | Batch mode (5 lines, one flow) |
The app surfaces lazyPayoffMinutes on every verdict and aggregates minutesSavedTotal on the Ledger page β numbers you can screenshot for judges.
Prize Categories
I'm entering:
- Best Use of Render
- Best Use of Gemma
- Best Use of TabPFN
- Best Use of Tinker
- Best Use of MongoDB Atlas
- Best Use of Tiger Data
- Best Use of ElevenLabs
- Best Use of Backboard
- Best Use of SerpApi
- Best Use of Sentry Agent Tracing
- Best Use of Mastra
Built for Hacktoberfest 2026 β AI belongs to everyone. Questions welcome in the comments.
Top comments (0)