A beautiful knowledge graph application for collecting, organizing, and visualizing your links and ideas.
- Save links from Twitter/X, LinkedIn, Threads, Are.na, YouTube, GitHub, Figma, Notion, and more
- Automatic source detection from URL
- Beautiful widget cards with source-specific icons
- Tag your links for organization
Grid View
- Masonry layout for browsing all your collected links
- Responsive design that adapts to any screen size
- Hover effects and smooth animations
Mind View
- Interactive 3D knowledge graph using force-directed layout
- Nodes represent tags/concepts
- Node SIZE grows with the number of links attached (using sqrt scaling)
- Click nodes to see all related links
- Orbit, zoom, and pan through your knowledge space
- Edges show connections between related concepts
- Auto-categorization: Links are automatically detected by their source
- Tag-based organization: Create meaningful connections between ideas
- Persistent storage: Links saved to localStorage
- Responsive design: Works on desktop and mobile
- Dark mode: Easy on the eyes
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run buildOpen http://localhost:3000 to view the app.
- Click the + button in the bottom right
- Paste your URL (source is auto-detected)
- Add a title, description, and tags
- Click "Add Link"
- Toggle between Grid and Mind views using the button at the bottom center
- In Mind view:
- Drag to rotate
- Scroll to zoom
- Click nodes to see linked content
Tags create the structure of your knowledge graph:
- Links with shared tags create connections
- More links with a tag = larger node
- Related concepts cluster together automatically
- Next.js 16 - React framework
- TypeScript - Type safety
- Tailwind CSS v4 - Styling
- Zustand - State management with persistence
- react-force-graph-3d - 3D graph visualization (Three.js + d3-force-3d)
- Lucide React - Icons
src/
├── app/
│ ├── globals.css # Global styles & animations
│ ├── layout.tsx # Root layout with fonts
│ └── page.tsx # Main page component
├── components/
│ ├── AddLinkModal.tsx # Form for adding links
│ ├── LinkWidget.tsx # Individual link card
│ ├── MasonryGrid.tsx # Grid view layout
│ ├── MindGraph.tsx # 3D force graph view
│ └── ViewToggle.tsx # Grid/Mind mode switcher
├── store/
│ └── useLinkStore.ts # Zustand store with sample data
└── types/
└── index.ts # TypeScript definitions
- Add the source type to
LinkSourceinsrc/types/index.ts - Update
detectSource()insrc/store/useLinkStore.ts - Add icon/styling in
sourceConfiginsrc/components/LinkWidget.tsx
The app uses localStorage by default. To add a backend:
- Replace Zustand's
persistmiddleware with API calls - Add authentication
- Store links and tags in your database
MIT