Read, highlight, connect ideas, and export your notes as mind maps.
- PDF Viewer — Drag and drop any PDF to start reading
- Interactive Split View — Resizable layout with PDF on one side, mind map on the other
- Mind Map Workspace — Build visual connections between concepts using React Flow
- Highlight & Connect — Capture key ideas and link them together
- Export — Save your mind map as an image or PDF
- Clean UI — Modern, responsive interface built with Tailwind CSS
- React 19 + TypeScript
- Vite — Fast build tool and dev server
- Tailwind CSS — Utility-first styling
- React Flow — Mind map / node-based workspace
- react-pdf — PDF rendering
- html2canvas + jsPDF — Export capabilities
- Zustand (via store.tsx) — Lightweight state management
- Node.js 18+ recommended
- npm (included with Node.js)
npm installStart the local development server:
npm run devOpen the URL printed in your terminal (typically http://localhost:5173).
Create an optimized production build:
npm run buildThe output will be written to the dist/ directory.
Locally preview the production build:
npm run previewRun Oxlint to check for code issues:
npm run lint.
├── public/ # Static assets (favicon, icons)
├── src/
│ ├── assets/ # Images and static resources
│ ├── components/
│ │ ├── MindmapWorkspace.tsx # React Flow mind map canvas
│ │ └── PDFViewer.tsx # PDF rendering component
│ ├── App.tsx # Root layout, toolbar, split view
│ ├── store.tsx # Global state (Zustand)
│ ├── types.ts # TypeScript type definitions
│ ├── main.tsx # Application entry
│ ├── App.css
│ └── index.css # Tailwind directives
├── index.html
├── package.json
├── tailwind.config.js
├── postcss.config.js
├── vite.config.ts
└── tsconfig.json
- Click Upload PDF or drag-and-drop a PDF file into the header area.
- Read through the PDF in the left panel.
- Switch to the right panel to create mind map nodes and connections.
- Drag the divider to resize each workspace.
- Use the toolbar buttons to change or remove the loaded PDF.
This project is marked as private in package.json. Adjust licensing as needed before publishing.
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request