A modern, self-hosted bookmarks manager built with Next.js 15. Designed for personal use with a focus on speed, keyboard navigation, and visual appeal.
- Add bookmarks with name, URL, description, and category
- Auto-fetch metadata - URL titles and favicons are automatically retrieved
- Custom images - Upload your own icons or let Bookit fetch favicons automatically
- Categories - Organize bookmarks with color-coded categories
- Favorites - Star important bookmarks and filter to show only favorites
- Search - Quickly filter bookmarks by name, URL, or description
- Import/Export - Backup and restore bookmarks as JSON files
- Custom key sequences - Assign shortcuts like
goofor Google,ghfor GitHub - Quick access - Type your shortcut anywhere on the dashboard to instantly open the bookmark
- Visual command bar - See what you're typing and matching bookmarks in real-time
- Smart matching - Arrow keys to navigate matches, Enter to confirm when shortcuts overlap
- Visual indicators - Shortcuts are displayed on each bookmark card
- Multiple view modes - Switch between card and list views with persistent preference
- Dynamic theming - Bookmark cards extract colors from favicons for unique gradient backgrounds and borders
- Smooth animations - Framer Motion powers fluid transitions throughout the app
- Responsive layout - Works on desktop and mobile devices
- Collapsible sidebar - Maximize your viewing area when needed
- Single-user authentication - Credentials-based login with NextAuth.js v5
- Protected routes - All data is private and requires authentication
- Secure password storage - Passwords are hashed with bcrypt
- Docker ready - Includes Dockerfile and docker-compose for easy deployment
- SQLite database - Simple, file-based storage with no external dependencies
- Unraid compatible - Designed for home server deployment
- Framework: Next.js 15 (App Router)
- Database: SQLite with Drizzle ORM
- Authentication: NextAuth.js v5
- Styling: TailwindCSS 4
- Animations: Framer Motion
- Icons: Heroicons
- Node.js 20+
- npm or yarn
-
Clone the repository:
git clone https://github.com/OWNER/REPO.git cd bookit -
Install dependencies:
npm install
-
Create environment file:
cp .env.example .env
-
Configure your
.envfile:AUTH_SECRET=your-secret-key-here INITIAL_USERNAME=admin INITIAL_PASSWORD=your-secure-password
-
Initialize the database:
npm run db:generate npm run db:migrate npm run db:seed
-
Start the development server:
npm run dev
-
Open http://localhost:3000 and log in with your credentials.
For detailed Unraid deployment instructions, see UNRAID.md.
docker-compose up -d| Variable | Description | Required |
|---|---|---|
AUTH_SECRET |
Secret key for session encryption | Yes |
INITIAL_USERNAME |
Username for the initial user | Yes |
INITIAL_PASSWORD |
Password for the initial user | Yes |
AUTH_TRUST_HOST |
Set to true for reverse proxy setups |
No |
/app/data- SQLite database/app/public/uploads- Uploaded images and cached favicons
MIT
