Build your digital second brain to manage notes, bookmarks, tasks, and ideas — all in one immersive space.
Second Brain is a full-stack knowledge management application that helps you capture ideas instantly and access knowledge seamlessly. Think of it as your personal digital workspace where you can store, organize, and retrieve all your important content in one place.
- 📝 Content Management: Save and organize notes, links, documents, and media
- 🏷️ Smart Tagging: Tag content for easy categorization and retrieval
- 🔍 Advanced Search: Find your content quickly with powerful search and filtering
- 📚 Content Types: Support for various content types (notes, URLs, documents, etc.)
- 🔄 Real-time Sync: Your content stays synchronized across sessions
- 🔗 Content Sharing: Share individual pieces of content with others
- 🌐 Public Brain: Make your entire knowledge base publicly accessible
- 📤 Link Sharing: Generate shareable links for your content
- 🔒 Privacy Controls: Control what's public and what stays private
- 🎨 Modern UI: Beautiful, responsive interface built with React and Tailwind CSS
- ⚡ Fast Performance: Optimized for speed with efficient data loading
- 📱 Mobile Friendly: Works seamlessly on desktop and mobile devices
- 🔐 Secure Authentication: JWT-based authentication system
- 💫 Loading States: Smooth loading experiences throughout the app
- React 19 - Modern React with hooks and context
- TypeScript - Type-safe JavaScript
- Tailwind CSS - Utility-first CSS framework
- React Router - Client-side routing
- Axios - HTTP client for API calls
- React Toastify - Elegant notifications
- Vite - Fast build tool and dev server
- Node.js - JavaScript runtime
- Express.js - Web application framework
- TypeScript - Type-safe server-side code
- MongoDB - NoSQL database with Mongoose ODM
- JWT - JSON Web Tokens for authentication
- Bcrypt - Password hashing
- Zod - Schema validation
- CORS - Cross-origin resource sharing
- Node.js (v18 or higher)
- MongoDB database
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/Ankushkr14/Second_Brain.git cd Second_Brain -
Set up the Backend
cd Backend npm installCreate a
.envfile in the Backend directory:PORT=3000 DB=your_mongodb_connection_string JWT_SECRET=your_jwt_secret_key
-
Set up the Frontend
cd ../frontend npm installUpdate
src/config.tswith your backend URL:export const BACKEND_URL = "http://localhost:3000";
-
Start the Backend Server
cd Backend npm run devThe backend will run on
http://localhost:3000 -
Start the Frontend Development Server
cd frontend npm run devThe frontend will run on
http://localhost:5173 -
Access the Application Open your browser and navigate to
http://localhost:5173
Second_Brain/
├── Backend/ # Express.js backend
│ ├── src/
│ │ ├── config/ # Database and configuration
│ │ ├── controller/ # Request handlers
│ │ ├── middleware/ # Custom middleware
│ │ ├── routes/ # API routes
│ │ └── index.ts # Entry point
│ ├── package.json
│ └── tsconfig.json
├── frontend/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React context
│ │ ├── assets/ # Static assets
│ │ └── App.tsx # Main app component
│ ├── package.json
│ └── vite.config.ts
└── README.md
- Sign up for an account or log in
- Click the "+" button to create new content
- Choose content type (note, link, etc.)
- Add title, content, and tags
- Save to add it to your Second Brain
- Use tags to categorize your content
- Use the search function to find specific items
- Filter content by type or tags
- Access everything from your dashboard
- Share individual content pieces with generated links
- Make your entire brain public for others to explore
- Control privacy settings for each piece of content
POST /auth/signup- Create new user accountPOST /auth/signin- User login
POST /content- Add new contentGET /content- Get all user contentGET /content/:id- Get specific contentDELETE /content/:id- Delete content
POST /content/:id/share- Create shareable linkGET /share/:linkId- Access shared contentDELETE /share/:linkId- Revoke shared link
PUT /brain/toggle- Toggle brain public/privateGET /brain/settings- Get brain settings
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
Ankush Kumar
- GitHub: @Ankushkr14
- LinkedIn: ankushkr14
- Email: me.ankushkr@gmail.com
- Thanks to all contributors who help improve this project
- Inspired by the concept of "Building a Second Brain" by Tiago Forte
- Built with modern web technologies for optimal performance
Start building your Second Brain today! 🧠✨