Saigon Safe: Personalizing open-source for fun and profit
I’ve used Bitwarden for ~6 years, and there were a handful of UX issues that annoyed me enough that I finally did something about them.
The result is Saigon Safe Firefox: a fork of the Bitwarden browser extension, built mostly with AI-assisted coding.
A few features added:
One-click account creation

- Set a default email address
- Generate a strong password
- Auto-fill the registration form
- Automatically save the credential
No more:
- Copy password
- Paste password
- Re-enter email
- Hope Bitwarden notices the new account
Touch ID unlock
Unlock your vault using your laptop’s biometric authentication instead of typing a long master password every time.
UX improvements
- Bottom menu bar moved to top, for faster mouse access
- If you try to auto-fill and Saigon Safe is logged out, prompt for password (instead of silently failing like today…)
- Auto-fill cycles through current login items.
Hidden accounts

- Inspired by Zalo’s hidden conversations.
- Mark sensitive accounts (banks, investments, email providers, etc.) as hidden.
- They won’t appear in search results unless you enter a separate secret PIN.
This adds a layer of privacy if someone gains access to an unlocked device or vault. This feature is only enforced on the client level. The export feature will still reveal the hidden accounts.
Less marketing clutter
Removed upsell and promotional UI from the extension.
The extension still uses Bitwarden’s backend and infrastructure. Your vault, sync, and encryption work exactly as before—this is purely a client-side experience improvement.
Firefox is available now. Chrome is in testing and should be released in the next few weeks.
If there’s enough interest, I’ll look at bringing these improvements to the iOS and Android apps as well.
The source code is open source github.com/KevinColemanInc/saigon-safe. If you’d like to review the changes, check out the GitHub repo below.
Amazing what becomes possible when AI reduces the cost of understanding and modifying large codebases.
Commercial modules were removed to avoid violations of Bitwarden’s copyright file. Feel free to contact me at [email protected] if you have any questions.
More posts
Posts
-
Saigon Safe: Personalizing open-source for fun and profit
-
Tokenmining: low token plans maximize your output
-
When Everything Becomes Normal, Nothing Feels Special
-
How I Secure My Most Important Accounts
-
The Tech Industry After the Gold Rush
-
2025’s Career and Hiring Trends - part 2
-
2025’s Career and Hiring Trends
-
Quick guide on advertising mobile app from an ex-Yelp ads engineer
-
At-will employment
-
3 surprising areas Tech can support women
-
Give people space
-
From Snowy Tomato Slices to Tea Debates: Navigating Ukrainian Culture
-
Navigating Cultural Differences: Hilarious Translation Fails.
-
Writing Style for Slack
-
Batch Prompting (cost reduction for LLMs/ChatGPT)
-
NSFW Image detection on Digital Ocean Apps
-
Top 5 Junior tech roles to become software engineers
-
Top Ruby exploits in rubygems.org
-
Life Design: Daily Actions
-
Designing a distributed web crawler
-
System Design Interview Format - 6 Steps to passing
-
SSO / SAML to JWT: A system design problem
-
How and when to add foreign key constraints
-
Rails: No downtime data migrations
-
Letter Avatars with Serverless
-
Wildcard Google Auth for multiple subdomains
-
I graduated from a code school. Now what?
-
Bulk email sending with Ruby
-
Rails tip: Returning
-
Rails tips: Fast Relation Detection
-
Regex: Escaping Slashes
-
Limited Retry Pattern
-
Adding Queues to your models
-
Hosting Side Projects for Free
-
Adding search to Atlanta Startup Jobs
-
Rails Patterns: Builders and Models
-
Ruby on Rails Grape gem: Pros and Cons
-
Otto meet Retrofit: How to build a scalable and performant Android application
-
Atlanta Startup Jobs - Scratch your own itch
-
SideProject: HappyBeam - Meditate and improve
-
How to win a hackathon
-
One Rails App Two Web Applications
-
Angularjs Rails and SEO Part 2
-
Angularjs Rails and SEO Part 1
-
Buying my first real estate investment
-
How to get OSX git branch name in console
-
How to start web consulting
-
Goodie Hack #2
-
What it takes to be entry level Rails developers
-
Rails 4.1 enums: How not to handle states
-
My path to success
-
Twitter bot on Heroku
-
Rails and Redis URL Shortener in same application
-
Tagging Models
-
Gem Configuration Defaults
-
Custom Environments with Rails 4
-
NodeJS Chat Guide
-
Rapid Ticket Purchasing and the extendable web
-
Extending Active Record in Rails 4.1
-
Reporting with Rails Part 2
-
Reporting with Rails Part 1
-
Setting up a Ruby on Rails 4.0.1beta1 with OSX Mavericks 10.9
subscribe via RSS