网页
综合
更新时间 2026-10-25 11:27:23
Google's free Gemma failed 35% of my calls. My sloth-paced reminder app didn't lose one. - DEV Community
自动蜘蛛
dev.to
正文约 5128 字
Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady Submission 🦥
This is a submission for the Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady
Return windows, warranty end dates, "come back in six months", the morning tickets go on sale, the bill that's due on the 5th. None of these are hard. They're just things I'm supposed to remember, and I don't.
So I built Later: you throw something at it, it works out the last sensible day to act, and then it does the most sloth thing possible. It waits. Quietly. For weeks or months. Then it nudges you once.
Later is a phone-friendly web app with one big button, Throw something in. It opens a sheet with three ways in: Snap (a photo of a receipt, letter or poster), Say (a voice note, transcribed by ElevenLabs) and Type.
Everything Later is holding sits on one timeline, grouped by when you'll hear about it: Today, This week, This month, Later on. Anything that needs you (no date found) floats to the top. Tap an item to see the due date and Done / Snooze / Forget.
The lazy part is the whole point: you don't type a calendar entry, you don't work out what "28 days from the 20th" is, and you don't check an app to see what's coming. You throw it in and forget it.
Try it: https://later-h5nw.onrender.com (no sign-up). Tap Throw something in, then Type, paste something like "Penneys receipt 20/10/2026. Refunds within 28 days", and watch it move from Reading to This month. Tap the 🔔 to subscribe to your private push topic in the free ntfy app.
Snap it, say it or type it. Later works out what you'll need to do and the last sensible day to do it, then stays quiet until then and nudges you once.
Live: https://later-h5nw.onrender.com · Built for the Hacktoberfest 2026 Open-Source AI Challenge, Week 3: Slow and Steady.
MIT licensed, with 113 tests. Temporal workflows are tested with Temporal's time-skipping test server, so "wait 30 days" runs in a second.
LLMs are not reliable at date arithmetic (there's data on this), and a reminder app that's a day out is worse than none. So Gemma is told to copy dates exactly as written and report lengths of time separately:
Then resolve() does the rest in plain Python: month ends (31 Aug + 6 months = 28 Feb), Irish dates (day/month), and the clock change. Ireland's clocks went back on Sunday 25 October, the last day of this challenge, and 09:00 nudges stay at 09:00 local.
I first ran Gemma 4 on Google AI Studio's free tier as a normal request: you capture, you wait for the answer. It was right every time it answered, but it failed a lot and was slow. In a 24-call comparison, Gemma 4 31B succeeded 4 times out of 6, with each answer taking ~30 seconds. OpenRouter's free Gemma was rate-limited on all 12 calls.
Nobody should stare at a spinner for a minute, so reading moved into the background:
That's this week's theme taken literally: the sloth takes its time so you don't have to.
The public demo has no sign-up, so each visitor gets an anonymous cookie and only sees their own items. Each visitor gets a private ntfy topic derived with an HMAC. The push buttons carry a signed per-item token, because the ntfy app has no cookie, and a forged token gets a 404. Daily capture limits protect the free model quota.
One Docker container on Render runs the Temporal dev server (state on a 1 GB persistent disk), a self-restarting worker and the web app. MongoDB Atlas holds the items and photos.
I ran 35 captures through the real pipeline (Gemma extraction, then the resolver), with Temporal-style retries:
The hand-written set includes an Irish mix: Penneys and Zalando returns, an ESB bill, motor tax, the NCT, a Revenue Form 11 deadline, a Panda bin top-up, a passport expiry. One gig poster has a decoy date: the gig is in March 2027, but tickets go on sale 13 Nov 2026, and that's the date that matters. The Galway set uses real listings: Paul Brady at Leisureland, The Frank And Walters and Pa Sheehy at Róisín Dubh, and the Eyre Square Christmas Market.
The number I care about is the third row. Google's free Gemma endpoint failed 35% of calls. The worst capture, an ESB bill, failed 4 times and was read on the 5th try, 8½ minutes later. Without the retries, a third of everything you threw at Later would simply be gone. With them, nothing was lost. (The standard advice on retrying LLM calls with backoff applies; Temporal just makes it durable.)
Here's what one capture saves you:
Capturing takes one tap and a photo, a few seconds. After that the effort is zero. Across the 35 test captures, Later worked out every deadline correctly, and the person capturing never had to look at a date.
This project and post were built with the help of AI (Claude Code). I reviewed and tested everything here, and every number comes from runs in the repo's eval/results.
DEV Community — A space to discuss and keep up software development and manage your software career
Built on Forem — the open source software that powers DEV and other inclusive communities.
Made with love and Ruby on Rails. DEV Community © 2016 - 2026.
We're a place where coders share, stay up-to-date and grow their careers.
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。