The voter who votes twice: why cross-app identity matters

Last summer, a studio founder messaged us mid-afternoon. She had seven iOS apps. One user had voted for the same feature request in three of them, and our system had no idea they were the same person. She'd had to manually merge feedback. That afternoon conversation became the seed for Passport.

The problem was visibility, not visibility tools

When you run two or more apps, the old feedback tools treat each one as an island. A user votes on 'dark mode' in App A. Three months later, the same user votes on 'dark mode' in App B. Your system records two separate voters asking for the same thing. Your analytics look noisy. Your roadmap looks fragmented.

But the real cost is softer than that. When your user votes in App C, you don't send a notification saying 'this person already requested this in App A' or 'look, your most engaged voter is asking for export functionality across the portfolio.' You miss the signal that sits inside the aggregate data.

The existing tools weren't built for studios. They were built for teams managing a single product. Canny never assumed you'd be running five apps on the same platform. Neither did anyone else.

We chose the native path instead of the web form

When we started building Shpd, we knew we could have lifted an existing web-based voting interface and slapped a mobile wrapper on it. Instead, we built native SDKs from the ground up. Swift for iOS, Kotlin for Android. Your voters never leave your app; they vote inside it, in the interface they already know.

That decision cascaded into everything else. Because voters are already authenticated inside your app, we could pass that identity across your entire portfolio. One voter, one Passport, infinite apps.

The engineering cost was higher. But the payoff was immediate. Studios could finally see who their power users were, even if those users were spread across three different apps. Notifications went to the right place. Analytics became coherent. A feature request in App A that echoed silently in App B now showed up as a signal, not noise.

A notification that lands when it actually ships

Here's something we take for granted now. When you mark a feature as shipped, every voter who requested it across every app in your portfolio gets a push notification. Not an email digest three days later. Not a reminder to check a web page. A push, right then.

That matters more than it sounds. Users forget they voted. They move on, switch phones, stop thinking about that feature. A notification saying 'remember you wanted this? It's live' brings them back. They download the update. They feel heard.

We saw this play out during a studio's launch week. They shipped a feature that had been requested in two of their apps. The notification went out. Their weekly active users ticked up 3 percent that day. One of their team members told us it was the first time they'd felt connected to the outcome of feature votes, not just the votes themselves.

The Canny migration didn't start the conversation; it accelerated it

In late 2024, when Canny announced their pricing change, studios started hunting. We got inbound. A lot of it. But the migration wasn't the reason we built Passport; it was validation that we'd solved a real problem the market had been living with.

The studios fleeing Canny weren't just looking for cheaper. They were looking for a tool built for how they actually worked. Multi-app portfolios. Native mobile experiences. Voter identity that made sense across their ecosystem.

Passport let us say something different: you're not signing up for a cheaper version of the same thing. You're switching to something built for the shape of your business.

Why honest billing beats the App Store

We bill through Stripe, not StoreKit. That's deliberate. When you use an in-app-purchase model, the unit economics blur. App Store's cut, subscription logic, platform fees. Your actual cost per seat gets buried.

With Stripe, you see the math clearly. Nineteen pounds a month for a Studio plan covers five apps, unlimited voters, native SDKs. Forty-nine pounds for Scale adds push notifications and cross-app identity. Ninety-nine pounds for Portfolio brings white-label options and insights you can actually use. You know what you're paying. You know what you're getting.

Studios running ten apps don't get punished for growth. Scale plan is unlimited apps. Your pricing doesn't change because you built a successful product.

The real story is the one your users are telling

Last month, a founder told us her team had started checking the voting board first thing every morning. Not because they had to. Because they saw their users' priorities clearly for the first time. A feature with forty votes in App A and thirty votes in App B suddenly showed up as one conversation with seventy voices, not two separate debates.

That's what cross-app voter identity does. It stops fragmenting your feedback and starts amplifying it. Your users stay engaged because they see their votes move from request to shipped, regardless of which app they're in. Your team builds faster because the roadmap is coherent.

The founder who prompted all of this, the one managing seven apps last summer. She's on Scale now. She told us that merging feedback manually takes her team about two hours a month. That time is now spent actually building features people asked for.

If you're running multiple apps and wondering whether your voters are real people or just scattered data points, that's the question we built Shpd to answer. What would your roadmap look like if you could see your audience as a whole, not seven separate fragments?

Want to try Shpd?

Visit Shpd →