Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PassForge

Privacy-first, open-source security toolkit — generate passwords, passphrases, tokens, hashes, and more. Everything runs locally in your browser.

MIT License TypeScript React

Everything is generated locally in your browser. No data ever leaves your device.


Screenshots

Landing Page Dashboard Password Generator
Coming soon Coming soon Coming soon

Features

Generators

  • 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

Analysis & Utilities

  • 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

Platform

  • 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)

Privacy

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

Tech Stack

  • 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

Installation

Prerequisites

  • Node.js 20+ (22 recommended)
  • npm 10+

Clone & Install

git clone https://github.com/amirkenzo/PassForge.git
cd PassForge
npm install

Development

npm run dev

Open http://localhost:5173.

Build

npm run build
npm run preview

Other Scripts

npm run lint          # ESLint
npm run lint:fix      # ESLint with auto-fix
npm run format        # Prettier
npm run typecheck     # TypeScript check

Native builds (Windows + Android)

You 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.json version on main
  • Run Actions → Release Native Apps manually

Each release publishes .exe, .msi, and .apk on GitHub → Releases.

See BUILD.md for local build instructions.


Project Structure

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

Deployment

GitHub Pages

  1. Enable GitHub Pages → Source: GitHub Actions
  2. Push to main — the workflow in .github/workflows/deploy-github-pages.yml deploys automatically
  3. 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.

Cloudflare Pages

  1. Connect your GitHub repository in Cloudflare Pages
  2. Build settings:
    • Build command: npm run build
    • Build output directory: dist
    • Node version: 22
  3. Environment variable (if using a custom domain at root):
    # Optionally override base in vite.config.ts to '/' for custom domains
    

Manual Deploy

npm run build
# Upload contents of dist/ to any static host

PWA

PassForge 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).


Cross-Platform (Future)

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.


Roadmap

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

Contributing

Contributions are welcome! Please read CONTRIBUTING.md first.

All contributions must remain fully client-side with no tracking or external data transmission.


License

MIT License © 2026 Amir Kenzo


PassForge — Forge your credentials. Keep your privacy.

About

Generate secure passwords, passphrases, API keys, tokens and cryptographic identifiers entirely in your browser.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages