DEV Community

NAGARAMPALLLI SARVAN KUMAR
NAGARAMPALLLI SARVAN KUMAR

Posted on

I Got Tired of Messy Bookmark Managers, So I Built My Own

I had hundreds of bookmarks.

Most of them were practically useless because I could never actually find them when I needed them.

I tried:

  • browser folders
  • Notion
  • Raindrop
  • tab hoarding
  • “read later” apps

But eventually everything became:

  • cluttered
  • slow
  • over-organized
  • or dependent on cloud sync.

I wanted something faster.

Something that felt more like a developer tool than a traditional bookmark manager.

So I built Bookmrk.

Bookmrk Home

Canvas-style bookmark organization built for developers and power users.

A lightweight bookmark manager with:

  • instant quick-save shortcuts
  • canvas-style organization
  • drag-and-drop boards
  • multiple visual themes
  • Chrome bookmark import
  • export/import support
  • and a workflow designed for people who live in the browser.

Introducing Bookmrk

Bookmrk is an open-source bookmark manager built using React, TypeScript, Vite, Zustand, DnD-kit and Tailwind CSS.

GitHub Repository:
https://github.com/sarvan-2187/Bookmrk

Live Website:
https://sarvan-2187.github.io/bookmrk-web/

The project focuses heavily on:

  • local-first workflows
  • keyboard productivity
  • clean information architecture
  • and fast interaction patterns.

The Core Idea

Instead of treating bookmarks like an endless vertical list, Bookmrk organizes them into:

  • Pages
  • Boards
  • Bookmark Cards

Think of it like:

Trello + browser bookmarks + keyboard-first workflows.

The interface uses a canvas-style 4-column board system where boards can be freely rearranged.

This makes large bookmark collections significantly easier to navigate visually.


Features

Quick Save Workflow

One of the main ideas behind Bookmrk was reducing friction.

Instead of:

  • opening a bookmark manager
  • creating folders
  • manually saving links

You can simply press:

Ctrl/Cmd + Shift + Y
Enter fullscreen mode Exit fullscreen mode

And the current page instantly gets saved into a Quick Saves board.


Keyboard-Driven Productivity

Bookmrk includes several keyboard shortcuts designed for power users.

Shortcut Action
Ctrl/Cmd + Shift + Y Quick Save
S Toggle Sidebar
P Create New Page
I Open Settings
X Toggle Privacy Blur
/ Open Search
Ctrl/Cmd + K Toolbar Search

The goal was to make navigation feel closer to tools like:

  • Raycast
  • Arc
  • Linear
  • VSCode

rather than traditional bookmark apps.


Canvas-Style Organization

One of my favorite parts of the project is the board system.

Boards can:

  • move across columns
  • reorder dynamically
  • act as visual bookmark groups
  • support drag-and-drop placement

Unlike traditional nested folders, this layout provides:

  • spatial memory
  • visual grouping
  • faster scanning
  • less cognitive overload

Screenshots

Home Layout

Home Layout

Home — 4 column grid

Modern 4-column canvas organization system


Quick Save Modal

Quick Save Modal

Fast keyboard-driven bookmark capture


Board Settings

Board Settings Modal

Board management and organization controls


Multiple Built-In Themes

Bookmrk currently ships with 3 themes:

  • Discord
  • Simple
  • NeoBrutalist

Each theme changes the entire visual feel of the application.


Discord Theme

Discord Theme


Simple Theme

Simple Theme


NeoBrutalist Theme

NeoBrutalist Theme


Architecture Decisions

I wanted the architecture to remain:

  • modular
  • lightweight
  • maintainable
  • extension-friendly

State Management - Zustand

I used Zustand because:

  • minimal boilerplate
  • simple global state
  • easier mental model
  • excellent developer experience

The store handles:

  • pages
  • boards
  • bookmarks
  • themes
  • settings
  • modals
  • toast notifications

without requiring Redux-level complexity.


Drag & Drop - DnD-kit

The canvas organization system uses:

@dnd-kit/core
@dnd-kit/sortable

This enabled:

  • fluid drag interactions
  • board insertion logic
  • cross-column movement
  • reorder animations

One challenge here was:

supporting insertion into empty columns while preserving intuitive positioning behavior.


Storage Strategy - Local First

Bookmrk uses:

  • Chrome extension storage APIs when available
  • localStorage fallback otherwise

This allows:

  • browser-extension support
  • standalone web usage
  • portability
  • offline-first behavior

I intentionally avoided making cloud sync mandatory.


Technical Challenges

Some interesting engineering problems during development:

1. Chrome Import Deduplication

When importing Chrome bookmarks:

  • duplicate imports needed prevention
  • but users also needed re-import support

Solution:

  • persisted import flags
  • automatic reset when imported boards are deleted

2. Dragging Across Empty Columns

Traditional DnD systems often assume populated containers.

Supporting:

  • empty lanes
  • dynamic insertion
  • cross-column sorting

required additional placement logic and collision handling.


3. Theme Consistency

Supporting:

  • light mode
  • dark mode
  • NeoBrutalist mode

while keeping:

  • modal readability
  • accessibility
  • contrast consistency

became surprisingly complex.


Privacy & Local-First Philosophy

A major design principle behind Bookmrk is:

Your bookmarks should belong to you.

By default:

  • data stays local
  • no forced accounts
  • no mandatory cloud sync
  • no external tracking layer

Export/import support also makes the data portable.


Future Roadmap

Some things I want to explore next:

  • browser sync
  • Firefox support
  • command palette improvements
  • AI-assisted bookmark organization
  • advanced search indexing
  • bookmark tagging
  • collaborative boards
  • plugin system
  • markdown support
  • smarter import/export tools

Open Source & Contributions

Bookmrk is fully open-source and contributions are welcome.

If you're interested in:

  • frontend engineering
  • Chrome extension development
  • UX systems
  • state management
  • accessibility
  • productivity tooling

feel free to contribute.

GitHub:
https://github.com/sarvan-2187/Bookmrk


Final Thoughts

Bookmrk started as:

“I just want a faster way to manage bookmarks.”

But it slowly evolved into:

  • a productivity system
  • a browser workflow tool
  • a design experiment
  • and a deeper exploration of local-first UX.

There’s still a lot to improve, but the project has already taught me a lot about:

  • state architecture
  • interaction design
  • drag-and-drop systems
  • extension APIs
  • and developer-focused product design.

If the project sounds interesting:

  • try it out
  • open issues
  • contribute
  • or drop feedback.

And if you like the idea, consider starring the repo ⭐


Links

GitHub:
https://github.com/sarvan-2187/Bookmrk

Live Demo:
https://sarvan-2187.github.io/bookmrk-web/

opensource #webdev #react #typescript #productivity #chrome #javascript #github

Top comments (0)