October used to come with a number attached. Four pull requests, six in some years, and a t-shirt at the end of it. This year Hacktoberfest took the number away.
The organisers were direct about why. Pull requests no longer count toward rewards, because a machine can produce a hundred low-effort ones before lunch, and the maintainers are the ones who have to read them. The month was rebuilt around learning, around events, and around a theme I have not stopped thinking about: AI belongs to everyone.
I expected to feel robbed. A month without a target sounded like a month without a reason to show up.
I ended up shipping more than I have in any October before.
Open source is where I learned to work
My GitHub bio has said the same thing for years: late nights, early mornings, all for the love of coding. That is not a line I wrote for a profile. It is how the last few years actually went.
I came up through ALX, writing C by hand before I trusted myself with anything bigger. Pointers, malloc, a shell of my own. Then Python, then shell scripts, then servers that had to stay up while I slept. Almost everything I know came from reading somebody else's repository at midnight and trying to make it run on my own machine.
That is the part people skip when they describe open source. It is not only about writing code for strangers. It is about being allowed to read how other people think.
Four projects, four weeks, everything local
Once the pull request target disappeared, the only useful question left was the one I usually avoid: what do I actually want to build?
The theme answered it. If AI belongs to everyone, it should run on the laptop of someone who cannot afford an API bill. So every project I built this month runs on the machine in front of me, with open-weight models and no account.
Touch Grass Birder. Week one, theme Touch Grass. I hold my phone up for a few seconds and it tells me which bird is singing. BirdNET does the listening through ONNX Runtime, and Gemma 3 1B writes the field note. Audio never leaves the device and there is no key to configure.
GitHub and the write-up
Quiet Ledger. Week two, theme Side Hustle. A receipt sorter for freelancers who bill by the hour and would rather not hand their client data to another SaaS company. Drop in a PDF or a photo, Gemma 3 1B reads it locally, drafts the entry, you confirm it, and it lands in the CSV your accountant asked for.
GitHub and the write-up
Dozer. A folder tidier that works while I sleep. It reads the Downloads folder one file at a time, files invoices and installers and photos where they belong, renames the files called scan_0043_final.pdf, and leaves anything it is unsure about exactly where it found it.
GitHub and the write-up
Requiem. Week four, theme Ghost in the Machine. A crash post-mortem that speaks as the program that died. It captures the exit code and the traceback, redacts tokens and paths, then asks a local model to write a first-person eulogy and a short diagnosis. When the model is offline it falls back to a deterministic obituary, which is somehow funnier.
GitHub and the write-up
Four projects, no cloud bill, no key to leak. A model running on your own laptop is the most literal version of "AI belongs to everyone" that I could build in a month.
The badges
I will not pretend the badges do not matter to me.
My wall is at holopin.io/@jmngandu. Each badge is a small piece of plastic for a profile page, and each one also marks a specific night I can point at. The night ONNX Runtime finally loaded the classifier. The night the receipt parser stopped mistaking totals for dates. The night the eulogy generator made me laugh out loud at one in the morning.
Three stickers earned a real sticker pack this year, and ten and fifteen opened more. I was not collecting for the pack. I was collecting because a badge is a receipt. It says: I was here, I built the thing, I finished it.
The project I did not plan
The best thing I made this month was not on the challenge list.
People keep asking the same question in the same nervous tone. How do I make my first open source contribution? The honest answer is usually a wall of jargon about forks, upstreams, rebases and maintainers who are too busy to reply.
So I built a place where none of that can hurt you. FREE&OPEN is a small React site where your entire first pull request is adding your own name to a JSON file. Fork it, branch it, add your card, open the pull request. Your name appears on the contributors page once it merges.
The repo is github.com/mukuvi/FREE-OPEN.
It has 17 contributors now, 20 forks, about 300 commits and an MIT licence. Seventeen people who each did the whole loop once: fork, clone, branch, commit, push, pull request, merged. That loop is the door to everything else, and it should not require a stranger to explain it to you first.
What this month actually taught me
Smaller is better. Every project above started as one file and one idea, and the ones that survived are the ones I resisted expanding.
Write the README first. If I cannot explain the tool in three sentences, I do not understand it yet.
Build for the person you were two years ago. That person is still out there, and they are the best user you will ever have.
A badge is a receipt, not a scoreboard. The number of them says less than what each one made you learn.
And the part I keep coming back to is the people. Seventeen names on a page I built. Four projects with write-ups that strangers read. A month of late nights that produced something instead of just consuming.
If you are starting
The rules changed this year, but the door is the same. Find a project small enough to understand. Read the CONTRIBUTING file before you touch anything. Open the pull request even though your hands are shaking.
Or skip the search and start here: add your name to FREE&OPEN. Ten minutes, one file, and forks will stop being scary.
Everything else is on my GitHub: github.com/mukuvi.
Happy Hacktoberfest. A few days late, but the badges just arrived.
