Your Nostr identity as a beautiful, shareable card. key.card lets you generate a personalized digital identity card from your Nostr profile — complete with your display name, avatar, NIP-05 address, npub, and a QR code. Share it as an image, add it to Apple or Google Wallet, or print it for conferences. Built with React, Vite, and Nostrify.
# Clone and install
git clone https://github.com/ArcadeLabsInc/keycard.git
cd keycard
npm install
# Start development server
npm run devOpen http://localhost:8080 in your browser.
npm run build # Production build → dist/
npm run test # Run type-check, lint, and testsThe repo includes vercel.json — just connect your GitHub repo and deploy. SPA routing is handled automatically.
npm run build
cd dist
surge . your-preview.surge.sh| Variable | Required | Description |
|---|---|---|
VITE_APP_URL |
No | App base URL (default: https://key.card) |
APPLE_CERT |
Production | Apple Developer certificate for Wallet passes |
APPLE_CERT_PASS |
Production | Apple certificate password |
APPLE_TEAM_ID |
Production | Apple Developer Team ID |
APPLE_PASS_TYPE_ID |
Production | Apple Wallet Pass Type Identifier |
GOOGLE_SERVICE_ACCOUNT |
Production | Google Cloud service account JSON |
GOOGLE_ISSUER_ID |
Production | Google Pay & Wallet Console Issuer ID |
Copy .env.example to .env and fill in values as needed.
- React 18 + TypeScript
- Vite — fast dev server and bundler
- TailwindCSS 3 + shadcn/ui components
- Nostrify — Nostr protocol integration
- React Router — client-side SPA routing
- QRCode — QR code generation
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feat/my-feature) - Commit your changes (
git commit -m 'feat: add my feature') - Push to the branch (
git push origin feat/my-feature) - Open a Pull Request
Open source — build and share your Nostr identity.