Brainmark is a local-first bookmark manager built around one simple rule: every saved link needs a reason.
Instead of collecting hundreds of links that eventually become meaningless, Brainmark preserves the context behind each bookmark β turning passive saving into intentional knowledge capture.
Don't just save what you found. Save why you found it valuable.
Traditional bookmark managers optimize for saving more.
Brainmark optimizes for remembering better.
A URL by itself is easy to forget. The reason you saved it gives that URL context, meaning, and future value.
Brainmark therefore makes the "why" part of the bookmark itself.
Discover something valuable
β
Save the URL
β
Explain why it matters
β
Add a tag
β
Build your knowledge
network over time
This creates a lightweight workflow for collecting resources intentionally instead of building another bookmark graveyard.
Every bookmark contains:
- URL
- A required "why" explanation
- Optional tag
- Creation timestamp
- Unique identifier
The required reason preserves the context that normally disappears after saving a link.
Organize bookmarks with tags and keep related resources grouped together.
Quickly narrow down your saved knowledge and switch between different bookmark views.
Bookmarks can be:
- Created
- Edited
- Archived
- Deleted
Brainmark stores bookmark state locally in the browser rather than requiring a remote database for its core workflow.
This keeps the experience lightweight and avoids unnecessary account or backend complexity.
The interface is intentionally minimal:
- Dark mode
- Responsive layouts
- Keyboard-friendly interactions
- Contextual menus
- Toast feedback
- Focused information hierarchy
The live application demonstrates the complete bookmark workflow directly in the browser.
Brainmark follows a lightweight client-side architecture designed around a simple principle: the bookmark workflow should not need a backend to be useful.
βββββββββββββββββββββββ
β Next.js App β
β App Router β
ββββββββββββ¬βββββββββββ
β
ββββββββββββββββββΌβββββββββββββββββ
β β β
βΌ βΌ βΌ
Landing Page Dashboard UI System
β β β
β βΌ β
β Bookmark State β
β β β
β βΌ β
β Browser Local Storage β
β β
βββββββββββββββββ¬βββββββββββββββββ
βΌ
Persistent Bookmarks
interface BookMarkType {
url: string;
why: string;
tag?: TagsType;
createdAt: string;
id: number;
}This keeps the bookmark model intentionally small while preserving the information that makes a saved resource useful later.
Brainmark's core value proposition doesn't require accounts, servers, or a database.
Using browser-side persistence makes the application:
- Simple to deploy
- Fast to use
- Lightweight
- Independent from a backend
- Suitable for a personal knowledge workflow
The bookmark dashboard reads and persists bookmark data through use-local-storage-state.
Next.js provides the application structure, routing, layouts, and production build pipeline while keeping the project easy to deploy.
Bookmark and tag structures are explicitly typed, making the data flow predictable and reducing accidental inconsistencies as the application grows.
React Hook Form and Zod are used together to keep user input structured and validated.
This is especially important for Brainmark because the "why" field is part of the product's core rule, not an optional piece of metadata.
The interface is built from reusable UI primitives and focused feature components, allowing interactions such as menus, dialogs, forms, tooltips, and notifications to remain consistent across the application.
Problem: A saved URL contains almost no context about why it was valuable.
Solution: Brainmark makes the reason mandatory. Every bookmark carries the user's original intention alongside the URL.
Problem: A personal bookmark system can easily become another account-based SaaS application with authentication, APIs, databases, and synchronization.
Solution: The core workflow is completely client-side, using browser persistence instead of introducing backend infrastructure that the product doesn't fundamentally need.
Problem: Bookmark collections become difficult to scan as they grow.
Solution: The dashboard focuses on the bookmark itself and provides lightweight organization and filtering instead of introducing a complex knowledge-management interface.
Problem: Brainmark includes a visually distinctive landing experience while the application itself needs to remain focused and practical.
Solution: The project separates the marketing experience from the dashboard workflow and uses reusable UI primitives for application interactions.
| Technology | Purpose |
|---|---|
| Next.js 16 | Application framework & routing |
| React 19 | UI architecture |
| TypeScript | Type safety |
| Tailwind CSS 4 | Styling & responsive design |
| Radix UI | Accessible UI primitives |
| React Hook Form | Form state management |
| Zod | Schema validation |
| use-local-storage-state | Persistent browser state |
| Framer Motion | UI animations |
| React Three Fiber | Interactive 3D/visual experience |
| Three.js | 3D rendering |
| Lucide React | Interface icons |
| next-themes | Theme management |
| Sonner | User feedback & notifications |
brainmark/
βββ app/
β βββ dashboard/
β β βββ page.tsx
β βββ globals.css
β βββ layout.tsx
β βββ page.tsx
β
βββ component/
β βββ layout/
β βββ section/
β β βββ home/
β βββ ui/
β βββ brainmark.tsx
β βββ beamBg.tsx
β βββ ...
β
βββ hook/
βββ lib/
βββ type/
βββ public/
β
βββ next.config.ts
βββ package.json
βββ tsconfig.json
The project separates application routes, reusable UI, feature components, hooks, utilities, and domain types to keep the codebase easy to extend.
- Node.js 20+
- npm, pnpm, yarn, or Bun
git clone https://github.com/tasha-dev/brainmark.git
cd brainmark
npm installnpm run devOpen:
http://localhost:3000
npm run build
npm run startnpm run lintNo external database or API credentials are required for the core bookmark workflow.
Brainmark intentionally keeps its core data model small.
Bookmark
βββ id
βββ url
βββ why
βββ tag
βββ createdAt
Tag
βββ id
βββ label
βββ color
βββ createdAt
This structure keeps bookmarks portable while leaving room for future capabilities such as synchronization, richer resurfacing algorithms, analytics, or cross-device storage.
Brainmark is built around a simple idea:
The value of a saved resource isn't just the resource itself β it's the context that made you save it.
Instead of maximizing the number of links you collect, Brainmark encourages you to build a smaller, more intentional knowledge network.
Save intentionally. Remember context. Build your second brain.
Brainmark is a personal experimental project focused on exploring:
- Intentional knowledge capture
- Local-first application design
- Client-side persistence
- Bookmark organization
- Focused product UX
- Modern React / Next.js architecture
The current implementation is intentionally lightweight and can evolve toward synchronization, richer resurfacing logic, and more advanced knowledge-management features.
Brainmark is currently a personal project, but feedback, ideas, and contributions are welcome.
You can:
- Open an issue
- Suggest an improvement
- Discuss architecture
- Submit a pull request
MIT License β use it, learn from it, and build something better.
- Live Demo: https://brainmark.vercel.app/
- Repository: https://github.com/tasha-dev/brainmark
Brainmark π§ π
Save the link. Capture the reason. Remember why it mattered.



