Skip to main content

Writing

100 days. 100 projects. One LLM prompt at a time.

Each post here is a project built with AI assistance — browser extensions, bots, tools, dashboards, analyzers. Some took an afternoon. Some fought back. All of them taught me something about what these tools are actually good at, and where they fall short.

The rule: build something real, ship it, write about it honestly.

Vibecoding 014 — A P.G. Wodehouse Quote Bot for Bluesky

·4 mins

Wodehouse Bot on Bluesky

P.G. Wodehouse wrote 97 books. He was also, sentence for sentence, one of the funniest writers in the English language. Most people know Jeeves and Bertie Wooster. Fewer know the Blandings Castle stories, the Mulliner tales, or the sheer density of comic simile he packed into every paragraph.

I wanted a bot that would surface this — not by dumping quotes randomly, but with structure. A different format each day of the week. The similes on Monday (they are the most shareable, and they earn a second slot on Saturday). Dialogue exchanges on Wednesday, posted as a thread. Character spotlights on Thursday. A wildcard on Sunday for whatever didn’t fit anywhere else.

Vibecoding 013 — Two Years of WhatsApp Links, Sorted and Searchable

·6 mins

Link Archive

The Clear Writing Community WhatsApp group has been running for over four years. Amit Varma started it, and it does what it says — a few hundred people sharing things worth reading. Good articles, podcast episodes, essays, the occasional book. I’ve been in it since a little more than two years.

The problem is WhatsApp. Every link is buried in chat. The good ones get scrolled past, the useful ones are impossible to find again, and there’s no way to answer the most obvious question: what does this group actually share?

Vibecoding 012 — Reading The Wealth of Nations with a Paragraph-Level AI Tutor

·3 mins

Wealth of Nations Reader

Building a Personal AI Reader for The Wealth of Nations #

Project #12 of the 100 Vibe Coding Projects challenge


I’ve been meaning to read Adam Smith’s The Wealth of Nations for years. It sits in the cultural background of every economics conversation — the invisible hand, the division of labour, the theory of wages — but the full 900-page text is dense and I kept bouncing off it.

Vibecoding 011 — What 128 Episodes of Amit Varma's Podcast Recommend

·6 mins

Everything is Everything Podcast

I’ve been listening to Everything is Everything — Amit Varma and Ajay Shah’s podcast — for a while now. Every episode is dense. Books, papers, essays, songs — recommendations come fast, buried in show notes that you’d have to open episode by episode to find. I kept thinking: somebody should just compile all of this.

So I did.

This post explains how I built three reference spreadsheets — one each for books, music, and articles — covering all 128 episodes of the podcast. Everything is on GitHub if you want to poke around or build on it.

Vibecoding 010 — The APK Analyzer That Runs on Your Machine and Tells No One

·6 mins

image

Building an Offline APK Security Analyzer in Flask #

Project #10 of the 100 Vibe Coding Projects challenge


I’ve been doing APK security analysis manually for years — pulling the file, running jadx, grepping through decompiled source, eyeballing the manifest. It works, but it’s slow and the output lives in a terminal window that disappears the moment you close it.

Vibecoding 009 — KaggaBot: Automating Daily Verse Posts With GitHub Actions

·3 mins

image

What’s Mankuthimmana Kagga #

Mankuthimmana Kagga — often called the Kannada Gita — is a collection of 945 philosophical verses by D.V. Gundappa (DVG). Written in the 1940s, it wrestles with life’s biggest questions with a rare combination of humility and depth. It deserves a wider audience.

KaggaBot #

It’s a small automation that does one simple thing: post two verses from the Kagga every day to Mastodon (an ad-free social media platform), automatically, without anyone pressing a button.

Vibecoding 008 — I Asked AI to Help Me Build a Home Radio Server

·4 mins

image

I Asked an AI to Help Me Build a Home Radio Server. Here’s What Actually Happened. #

I have a few hundred MP3s sitting in a folder on my laptop — old Kannada film songs, some Tamil classics, a few English albums I ripped years ago. I wanted to stream them to my phone, maybe share the stream with family. Simple enough idea.

Vibecoding 007 — Putting 945 Verses of Kannada Philosophy on the Internet

·3 mins

image

Building a Bot to post Mankutimmana Kagga verses to Mastodon #

D.V. Gundappa’s Mankutimmana Kagga — 945 verses of timeless Kannada philosophy — deserves a wider audience. So I built a Mastodon bot to post one verse at a time, twice a day, complete with transliteration and English explanation. Here’s how it came together.

The Prompt #

The project started with a simple ask to Claude: “Create a Mastodon bot to post Kannada Mankutimmana Kagga verses with a short explanation, configurable on how often to post.” From that single sentence, Claude scaffolded a complete Python project — kagga_bot.py, config.py, kagga_verses.py, and a scraper to pull all 945 verses from a public repository.

Vibecoding 006 — One Page, Five Sources, Zero Noise

·4 mins

image


I wanted a single place to read cybersecurity news from the sources I already trust — SANS ISC, Bruce Schneier’s blog, Brian Krebs, Bleeping Computer, and Zack Whittaker’s This Week in Security. I wanted something purpose-built for security, with AI-generated summaries short enough to scan quickly.

The result is SlashSec: a single HTML file, no build step, no server, no dependencies beyond a free Groq API key.

Vibecoding 005 — Making a 30-Year-Old Codebase Approachable With AI

·3 mins

image

Curl Source Explorer: Learn a 30-Year-Old Codebase Without Getting Lost #

Curl has been running on virtually every computer on the planet since 1998. It’s one of the most-used pieces of software ever written — and almost nobody who uses it daily has ever read a line of its source code.

That’s partly because diving into a mature C codebase is intimidating. There are no onboarding docs for the internals, no guided tour, no one to ask why a particular function was written the way it was. You’re either grepping through 170,000 lines alone, or you’re not reading it at all.