I'm a past participant of Hacktoberfest, completing quite a few challenges. I was bummed at first to find out that PRs were no longer accepted but that feeling faded as I started having fun with AI. This month taught me that you can enjoy building apps with AI and the DEV Hacktoberfest challenges made it exciting!
I had ankle surgery last month so I participated 100% online. It was nice to have a challenge and something to focus on while I recover.
By Halloween I had shipped five open-source apps, collected 21 stickers, and earned Completionist++.
The five apps
| Week | App | What it does | Links |
|---|---|---|---|
| Weekend Challenge | 🥪 Let's Not Be Hangry | Meal nudges for my boyfriend, who forgets to eat | Live · Post |
| Week 1 | 🥾 Off-Grid Trails | A trail finder that still works when the bars are gone | Live · Post |
| Week 2 | 🌊 Ripple | One blog post, every social platform, written by Gemma | Live · Post |
| Week 3 | 🦥 Bookmark Buddy | Gemma tidies your messy bookmarks (my 722 took about 15 minutes) | Live · Post |
| Week 4 | 🕯️ Halls of Horror | Gemma builds a walk-through haunted house | Live · Post |
Plus Global Hack Week: Game Day Glance (my Cursor challenge), a few Grok bot challenges, and 14 GHW points. Full recap here: My Global Hack Week Recap
How the month went
- Oct 1–4: signed up, did the starter stickers, and shipped Let's Not Be Hangry for the Weekend Challenge.
- Oct 5–15: Global Hack Week, plus Off-Grid Trails for Week 1.
- Oct 12–16: Lighter week / mid-month break.
- Oct 13: hit Completionist (15 stickers).
- Oct 16: decided to go for Completionist++.
- Oct 17: Ripple.
- Oct 25: Bookmark Buddy, including a Chrome/Edge extension.
- Oct 31: the closing ceremony, the post-event survey, and Halls of Horror. Completionist++ on Halloween. 🎃
The stack I kept coming back to
- Angular 22: zoneless, signals, standalone components and the new control flow. (I also rebuilt my portfolio from Angular 12 to 22 at the start of the month: the writeup.)
- Gemma, running in the browser with WebLLM and WebGPU: private, offline after the first download, and free.
- Render static sites, with no backend at all.
What I learned building with a small open model
- Gemma writes the words, the app owns everything else. Gemma never touched the UI, the sound, or the data. It only wrote text.
- One small step at a time. A 2B model loses the thread on big asks. One room, one post, one batch of bookmarks at a time works far better.
-
Give it a simple format, then read it forgivingly. Short labeled lines (like
ROOM / SEE / HEAR) that the app can parse even when the model adds bold or numbers. - Let code do what code is good at. In Bookmark Buddy, keyword pre-sorting fixed recipes landing in three different folders before Gemma ever saw them.
- Build the guardrails in. Content rules in every prompt, and warnings, captions and reduced motion in the UI.
What surprised me
I was surprised how well Claude built these apps, and how good Gemma is for an open-source model. I wasn't aware of any open-source models before Hacktoberfest so I did learn a lot! I'm looking forward to using more open-source models in future projects.
What's next: Vibe Check
All five apps were built fast, with AI as my pair programmer. Next I'm going back through each one to find the accessibility gaps only a human catches, and fixing them in public. That's Vibe Check, a new series starting in November.
Accessibility is important and we need to keep the human in the loop. I've learned a lot about physical accessibility while not being able to walk for a month. Digital accessibility is just as important.
Thanks to DEV, Major League Hacking, DigitalOcean, and the Gemma and WebLLM teams for a great October.
Happy Hacking!!! ✨

Top comments (2)
good job!
five apps shipped while recovering is the whole thing. small steps, real output.