The brief#
When its owner brought it to us, AI Toolbar was called Ultimate Toolbar. It was a strip of menus across the top of ChatGPT that assembled a prompt from the options a user picked, and it had tens of thousands of users and a base of paying subscribers.
He wanted more than a strip of menus. He wanted an assistant that went with his users to every other page they opened. The toolbar those users already knew had to stay where it was, inside ChatGPT.
What we built#
We took his idea further and rebuilt the product from nothing. Saif Pasha renamed it AI Toolbar, created its new brand and designed every screen.
The extension has two halves. In ChatGPT, the toolbar stayed where it had always been. Everywhere else there is a copilot. Select text on any page and it opens beside the selection, ready to answer an email, condense an article, translate or rewrite, from a typed prompt or a spoken one. Answers arrive in a sidebar at the edge of the page, where the assistant also chats.
The rebuild also covered how the product is sold: subscription plans that include a free daily allowance, a system of credits, and an integration with AppSumo for customers on a lifetime deal. The interface comes in several languages.
Its owner checked the work himself, down to a single pixel and a single word of copy. The extension shipped after all his rounds of testing and Saif's own.
The hard part: 10,187 passwords#
The last job was the database, which had to move from MongoDB to Supabase. It looked like the easy part until Saif saw what the user records held. The passwords were stored as hashes, and Supabase keeps sign-ins in a system of its own.
A reset was not an option. Thousands of the users paid every month, and none of them could be told to make a new password because the database behind the product had changed. Every existing password had to keep working on the new platform.
The answer was in the format. The old Node back end hashed passwords with bcrypt, and Supabase checks passwords with bcrypt too. A bcrypt hash is one string that carries its own version, cost and salt, so a hash written by one system can be checked by another. Saif tested that on a single account. On the old app he created a fresh account with a password he knew, made a matching user on the new platform, gave it the copied hash, and signed in with the same password. It worked.
A script then recreated every user in Supabase with the hash they already had and their email already confirmed, and matched each paying subscription in Stripe to its new account by an ID the subscription already carried. The first screen of the new extension told existing users they did not need a new account.

The outcome#
Every account in the old app's export moved with its hash. Nobody reset a password and nobody entered a card again. The old extension kept running throughout the rebuild, and switching to the new one cost less than twelve hours of downtime.
AI Toolbar went on to pass 100,000 users once it was rebuilt. It has written over ten million responses, and its earnings are far above what they were before. Its owner has been Saif's client for more than five years, and we still maintain the extension today.
