Why I rebranded my app before anyone used it
On January 8th, 2026, I pushed a commit simply labeled "rebranding." Six days later: "Complete rebrand in favor of WhispCal." In between, I touched nearly every file in the project.
This might sound insane. The app had no users. No listing on any store. No marketing. Why spend a week renaming something nobody had heard of?
The name that didn't fit
The original name was DuoCal — a play on "dual calories" or something, honestly I don't remember the exact logic. It was a placeholder that stuck around too long. The prefix "Duo" had infected the entire codebase: DuoButton, DuoSelect, DuoCard, DuoModal. Every component carried the name.
The problem wasn't just branding. "DuoCal" sounded like a calculator app. It said nothing about what made this app different — the AI-powered, voice-first approach to logging food. I needed a name that whispered intelligence rather than shouted math.
WhispCal is born
"WhispCal" came from the core interaction: you whisper what you ate, and the app calculates your nutrition. Whisper + Calories. It's not the most obvious name, but it's distinctive, memorable, and available as a domain.
More importantly, it captured the feeling I wanted the app to have. Not clinical. Not gamified. Quiet and helpful, like a knowledgeable friend who happens to know the caloric content of everything.
The rebrand from hell
Renaming a codebase is one of those tasks that sounds simple and is anything but. Here's what the rebrand actually involved:
- New project ID with Expo and EAS
- New app icons and splash screens for both platforms
- Updated sharing URLs and deep link schemes
- New RevenueCat API keys (because the app identity changed)
- New Supabase configuration
- Updating every reference in the codebase, from component names to string literals
- New assets, new logotype, new color refinements
The Android icon alone took three commits to get right — "fix android icon," then "update android icon" the same day. iOS was smoother but still required regenerating every size variant.
Why it was worth it
A week of pure refactoring with zero feature progress feels wasteful. But naming is one of those decisions that gets exponentially harder to change over time. Every user who downloads the app, every review that mentions the name, every link shared on social media — they all become anchors that make renaming impossible.
I rebranded at the perfect moment: after the product was real enough to know what it was, but before anyone else had an opinion about it. If I'd waited until launch, I'd be stuck with DuoCal forever.
The commit on January 15th — "New project id for WhispCal" — felt like a birth certificate. The app finally had its real name.