
Hudson: Relationship Assistant
Your secret weapon for being a thoughtful partner.
Hudson started with a couple beers at the pool with my neighbor. He said, “Taylor, build my idea and we’ll make billions.”
Now, b/c of vibe coding, I couldn’t say no. Plus, it sounded fun to use a bunch of new technologies.
The Problem
It’s easy to forget the little things that matter. Birthdays, anniversaries, or that one-off comment your partner made that you swore you’d remember. Hudson is a second brain for your relationship so you don’t drop the ball.
What It Does
📅 Never Forget Again
Birthdays, anniversaries, random holidays — Hudson gives you a heads-up before you’re in the doghouse.
👗 Size Detective
Clothing, jewelry, ring sizes — saved once, ready forever. No more closet raids or panic texts.
📸 Gift Vault
Snap a photo when they say “I want that.” Six months later? Hero status unlocked.
📊 Date Night Scorecard
Keep track of what worked and what bombed. (Escape room disaster? Never again.)
💕 Love Language Decoder
Figure out what actually matters to them — words, time, acts — so you don’t miss the point.
🥊 Argument Scoreboard
A playful tally of who “won” your silly arguments.
⭐ Favorites
Coffee order, wine, pizza toppings, flowers — all the little things that show you’re paying attention.
📝 Quick Notes
Their boss’s name, their childhood dog, that random allergy — one place to keep it all straight.
How It’s Built
React Native + Expo. Firebase for anon user accounts but optional auth for cross device syncing. Lots of fun other little experiments inside.
Project Timeline
Follow the development journey
One-Shot Icon Comparison Tool
What’s New: Icon Library Comparison In App
The app started with emoji for most of the icons. After staring at it for a long time, I realized I didn’t love it. So, we tore it out and put in Lucide. I felt much better about the UI, but still wasn’t 100% happy.
Part of that switch from emoji -> Lucide was to abstract all spots to one shared Icon.tsx component. B/c we had that, it was easy to make that component work with an Icon Registry that let me map multiple icons across different sets.
That led to this handy interface for checking out how they look in comparison. This was a one-shot Claude Code creation baesd on a very simple prompt.
My own lil Storybook without using Storybook(more on that eventually).
Tech Decisions for Hudson
What Tech?
At Offline, we already use Flutter for our main apps, and our mobile dev Michael Jajou Bachuri is amazing. I could hvae vibe coded in Flutter too—but I wanted to try something different.
I picked React Native since we’re already deep into React at Offline for interanal admin projects. It feels like the go-to for vibe coding right now. The tools just know how to do this stuff with some medium-to light “but don’t make 1k line files.”
At first, I tried using CloudKit for local data sync. That turned into way more effort than it was worth. Switching to Firebase was a total unlock—Claude Code made the conversion in an almost one-shot, and suddenly everything just worked.
All I had to do was clean up the CloudKit remnants and layer in Firebase auth. The flow is simple: run the app as an anonymous user by default, delete your account if you want, or sign in with Google or Apple ID to sync across devices and keep data around longer.