Privacy-first, open-source security toolkit — generate passwords, passphrases, tokens, hashes, and more. Everything runs locally in your browser.
Everything is generated locally in your browser. No data ever leaves your device.
| Landing Page | Dashboard | Password Generator |
|---|---|---|
| Coming soon | Coming soon | Coming soon |
- Password Generator — Length 4–256, character groups, custom charset, min counts, batch generation, session history, saved favorites
- Passphrase Generator — Diceware-style word lists, separators, optional numbers/symbols
- Username Generator — Adjective+noun, random, and tech styles
- UUID Generator — UUID v4 and v7, single and batch
- API Key Generator — Custom prefix and length
- Token Generator — Hex, Base64, alphanumeric formats
- Random String Generator — Fully custom character sets
- Password Analyzer — Entropy, strength score, crack-time estimation, character distribution, recommendations
- Hash Generator — MD5, SHA-1, SHA-256, SHA-512 (local Web Crypto API)
- Security Utilities — PIN, OTP, random bytes, Base64 encode/decode, environment checks
- Dark / Light / System theme with persistence
- Progressive Web App (offline, installable)
- Responsive layout with sidebar navigation
- Keyboard accessible, ARIA labels, screen reader support
- Route-based code splitting for fast loads
- i18n-ready architecture (English default)
PassForge has no backend, no accounts, no analytics, and no tracking.
| No servers | All crypto runs via crypto.getRandomValues() and Web Crypto API |
| No network calls | Generation never contacts external APIs |
| No persistence of secrets | Password history is session-only |
| Open source | MIT licensed — audit the code yourself |
- React 19 + TypeScript + Vite
- Tailwind CSS 4 + shadcn/ui
- React Router 7 · Framer Motion · Zustand
- React Hook Form · Zod · Lucide React
- ESLint · Prettier · vite-plugin-pwa
- Node.js 20+ (22 recommended)
- npm 10+
git clone https://github.com/amirkenzo/PassForge.git
cd PassForge
npm installnpm run devOpen http://localhost:5173.
npm run build
npm run previewnpm run lint # ESLint
npm run lint:fix # ESLint with auto-fix
npm run format # Prettier
npm run typecheck # TypeScript checkYou do not need Android Studio or Rust locally if you use GitHub Actions.
Release workflow runs when you:
- Push a version tag (
git tag v1.0.0 && git push --tags) - Bump
package.jsonversion onmain - Run Actions → Release Native Apps manually
Each release publishes .exe, .msi, and .apk on GitHub → Releases.
See BUILD.md for local build instructions.
src/
├── app/ # Router, providers, app shell
├── pages/ # Landing, dashboard, 404
├── features/ # One folder per tool
├── components/
│ ├── ui/ # shadcn/ui primitives
│ ├── layout/ # Sidebar, header, navigation
│ └── shared/ # Reusable tool components
├── services/ # Pure business logic (generators, hash, etc.)
├── store/ # Zustand (UI, settings, tool state)
├── utils/ # Crypto, clipboard, export, import
├── hooks/ # useTheme, useCopy, useMediaQuery
├── types/ # Shared TypeScript types
├── i18n/ # Internationalization (en default)
├── assets/ # Wordlists and static data
└── config/ # Tool definitions
- Enable GitHub Pages → Source: GitHub Actions
- Push to
main— the workflow in.github/workflows/deploy-github-pages.ymldeploys automatically - Site URL:
https://<username>.github.io/PassForge/
The base path is set to /PassForge/ in vite.config.ts. Change it if your repo name differs.
- Connect your GitHub repository in Cloudflare Pages
- Build settings:
- Build command:
npm run build - Build output directory:
dist - Node version: 22
- Build command:
- Environment variable (if using a custom domain at root):
# Optionally override base in vite.config.ts to '/' for custom domains
npm run build
# Upload contents of dist/ to any static hostPassForge ships as an installable Progressive Web App:
- Service worker with offline caching
- Web app manifest
- Install prompt on supported browsers
Add PNG icons to public/icons/ (see public/icons/README.md).
Architecture is prepared for:
| Platform | Status | Notes |
|---|---|---|
| Web / PWA | ✅ Ready | Default target |
| GitHub Pages | ✅ Ready | CI workflow included |
| Cloudflare Pages | ✅ Ready | Static build |
| Tauri (Desktop) | 🔧 Prepared | See src-tauri/README.md |
| Capacitor (Android) | 🔧 Prepared | See capacitor.config.ts |
Platform abstraction lives in src/services/platform.ts and src/utils/clipboard.ts.
| Version | Features |
|---|---|
| v1.0 (current) | All core tools, PWA, themes |
| v1.5 | Secure local vault, encrypted storage, custom wordlists |
| v2.0 | Browser extension, password manager mode, plugins, i18n |
| v3.0 | E2E encrypted sync, team features, secure notes, native mobile |
Contributions are welcome! Please read CONTRIBUTING.md first.
All contributions must remain fully client-side with no tracking or external data transmission.
MIT License © 2026 Amir Kenzo
PassForge — Forge your credentials. Keep your privacy.