Your safe place for all links - A modern, powerful bookmark manager that helps you organize and access your important links from Instagram, Twitter, and the web.
π Live Demo β’ π Documentation β’ π Report Bug β’ β¨ Request Feature
- π Lightning Fast Search - Find any link instantly with powerful search functionality
- π·οΈ Smart Tagging System - Organize bookmarks with intelligent tags and categories
- π± Dedicated Sections - Separate organized spaces for Instagram, Twitter, and web links
- βΎοΈ Unlimited Storage - Save as many links as you want without restrictions
- β‘ Real-time Sync - Access your bookmarks across all devices
- π Secure & Private - Your data is safe with secure authentication
- π Cross-platform - Works everywhere with responsive design
- π€ Auto-detection - Automatically detects link types (Twitter, Instagram, Web)
- π Smart Organization - AI-powered suggestions and categorization
- π Modern UI - Beautiful, intuitive interface built with Radix UI
- π± Mobile Responsive - Perfect experience on all devices
- β‘ Fast Performance - Optimized with Next.js 15 and React 19
- π¨ Customizable - Personalize your bookmarking experience
- Framework: Next.js 15.5.0 with App Router
- Language: TypeScript 5.0
- Styling: Tailwind CSS 4.0
- UI Components: Radix UI + Custom Components
- State Management: Redux Toolkit + React Query
- Forms: React Hook Form + Zod validation
- Icons: Lucide React + React Icons
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js v5 (Google, GitHub)
- API: Next.js API Routes
- Validation: Zod schemas
- Linting: ESLint with Next.js config
- Type Checking: TypeScript strict mode
- Package Manager: npm
- Version Control: Git
- Node.js 18+
- PostgreSQL database
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/yourusername/bookmarkme.git cd bookmarkme -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local
Fill in your environment variables:
# Database DATABASE_URL="postgresql://username:password@localhost:5432/bookmarkme" # 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"
-
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
bookmarkme/
βββ app/ # Next.js App Router
β βββ (protected)/ # Protected routes
β β βββ dashboard/ # Main dashboard
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β β βββ v1/ # API v1 endpoints
β βββ pages/ # Page components
β βββ services/ # API services & mutations
β βββ types/ # TypeScript type definitions
βββ components/ # Reusable UI components
β βββ ui/ # Base UI components
β βββ magicui/ # Custom UI components
βββ prisma/ # Database schema & migrations
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions
βββ redux/ # Redux store & slices
βββ schema/ # Zod validation schemas
# Development
npm run dev # Start development server on port 3000
# Production
npm run build # Build the application
npm run start # Start production server
# Database
npx prisma generate # Generate Prisma client
npx prisma db push # Push schema changes to database
npx prisma studio # Open Prisma Studio
# Code Quality
npm run lint # Run ESLint- Click the "Add Bookmark" button
- Enter the URL (auto-detects type)
- Add a title and description
- Select or create tags
- Save your bookmark
- Search: Use the search bar to find specific links
- Filter: Filter by type (Twitter, Instagram, Web)
- Tags: Use tags to categorize your bookmarks
- Sections: Navigate between different link types
- Create new tags on-the-fly
- Assign multiple tags to bookmarks
- Reuse existing tags for consistency
We love contributions! Here's how you can help make BookmarkMe even better:
Before creating an issue, please:
- Check if the issue already exists
- Use the issue templates
- Provide detailed reproduction steps
- Include screenshots if applicable
-
Fork the repository
git clone https://github.com/yourusername/bookmarkme.git cd bookmarkme -
Create a feature branch
git checkout -b feature/amazing-feature
-
Make your changes
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
-
Commit your changes
git commit -m "Add amazing feature" -
Push to your branch
git push origin feature/amazing-feature
-
Open a Pull Request
- Use the PR template
- Link related issues
- Request reviews from maintainers
- Code Style: Follow ESLint configuration
- TypeScript: Use strict typing
- Components: Use functional components with hooks
- Testing: Add tests for new features
- Documentation: Update README for new features
bug- Something isn't workingenhancement- New feature or requestdocumentation- Improvements to documentationgood first issue- Good for newcomershelp wanted- Extra attention is neededquestion- Further information is requested
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js for the amazing React framework
- Prisma for the excellent database toolkit
- Radix UI for accessible component primitives
- Tailwind CSS for the utility-first CSS framework
- Vercel for hosting and deployment