Weekend Projects^Cursor

Building and maintaining software used to be expensive, which meant custom solutions were mainly accessible to large enterprises. That has changed. Now, pretty much anyone can learn to create production-grade software using everyday language.

It's becoming completely normal for small businesses, families, and individuals to deploy bespoke software that's precisely tailored—even adaptive—to their needs.

Through Weekend Projects, I hope to gain a deeper understanding of this exciting era of the software long tail. About a year ago, empowered by Claude, Cursor, and other AI tools, I started building various pieces of 'software for one' to squash small yet pesky problems that were bugging me and my family.

Before these powerful AI helpers came along, owing to my disjointed coding skills, I would've had to hire a developer or toil for months to build each piece of software, which would have been a silly use of resources.

I'm curious: Have the economic forces now enabled, maybe even favored, hyperpersonal software creation? Can someone with my patchy technical background build software that's actually worth using?

Btw, one of the things I made was an AI voice agent called Sunny, designed to help spark project ideas. If you'd love to streamline some aspects of your life, or just see what talking to a robot is like, how about giving Sunny a call?

personal ↑ sanity
Blander | News Headline Neutralizer
7f2bc773-22db-4233-b6f8-622a31dba833

Blander is the opposite of this old Geico commercial from 2006.

News headlines exploit our natural wiring and hijack our attention through negative, alarming, and partisan framing. It's rare that I don't feel drained and agitated after reading the news.

To reclaim my sanity, I built Blander, a Chrome extension that automatically rewrites news headlines in a bland tone while preserving the original site's styling and layout. It allows me to enjoy a natural reading experience—same information and vibe but without the anxiety.

I put this simple tool together in about two hours, and it's made browsing the news so much more pleasant!

Blander | News Headline Neutralizer
Chrome Extension APIMutationObserver APIAnthropic API
personal ↑ insight
Sunny | Voice Agent to Inspire Personal Projects
fb7989d3-6d9b-46ed-a6db-0f3f37597441

Most people have something they wish they could do more of and something they wish they could do less of. Once they identify what those things are, they can begin to think about how to actually shift their time allocation.

Sunny is an AI voice agent designed to help people see recalibration possibilities in their existing patterns, which may then spark project ideas. Talking to Sunny is simple and takes just five minutes.

If you've never spoken with an AI voice agent before, today could be the day.

Sunny | Voice Agent to Inspire Personal Projects
VAPI
household ↑ money
Miss Penny | Daily 8 AM Text to Track Expenses Against Budget
687545cd-387d-4631-bc6d-f77fe3cf23e9

Every month, despite promises to spend more mindfully, our family kept blowing the budget on restaurants and impulse Amazon purchases. One reason was because we lacked real-time insight into our spending habits.

Miss Penny fixes this by sending a daily 8 AM text showing exactly how we're tracking against our dining out and shopping budgets.

So far, the daily text messages have helped us reduce expenses by $262 a month on average, even after tarrifs! (I update this figure monthly.)

$3,142 . 65
One could use this money to
commission two life-size ice sculptures.
$0 . 00
since launch on February 1, 2025

Data delay

Miss Penny only accounts for posted transactions, not pending ones, so the data in the daily text messages lags by two or three days. This limitation comes from Tiller Money, the tool Miss Penny relies on. One way around it would be to reconfigure Miss Penny to use a different service, like Plaid.

Miss Penny | Daily 8 AM Text to Track Expenses Against Budget
GitHub ActionsGoogle Apps ScriptGoogle SheetsOpenAI APIPythonSheet SMSTiller Money
personal ↑ fun
Weekend Projects | This Website
430d7273-7014-4450-a786-51fcda8d9230

I needed a personal website to synthesize my excitement around AI-assisted software development. Webflow used to be my go-to tool for building websites. However, I was not patient enough to dig deep into its knowledge base to pull off the elaborate tricks needed to customize the things I wanted to customize. Plus, Webflow would've cost me $300/year for the features I needed.

I ended up building this website from scratch with Cursor. I got to implement real-time calculators, custom sliders, a database, and even AI voice agent integration. I also became familiar with Svelte, a framework previously completely foreign to me. And my hosting cost is zero!

Weekend Projects | This Website
EmailJSFormSubmitGitHub PagesSupabaseSvelteKitVite
household ↑ sanity
Expeditr | Consolidate Recipe URLs Into One Ingredient List
938fc7ac-cb7a-49e7-aa10-45c95f091552

Meal planning used to be mind-numbingly tedious for our family. We would juggle multiple browser tabs for recipes while searching for ingredients on FreshDirect, often having to add common items, like lemons, multiple times.

