
Why I Built a Chrome Extension Instead of Asking for Your Password
Every other portfolio tool starts with a Plaid connection. Prismfolio starts differently. Here's why - and what we give up by doing it this way.
When I started building Prismfolio, the default assumption was obvious: use Plaid.
Plaid is the standard infrastructure for connecting fintech apps to bank and brokerage accounts. It's trusted by millions of people. Practically every serious financial app uses it. The documentation is good. The developer experience is solid.
But there's something that happens when you use Plaid: you're asking your users to re-enter their brokerage credentials into a modal that looks like their brokerage but is actually a Plaid-hosted form. The credentials never leave Plaid's infrastructure - but you're still asking someone to type their Fidelity password into a third-party system.
For some people, this is fine. They understand the model and trust it.
For others - people who are careful about where their financial credentials go, who've read enough about data breaches to be appropriately paranoid - this is a dealbreaker. They won't connect their accounts. And those are exactly the users who are most likely to benefit from a portfolio analysis tool.
I was one of those users. So I built something different.
How the extension approach works
The Chrome extension reads your brokerage's own positions page - the page you're already logged into, using your existing session.
When you're on Fidelity.com, logged in, and you navigate to your portfolio positions page, the extension reads the DOM. It extracts your holdings: ticker symbols, quantities, values. It parses the structure of the page to find the data.
Your Fidelity credentials never touch our servers. You authenticate with Fidelity directly, as you normally would. The extension just reads what's already visible on the screen - the same thing you can see by looking at the page.
This is meaningfully different from Plaid. With Plaid, you're creating a persistent connection. The app can pull your data on demand, even when you're not actively using it. With the extension, data is only read when you're actively using it, in your browser, with the brokerage page open.
What we give up
I want to be direct about the trade-offs, because I think glossing over them would be dishonest.
Breadth. Plaid connects to thousands of institutions. The extension currently works on Fidelity, Schwab, and Vanguard - three of the largest brokerages for self-directed investors, but not all of them. If you use a smaller regional broker, a credit union brokerage, or an international account, the extension won't work for that account.
Automation. A Plaid connection can pull your data on a schedule. The extension only reads your portfolio when you open the brokerage page and click the extension icon. It doesn't run in the background. It doesn't update overnight. This is a deliberate choice, but it means the data isn't always current without manual action.
Simplicity for some users. Some people actually find Plaid's "connect your account" flow simpler than installing a browser extension. Fair enough.
We do offer Plaid in read-only mode: 1 auto-sync connection on Free, unlimited on Plus, for users who want automated sync beyond the extension. The free tier doesn't require it, and many users never need it.
Why this matters beyond convenience
There's a deeper reason I went this direction.
Fintech startups accumulate credential connections. They build value in part through the aggregate of those connections - the data exhaust, the engagement signals, the switching costs. A user who has connected their accounts is a user who is "sticky."
I don't want Prismfolio to be sticky because you've handed over your financial credentials. I want it to be sticky because it's genuinely useful and you choose to come back.
That's a different kind of business. The extension model makes it concrete: you use it when you want to, it doesn't run when you're not using it, and disconnecting means deleting the extension - not navigating a confusing deauthorization flow.
What I've learned from building this way
The DOM approach has real engineering challenges. Brokerage websites change. The structure of a positions page at Fidelity in January might be different in April. We have to maintain parsers and update them when the underlying HTML changes.
This is genuinely harder than Plaid. Plaid's data is structured and normalized. Brokerage DOM is not.
But the constraint has been useful. It forces us to build the tool around the browsing experience the user already has, not around a new credential flow we've created. And it keeps us honest: if our analysis isn't worth the manual step of opening your brokerage tab, we need to improve the analysis, not make it harder to disconnect.
The extension is free. You can try it without creating an account. That's not a marketing decision - it's the natural consequence of an architecture where we don't need your data to be running constantly in the background.
Install the extension → | Read about our security practices →
For research and context only - not investment advice.