A modern, responsive Next.js application for creating and sharing digital business cards with QR codes, vCard downloads, and analytics.
- Beautiful Digital Cards: Clean, minimalistic interface with customizable themes
- QR Code Generation: Instant scannable QR codes for easy sharing
- vCard Download: Export contacts as .vcf files compatible with all devices
- Social Media Integration: Link to LinkedIn, Twitter, GitHub, and Instagram
- Analytics: Track profile visits and QR code scans
- Dark/Light Themes: Built-in theme support with custom color options
- Responsive Design: Works perfectly on mobile, tablet, and desktop
- Supabase Backend: Secure data persistence and storage
- Vercel Deployment: One-click deployment with custom URLs
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database: Supabase (PostgreSQL)
- Storage: Supabase Storage
- UI Components: Lucide React Icons
- QR Codes: QRCode.react
- Theming: next-themes
- Node.js 18+ installed
- A Supabase account (free tier works)
git clone <your-repo-url>
cd Clicksharenpm install- Create a new project at supabase.com
- Go to Settings > API and copy:
- Project URL
- anon/public key
- Create a storage bucket named
profilesin the Supabase dashboard - Run the SQL migration in
supabase/migrations/001_initial_schema.sqlin your Supabase SQL editor
Create a .env.local file:
cp .env.local.example .env.localEdit .env.local with your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_APP_URL=http://localhost:3000npm run devOpen http://localhost:3000 with your browser.
- Click "Create Your Card" on the homepage
- Fill in your profile information
- Upload a profile picture (optional)
- Add social media links (optional)
- Customize your theme color
- Click "Create Card"
Your card will be available at: your-domain.com/slug
You can:
- Share the URL directly
- Let others scan the QR code
- Share via the share button (mobile)
- Provide the vCard download
View your profile's analytics in the Supabase dashboard or extend the app to show them in the UI.
- Push your code to GitHub
- Go to vercel.com
- Import your repository
- Add environment variables in Vercel settings
- Deploy!
- Go to your Vercel project settings
- Add your custom domain
- Update DNS settings as instructed by Vercel
| Column | Type | Description |
|---|---|---|
| id | UUID | Primary key |
| created_at | TIMESTAMP | Creation timestamp |
| full_name | TEXT | Full name |
| job_title | TEXT | Job title |
| company | TEXT | Company name |
| profile_image | TEXT | Profile image URL |
| bio | TEXT | Short biography |
| TEXT | Email address | |
| phone | TEXT | Phone number |
| website | TEXT | Website URL |
| social_links | JSONB | Social media URLs |
| custom_theme | JSONB | Theme customization |
| slug | TEXT | URL slug (unique) |
| visits | INTEGER | Total visits |
| qr_code_scans | INTEGER | QR code scans |
src/
├── app/
│ ├── [slug]/page.tsx # Dynamic card pages
│ ├── create/page.tsx # Card creation form
│ ├── layout.tsx # Root layout with theme provider
│ ├── page.tsx # Homepage
│ └── globals.css # Global styles
├── components/
│ └── theme-provider.tsx # Theme provider component
├── lib/
│ └── supabase.ts # Supabase client
└── types/
└── index.ts # TypeScript types
- PDF generation for offline sharing
- Calendar integration (Google/Outlook)
- Embedded map location
- Multiple card designs/templates
- Analytics dashboard
- Business card statistics
- Email notifications
- Custom branding options
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - feel free to use this project for personal or commercial purposes.