A secure and modern password manager built with Next.js.
Lock Genius is a simple yet powerful password manager you need. Built with modern web technologies and security best practices.
- Social Login with GitHub
- Secure Password Generation
- Cryptographically secure random generation
- Customizable password options (length, character sets)
- Copy to clipboard functionality
- Guest mode β generate and store up to 50 passwords locally without signing in
- Cloud sync β passwords sync to the database when you log in
- Password Vault Management (view, copy, and delete saved passwords)
- Dark / Light theme toggle
- Health Check API
- Unit Testing
- Framework: Next.js 15 with App Router
- Database: PostgreSQL with Prisma ORM
- Authentication: Better Auth (GitHub OAuth)
- UI: Tailwind CSS v4, shadcn/ui, Radix UI
- Testing: Jest, React Testing Library
- Type Safety: TypeScript (strict mode)
- Code Quality: Biome (lint + format)
- Forms: React Hook Form + Zod
-
Install nvm (Node Version Manager):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash -
Install and use the correct Node.js version:
nvm install nvm use
-
Install pnpm:
npm install -g pnpm
-
Start the PostgreSQL database via Docker:
pnpm docker:up
-
Clone the repository:
git clone https://github.com/iguit0/lock-genius.git cd lock-genius -
Install dependencies:
pnpm install
-
Set up environment variables:
cp .env.example .env
Fill in the values in
.env:Variable Description DATABASE_URLPostgreSQL connection string BETTER_AUTH_URLApp URL (e.g. http://localhost:3000)BETTER_AUTH_SECRETRandom secret, min 32 characters AUTH_GITHUB_IDGitHub OAuth App client ID AUTH_GITHUB_SECRETGitHub OAuth App client secret GitHub OAuth: Create an OAuth App at github.com/settings/developers. Set the callback URL to
http://localhost:3000/api/auth/callback/github. -
Set up the database:
pnpm db:setup
-
Start the development server:
pnpm dev
Visit http://localhost:3000 to see the application running.
-
Database Management:
pnpm db:reset- Reset database (β οΈ Warning: This will delete all data)pnpm db:studio- Open Prisma Studio for database management
-
Testing:
pnpm test- Run testspnpm test:watch- Run tests in watch modepnpm test:coverage- Run tests with coverage report
-
Code Quality:
pnpm check- Run Biome (lint + format check)pnpm check:fix- Auto-fix all Biome issuespnpm typecheck- Run TypeScript type checking
-
Docker:
pnpm docker:up- Start Docker servicespnpm docker:down- Stop Docker servicespnpm docker:logs- View Docker logs
This project is licensed under the MIT License. Refer to the LICENSE file for more information.