
The ultimate free & open source link in bio platform
Create beautiful, organized link pages that drive engagement and grow your audience.
🌐 Live Demo • 📖 Documentation • 🐛 Report Bug • 💡 Request Feature
- 🆓 100% Free & Open Source - No hidden fees, no locked features
- ⚡ Lightning Fast - Built with Next.js for optimal performance
- 🎨 Fully Customizable - Themes, colors, layouts, and animated backgrounds
- 📊 Built-in Analytics - Track clicks, views, and engagement metrics
- 🗂️ Organized Sections - Group your links for better organization
- 🔒 Privacy-First - GDPR compliant with complete data ownership
- 📱 Mobile Responsive - Perfect on all devices
- 🔐 Secure Authentication - OAuth integration with Google, GitHub, and Discord
- 🎯 Drag & Drop - Intuitive interface for managing links
- 📤 Data Export - Download your data anytime in JSON format
- Framework: Next.js 13
- Database: Prisma with Mongoose
- Authentication: NextAuth.js
- Styling: Tailwind CSS
- Components: Radix UI
- Animations: Framer Motion
- State Management: Zustand
- Drag & Drop: dnd kit
- Analytics: Recharts
- Node.js 18+
- npm or yarn or bun
- Mongoose database
-
Clone the repository
git clone https://github.com/LynkrApp/Website.git cd Website
-
Install dependencies
npm install # or yarn install # or bun install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables:
# Database DATABASE_URL="mongodb://username:password@localhost:27017/lynkr" # NextAuth NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key" # OAuth Providers GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" GITHUB_CLIENT_ID="your-github-client-id" GITHUB_CLIENT_SECRET="your-github-client-secret" DISCORD_CLIENT_ID="your-discord-client-id" DISCORD_CLIENT_SECRET="your-discord-client-secret"
-
Set up the database
npx prisma migrate dev npx prisma generate
-
Run the development server
npm run dev # or yarn dev # or bun dev
-
Open your browser Navigate to http://localhost:3000
├── components/ # Reusable UI components
│ ├── core/ # Core application components
│ ├── layout/ # Layout components
│ ├── root/ # Root level components (navbar, footer)
│ ├── shared/ # Shared components across features
│ └── utils/ # Utility components
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries and configurations
├── pages/ # Next.js pages (file-based routing)
│ ├── api/ # API routes
│ ├── admin/ # Admin dashboard pages
│ └── auth/ # Authentication pages
├── prisma/ # Database schema and migrations
├── public/ # Static assets
├── styles/ # Global styles
└── utils/ # Helper functions
We love contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes
- Run tests:
npm run test
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
We use ESLint and Prettier for code formatting. Run the following commands:
npm run lint # Check for linting errors
npm run lint:fix # Fix linting errors
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run postinstall # Generate Prisma client
If you find a bug, please create an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Screenshots (if applicable)
- Environment details
We welcome feature requests! Please:
- Check existing issues first
- Describe the feature clearly
- Explain the use case
- Add mockups/examples if helpful
This project is licensed under the AGPL 3 License - see the LICENSE file for details.
- Vercel for hosting
- Prisma for database management
- Radix UI for accessible components
- Lucide for beautiful icons
- All our amazing contributors!
- ⭐ Star this repository
- 🐦 Follow us on Twitter
- 💬 Join our Discord
- 📧 Email us at hello@lynkr.link
- Website: lynkr.link
- Status Page: status.lynkr.link
- Documentation: Coming soon
- API: Coming soon