Case Study · Security Product

PassBangla

A password manager for teams, built in Bengali and English. An encrypted vault with sharing, TOTP codes, history and breach monitoring — reached from a web app, an installable PWA, or a browser extension — with passkeys, server-enforced MFA and granular roles underneath it.

Next.jsTypeScripttRPCPrismaPostgreSQLRedisWebAuthnWeb CryptoWXTi18next
Visit passbangla.com

TL;DR

ProductA password manager for teams — an encrypted vault with sharing, TOTP codes, password history, breach monitoring and scheduled rotation, reachable from the web, an installable PWA and a browser extension.
ProblemSmall teams share credentials over chat and spreadsheets because the serious tools are priced and written for somewhere else. Nothing in this market speaks Bengali, and a security product nobody can read in their own language does not get adopted.
ApproachBuild the vault properly first — authenticated encryption, per-owner key derivation, passkeys, server-enforced MFA and granular roles — then put a fully bilingual interface on top of it rather than translating one later.
Hardest partGetting the cryptography and the access control right, and then being able to change them safely: ciphertext is versioned so the scheme can be upgraded without a big-bang migration or a day of unreadable data.
StackNext.js · TypeScript · tRPC · Prisma · PostgreSQL · Redis · WebAuthn · WXT

At a glance

AES-256-GCM

Vault storage

Authenticated and versioned at rest

Passkeys

Sign-in

WebAuthn, TOTP and enforced MFA

বাংলা + EN

Interface

Bilingual from the ground up

Web · PWA · ext

Reach

Chrome and Firefox extension

The Problem

The credentials are in the group chat

Ask a small team where the shared logins live and the honest answer is usually a chat thread, a spreadsheet, or one person's head. Everyone knows it is wrong. The tools that fix it are priced per seat in dollars, written for security departments that do not exist here, and presented entirely in English.

So the brief was narrower than "build a password manager". It was: build one a team in Bangladesh will actually adopt — one whose interface reads naturally in Bengali, which works on a phone without an app store, and which is still built to the standard a vault has to meet, because a password manager that is merely convenient is worse than none at all.

What We Built

A vault, and three ways to reach it

The core is an encrypted vault with the machinery a team needs around it: role-based access, secure sharing with expiry, password history, breach monitoring, scheduled rotation, alerts for weak and duplicated entries, and TOTP codes stored beside the credentials they protect.

That core is reached three ways — a full web app, an installable PWA with offline access for phones, and a browser extension for Chrome and Firefox built with WXT. Access control runs through granular permissions on five roles, enforced in the API rather than in the interface.

passbangla.com
PassBangla landing page with the headline 'Enterprise Password Management Made Simple' and a shield lock mark
The product positions on one idea: a serious vault that a small team can actually adopt.
passbangla.com
Feature grid covering secure storage, breach detection, team collaboration, password history, advanced search, secure sharing, auto rotation, security alerts and TOTP code generation
Ten modules — the vault itself, then everything a team needs around it.
passbangla.com
Platforms section showing the web app, a mobile PWA for iOS and Android, and browser extensions for Chrome and Firefox
One core, three surfaces: web app, installable PWA, and a Chrome/Firefox extension.

Engineering Notes

Eight decisions a vault has to get right

01

Versioned ciphertext, so crypto can be changed later

Every stored secret carries a scheme version in the ciphertext itself. New records are written with authenticated AES-256-GCM, while the decrypt path stays version-aware and can still read everything written before it. Cryptography always needs upgrading eventually; designing for that on day one is the difference between a migration and an outage.

02

Keys derived per owner, and kept apart by purpose

Vault keys are derived with PBKDF2-SHA256 at 100,000 iterations and scoped per owner, so one derived key never covers the whole table. Integration credentials — outbound mail settings, for example — are encrypted with an entirely separate key, so a compromise in one area does not cascade into the vault.

03

MFA enforced in the API, not the router

A client-side redirect to a verification screen is a suggestion, not a control — anyone can skip it by calling the API directly. Verification state is carried in the tRPC context instead, and the permission check itself refuses to run for a session that has not completed MFA. The enforcement lives where the data actually is.

04

Codes that resist guessing

A six-digit code is only a million guesses if you are allowed to make them. Verification caps failed attempts and compares codes in constant time, so neither brute force nor response-timing gives an attacker a way in.

05

Recovery without a back door

Account recovery is where password managers quietly betray their users. Answering security questions does not reset anything by itself — it mints a single-use, expiring token bound to that one account, and the reset consumes it. No client-supplied identity is trusted anywhere in the flow.

06

Passkeys alongside passwords

WebAuthn is wired in through SimpleWebAuthn, so a member can register a platform authenticator and sign in with a fingerprint or device PIN instead of typing the one password that guards all the others. TOTP secrets live in the same vault, encrypted like everything else.

07

Sharing that expires on its own

Temporary shares are 256-bit tokens from a cryptographic RNG, with expiry and a maximum use count enforced on access rather than merely displayed. A shared credential that stays live forever is just a slower leak.

08

Bilingual by construction, not by translation

The whole interface exists in Bengali and English, with the copy in resource files from the start rather than extracted from hard-coded strings later. For the market this is built for, that is not a nice-to-have — a security tool people cannot read in their own language is a security tool people work around.

Architecture

One typed core, three clients

Web app

  • Next.js App Router
  • tRPC, end-to-end typed
  • TanStack Query & Virtual
  • Radix primitives, theming
  • i18next — Bengali & English

Security

  • AES-256-GCM, versioned at rest
  • PBKDF2-SHA256, per-owner keys
  • WebAuthn passkeys, TOTP, MFA
  • Granular RBAC over five roles
  • Rate-limited, constant-time checks

Extension & PWA

  • WXT — Chrome and Firefox
  • Background + content scripts
  • Scoped host permissions
  • Installable PWA, offline access
  • Autofill from the vault

Data & platform

  • PostgreSQL via Prisma
  • Redis for sessions and limits
  • Multi-tenant isolation
  • Email and SMS delivery
  • Deployed on Vercel

Building something that holds secrets?

We build products where the security model is designed first and reviewed properly — encryption, access control, recovery flows and all the awkward parts in between.