PassGen is a desktop application with a zero-knowledge architecture, meaning there's no traditional "account" or "sign-up" with email/password to a server. Instead, you create a local vault secured by your master password.
PassGen doesn't require traditional sign-up because:
- β No servers to create accounts on
- β No email verification needed
- β No usernames or profiles
- β Complete privacy - we never see your data
- β You control where data is stored (local or your own cloud)
Instead, you "sign up" by:
- Choosing your storage method
- Creating a master password
- Starting to use the app immediately
When you first open PassGen, you'll see a 3-step onboarding tutorial that explains:
- How the app works
- Security features
- Setup tips
Click through the onboarding screens to learn about the app.
After onboarding, you'll configure where your encrypted passwords will be stored:
Best for:
- Getting started quickly
- Single device usage
- Maximum privacy (data never leaves your device)
Setup:
- Select "Local Storage" radio button
- Click "Continue"
- Done! No credentials needed
Best for:
- Syncing across multiple devices
- Easy cloud backup
- Free storage (15GB)
Setup Required:
- Visit Google Cloud Console
- Create a new project (e.g., "PassGen")
- Enable "Google Drive API"
- Go to Credentials β Create Credentials β OAuth 2.0 Client ID
- Choose "Desktop app" as application type
- Copy the Client ID and Client Secret
- In PassGen, select "Google Drive"
- Paste your Client ID and Client Secret
- Click "Continue"
First-time Google Authorization:
- You'll be prompted to authorize PassGen to access your Drive
- Grant permission (read/write access to files it creates)
- Complete the OAuth flow
Best for:
- Enterprise users
- AWS ecosystem integration
- Full control over storage location
Setup Required:
- Visit AWS Console
- Create an S3 bucket (e.g., "my-passgen-vault")
- Go to IAM β Users β Create new user
- Attach policy:
AmazonS3FullAccess(or create custom policy) - Generate access keys
- Copy Access Key ID and Secret Access Key
- In PassGen, select "AWS S3"
- Enter:
- Access Key ID
- Secret Access Key
- Region (e.g., us-east-1)
- Bucket name
- Click "Continue"
Best for:
- DigitalOcean users
- Simple S3-compatible storage
- Predictable pricing
Setup Required:
- Visit DigitalOcean Cloud
- Go to Spaces β Create Space
- Choose a region and name
- Go to API β Spaces Keys β Generate New Key
- Copy Access Key and Secret Key
- In PassGen, select "DigitalOcean Spaces"
- Enter:
- Access Key
- Secret Key
- Region (select from dropdown)
- Space name
- Click "Continue"
This is the most important step!
Your master password:
- β Encrypts ALL your stored passwords with AES-256
- β Is NEVER sent to the cloud or stored anywhere
- β Cannot be recovered if forgotten
- β Should be strong but memorable
Best Practices:
β Good Master Passwords:
Coffee&Sunrise@2025!Today
MyDog$Loves#Pizza2025
BlueOcean!Meets*Sky@NYC
β Bad Master Passwords:
password123
12345678
qwerty
myname
Requirements:
- Minimum 8 characters (recommended: 12-16+)
- Mix of uppercase, lowercase, numbers, symbols
- Memorable to YOU (but not easy to guess)
Tips:
- Use a passphrase with special characters
- Include a year or number that's meaningful to you
- Consider writing it down and storing it safely initially
- Test typing it a few times before confirming
Once you've set up storage and created your master password:
- You're now "signed up" - the app is ready to use
- You'll see the Vault interface
- Switch between "Vault" and "Generator" modes
- Start generating and saving passwords
- Launch PassGen
- You'll skip the onboarding (only shown once)
- Enter your master password
- Click "Unlock Vault"
- Access all your stored passwords
Forgot Your Master Password?
- Unfortunately, it cannot be recovered
- This is by design for security
- You'll need to start fresh with a new vault
- Consider backing up your master password securely
To change from Local to Cloud (or vice versa):
- Currently, this requires manual migration
- Export your passwords from the current provider
- Reconfigure with new storage provider
- Re-import your passwords
(Future update will add automatic migration)
For Google Drive/S3/DigitalOcean users:
- Install PassGen on second device
- Choose the SAME storage provider
- Enter the SAME cloud credentials
- Use the SAME master password
- Your passwords will sync automatically
For Local Storage users:
- Local storage is device-specific
- Consider switching to cloud storage for multi-device access
Best Practice: 3-2-1 Backup Rule
- 3 copies of your data
- 2 different storage types (e.g., Local + Cloud)
- 1 offsite backup (cloud storage)
How to backup:
- Use cloud storage as your primary
- Keep a second encrypted backup locally
- Periodically export your vault
Q: Is my master password stored anywhere? A: No. It only exists in your memory and temporarily in RAM when unlocking.
Q: Can you recover my master password if I forget it? A: No. Zero-knowledge means we literally cannot access it.
Q: Are my passwords safe in the cloud? A: Yes. They're encrypted with AES-256 BEFORE being uploaded. The cloud only sees encrypted gibberish.
Q: What if someone hacks my Google Drive/S3? A: They'd only get encrypted files. Without your master password, they're useless.
Q: Can PassGen employees see my passwords? A: No. This is a desktop app with zero-knowledge architecture. We never see your data.
For absolute beginners:
- Download and install PassGen
- Complete the onboarding tutorial
- Choose "Local Storage" (easiest)
- Create a strong master password (write it down!)
- Generate your first password
- Save a test entry in the vault
- Practice unlocking the vault
- (Optional) Set up cloud storage later
"Cannot configure storage"
- Check your internet connection
- Verify cloud credentials are correct
- Ensure cloud service is accessible
"Wrong master password"
- Master password is case-sensitive
- Check Caps Lock is off
- Try typing it in a text editor first to verify
"Failed to sync"
- Check internet connection
- Verify cloud service is online
- Check API credentials haven't expired
"App won't start"
- Try restarting the app
- Check system requirements
- Reinstall if necessary
PassGen offers a Free plan (store up to 4 passwords) and a Premium plan ($3.99/month). Premium unlocks larger vaults and cloud storage providers. After payment, activation requires a code.
- In the app, open the Upgrade/Premium panel and enter your email.
- Click "Request Activation". The app sends an email to the seller to verify your payment.
- You'll receive an activation code from the seller. Enter it in the app to unlock Premium.
To enable the in-app email (instead of opening your mail client), set these environment variables.
Variables:
- SELLER_EMAIL β where activation requests are sent
- ZOHO_USER β SMTP username (e.g., ZeptoMail API user)
- ZOHO_PASS β SMTP password or API key
- ZOHO_HOST β SMTP host (e.g., smtp.zeptomail.com)
- ZOHO_PORT β 465 (SSL) or 587 (STARTTLS)
- ZOHO_SECURE β true for 465, false for 587
Use the provided start-dev.bat which already sets example values:
- Open
start-dev.batand edit the values at the top:- SELLER_EMAIL, ZOHO_USER, ZOHO_PASS, ZOHO_HOST, ZOHO_PORT, ZOHO_SECURE
- Double-click
start-dev.batto launch Vite and Electron with these variables.
Alternatively, create a .env file in the project root using .env.example as a template. The app will load it automatically during development.
Environment variables in packaged apps come from the OS at runtime.
Options:
- Set system/user environment variables in Windows (Control Panel β System β Advanced β Environment Variables).
- Or ship a
.envnext to the executable and ensure the variables are present in the process environment when launching the app.
Notes:
- If SMTP isn't configured, the app will open your default mail client via
mailto:as a fallback. - Port/secure: 465 β secure=true (SSL); 587 β secure=false (STARTTLS).
Use the provided helper script. You need two inputs from the request email: the Install/Request ID and the user's email address. You also need the seller secret (must match the app's secret used for verification).
- Via npm script:
cd "c:\Users\jnass\PassGen"
npm run gen:activation -- --install <INSTALL_ID> --email <USER_EMAIL> --secret <YOUR_SECRET>- Or set the secret via environment variable:
$env:SELLER_SECRET="YOUR_SECRET"
npm run gen:activation -- --install <INSTALL_ID> --email <USER_EMAIL>Output will show: Activation Code: ABCDEF1234
Important:
- The secret used here must match the appβs verification secret. By default, the app falls back to
PG-SEC-2025. For stronger security, set a custom secret for your builds and keep it private. - The Install/Request ID equals the user's device Install ID (it appears in the activation request email body and subject).
Getting Cloud Credentials:
- Google Drive: https://console.cloud.google.com/
- AWS S3: https://console.aws.amazon.com/
- DigitalOcean: https://cloud.digitalocean.com/
Documentation:
- Read
README.mdfor features overview - Read
CLOUD_STORAGE_GUIDE.mdfor technical details
Remember: You're not creating an account on our servers. You're creating a personal, encrypted vault that only YOU can access. That's the beauty of zero-knowledge architecture! π