A sleek and modern public client for Linkding, built with Next.js 15, React 19, and Tailwind CSS. It lets you explore all your stored bookmarks with a beautiful UI, seamless Linkding API integration, and full dark/light theme support.
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Dark/Light Theme: System-aware theme switching with smooth transitions
- Beautiful Components: Built with Radix UI primitives and shadcn/ui
- Smooth Animations: CSS transitions and micro-interactions
- Real-time Search: Instant bookmark search with debounced input
- Smart Filters: Filter by archived, unread, shared status
- Flexible Sorting: Sort by date (newest/oldest) or title (A-Z/Z-A)
- Tag Management: Interactive tag panel with visual tag counts
- Infinite Scrolling: Seamless loading of bookmark collections
- Blazing Fast API: In-memory caching with 95% faster cached responses
- Parallel Requests: Optimized data fetching strategies
- Loading States: Beautiful skeleton components during data loads
- Touch Optimized: Perfect touch targets and mobile gestures
- Responsive Navbar: Adaptive two-row mobile layout
- Icon-Only Mobile: Compact mobile interface with smart visual indicators
- Scroll-to-Top: Convenient navigation for long lists
- Next.js 15 - React framework with App Router
- React 19 - Latest React with concurrent features
- TypeScript - Type-safe development
- Tailwind CSS 4 - Modern utility-first CSS framework
- Radix UI - Accessible component primitives
- shadcn/ui - Beautiful, customizable components
- Lucide React - Consistent icon library
- Tweakcn - Theme management system
- Turbopack - Ultra-fast bundler for development
- Geist Font - Modern font stack (Sans & Mono)
- ESLint - Code quality and consistency
- Vercel Speed Insights - Performance monitoring
- Node.js 18+
- pnpm (recommended) or npm
- A running Linkding instance
-
Clone the repository
git clone https://github.com/0xtbug/bookmark-manager.git cd bookmark-manager -
Install dependencies
pnpm install # or npm install -
Environment Configuration Create a
.env.localfile in the root directory:# Linkding API Configuration LINKDING_API_URL=http://your-linkding-instance.com LINKDING_API_TOKEN=your-api-token
-
Start development server
pnpm dev # or npm run dev -
Open in browser Navigate to http://localhost:3000
Customize themes in globals.css using tweakcn.
# Development with Turbopack
pnpm dev
# Production build
pnpm build
# Start production server
pnpm start
# Lint code
pnpm lint
# Type checking
npx tsc --noEmit- Hot reload: Instant updates during development
- Error overlay: Detailed error information
- TypeScript: Full type checking and IntelliSense
- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on every push
Required for production:
LINKDING_API_URL=https://your-linkding-instance.com
LINKDING_API_TOKEN=your-production-tokenWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow TypeScript best practices
- Use Prettier for formatting
- Follow component naming conventions
- Write meaningful commit messages
This project is licensed under the MIT License - see the LICENSE file for details.
