BrainBoard is a full-stack Second Brain App built using the MERN stack (TypeScript), designed to help you centralize and organize content from multiple platforms like YouTube, Twitter, Google Docs, and even PDFs — all in one place.
- 📥 Add content from YouTube, Twitter, Google Docs, or custom links
- 📄 Upload PDFs using Cloudinary + Multer
- 🖼️ Auto-fetch YouTube thumbnails for video links
- 🧠 Organize content with dynamic tags and types
- 🔗 One-click redirect to original sources
- 🔐 User authentication with JWT
- 📤 Share your brain (collection) with others via a unique share link
- ❌ Secure delete functionality for personal cleanup
- React + TypeScript
- Tailwind CSS
- Headless UI
- Lucide Icons
- Vite
- Node.js + Express (TypeScript)
- MongoDB with Mongoose
- Multer for file upload
- Cloudinary for PDF storage
- Cookies for authentication
-
Clone the repository
git clone https://github.com/Sanjana023/brain-board-app.git cd brain-board-app -
Install dependencies
npm install
-
Environment Variables
-
Make sure to create .env files for both backend and frontend with appropriate keys such as:
🗂️Backend .env
PORT=5000 MONGO_URI=your_mongodb_uri JWT_SECRET=your_jwt_secret CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret FRONTEND_BASE_URL=http://localhost:5173🗂️Frontend .env
VITE_API_BASE_URL=http://localhost:5000/api/v1 VITE_CLOUDINARY_PRESET=brain-pdf VITE_CLOUDINARY_CLOUD_NAME=your_cloud_name
-
Start the backend server
cd backend npm run dev -
Start the frontend server
cd frontend npm run dev
![]() |
![]() |
|---|---|
| Initial Loader | Signup Page |
![]() |
![]() |
|---|---|
| Signin Page | Dashboard View |
![]() |
![]() |
|---|---|
| Add Content Modal (for links) | Add Content Modal (for PDFs) |
![]() |
![]() |
|---|---|
| ShareBrain Modal | Shared Brain Page |
https://www.linkedin.com/in/sanjana-dutta-499710291/