I built Expeditr to simplify our workflow. It automatically converts up to 10 recipe URLs into one ingredient list, organized by category.

It uses an LLM to smartly consolidate ingredients listed under different names (like "scallions" and "spring onions") and combine different measurement units into single, sensible quantities. It categorizes pantry items separately, helping us identify ingredients we likely already have at home.

Because meal planning is now significantly more pleasant, it's easier for us to stay on schedule and keep our refrigerator well-stocked.

We've cut our takeout spending substantially, enjoy healthier eating habits, and appreciate better-tasting meals throughout the week. The simple removal of one painful part has improved both our diet and our budget.

We used to procrastinate on meal planning because we dreaded the unpleasant process. We would then run out of ingredients and be forced to order takeout.

Our takeout portions usually didn't leave enough leftovers for next day's lunch. This forced us into another round of takeout orders. The takeout domino effect made us spend more money and eat less healthy than we should.

Automated shopping next

Our ideal workflow is one where we input recipe URLs and get a loaded FreshDirect shopping cart as the output. But since FreshDirect doesn't have an open API, automated shopping is still difficult to build. I considered using web browsing automation, like Puppeteer, plus an LLM to pick items and load the cart—but it’ll probably be too clunky and unreliable. Instacart, a FreshDirect competitor, does have an open API, so I may look into working with it.

Expeditr | Consolidate Recipe URLs Into One Ingredient List
Anthropic APINode.jsPython + FlaskReact + ViteRender
work/business ↑ time
Parse Emails and Turn Them Into a Database
617d6521-64fd-4d99-ad5e-5b3ea85a50d6

A tennis club's after-school program needed digital streamlining: applications arrived via email, were printed and filed, and the director had to manage from hard copies or manually enter data into spreadsheets.

I used Google Apps Script to automate the transfer of application data into Google Sheets, organizing students by semester, tracking dismissal times and transportation, managing staff assignments, and storing contact details.

This saved the program director about an hour per week.

52 hours or 6.5 workdays
One could use this time to
become a proficient ukulele player.
0 : 00 : 00
hrs mins secs
since launch on August 14, 2024
Parse Emails and Turn Them Into a Database
Google Apps ScriptGoogle Sheets API
work/business ↑ insight
Custom Google Calendar Integration
1199dab7-2bdf-4874-80aa-0cdf721b78a3

At a local tennis club, instructors had to resort to an inconvenient method of checking their lesson schedules: they had to call the front desk several times a day. This was because the club's scheduling web app was poorly designed for mobile viewing. The frequent calls were not only tedious for the instructors but also frustrating for the front desk staff who needed to focus on serving club members.

To solve this problem, I created a web scraper that extracts lesson schedules and court assignments from the club's web app, filters them by instructor, and posts them directly to Google Calendar. This integration transforms club-level lesson schedules into a personalized, mobile-friendly calendar view.

Instructors now have immediate access to their schedules anytime, anywhere. The solution not only improved instructor organization but also allowed front desk staff to refocus on member service, resolving a point of tension.

With his schedule now automatically synced to his phone, this instructor gained complete weekly visibility at a glance.

Beyond saving time, the solution sparked an unexpected transformation in his organizational habits. He began using the calendar app comprehensively for personal appointments, family events, and even tracking his wife's schedule.

What started as a simple work tool became a catalyst for improved time management across his life.

One instructor tracked his lessons primarily through memory and frequent phone calls to the front desk. With visibility limited to only the next day or two, he operated in a perpetual short-term planning cycle. This made it difficult to coordinate personal activities with his work schedule or plan effectively with others.

He had previously attempted to centralize his calendar by writing personal appointments directly onto the physical court sheet at the club, creating a makeshift master calendar. This solution was suboptimal, as he could only access the calendar when physically present at the club, leaving him disconnected from his schedule whenever he was away.

Custom Google Calendar Integration
Google Calendar APINode.js
work/business ↑ time
Web Scraper + Email Notification
fdf925bc-0892-478d-94f5-651626922b26

My tennis video company's workflow requires constant monitoring of tennis club court schedules to determine when to send videos, which courts they're from, and who should receive them. This process used to require manual checks several times daily.

I built a web scraper to automate this entirely, sending updates to Google Sheets and triggering email notifications as needed.

This solution saves me 15 minutes a day. It eliminates a small but significant cognitive load from my day, allowing me uninterrupted focus on other work and personal time.

91 hours or 11.4 workdays
One could use this time to
take 22 hiking trips.
0 : 00 : 00
hrs mins secs
since launch on May 10, 2024
Web Scraper + Email Notification
Google Sheets APINode.js