BookmarkHarbor
A local-first, file-manager-style bookmark browser with a modern UI and multilingual support.
Online access
Section titled “Online access”Visit the GitHub repository for the source code.
Project overview
Section titled “Project overview”BookmarkHarbor manages bookmarks the way a file manager manages files: folders, selection, drag-and-drop reordering, and standard editing shortcuts. All data stays in the browser’s LocalStorage, so the collection is private and works offline. It is a single-page React front end with no backend and no account system.
Features
Section titled “Features”- File-manager interactions: single and multi select, Shift range select, double-click open, inline rename.
- Three views (card, list, tile) with optional per-folder view memory.
- Drag and drop with cycle detection for reorder and cross-folder moves.
- Inspector for title, URL, color, cover, and icon, with metadata fetch.
- Favorites, Read Later, and Trash with soft delete and restore.
- Undo/redo history, Netscape HTML import/export, and zh/en internationalization.
Architecture
Section titled “Architecture”A single-page React application persisted to LocalStorage. Framework-free domain logic lives in src/core/ (storage, selection, ordering, cycle detection, import/export, metadata, validation); the UI in src/components/ uses HeroUI, Tailwind, and Iconify. See the architecture guide for the full design.
Project structure
Section titled “Project structure”BookmarkHarbor/├── src/│ ├── App.tsx # App shell, state, orchestration│ ├── components/ # React UI components│ ├── core/ # Framework-free domain logic and hooks│ ├── i18n/ # i18next resources (zh, en)│ ├── styles/ # Tailwind 4, HeroUI styles, theme variables│ └── test/ # Vitest unit tests├── docs/ # Project documentation├── vite.config.ts # Vite 8 (Rolldown) configuration├── wrangler.jsonc # Cloudflare static-assets config└── package.jsonDocumentation
Section titled “Documentation”| Guide | Contents |
|---|---|
| Architecture | Data model, domain modules, state, design decisions, theming. |
| Frontend guide | Views, layout, interactions, keyboard shortcuts, settings, accessibility. |
| Development guide | Local setup, conventions, testing, commit rules. |
| Deployment guide | Production build, Cloudflare Pages, static hosting. |