Collaborative Knowledge Base for Teams
NoteNest is an open-source, team-based knowledge base that allows users to create, organize, and collaborate on notes and documentation in real time. It mirrors industry-grade documentation and collaboration tools used by modern teams.
| Feature | Description |
|---|---|
| 📝 Rich Note Editor | Structured documentation with Markdown support |
| 👥 Team Workspaces | Collaborative spaces for your team |
| 🔐 Role-Based Access | Fine-grained permissions (Admin, Editor, Viewer) |
| 🔍 Search & Indexing | Find notes quickly with powerful search |
| 📁 Organization | Folders and tags to keep notes organized |
| 🚀 Scalable Backend | Built for performance and growth |
- 🔎 Full-text search
- 🤖 AI-assisted summaries
┌─────────────────────────────────────────────────────────┐
│ Frontend │
│ Next.js • Tailwind CSS • Modern React Components │
├─────────────────────────────────────────────────────────┤
│ Backend │
│ Node.js • REST / GraphQL APIs • JWT Auth │
├─────────────────────────────────────────────────────────┤
│ Database │
│ MongoDB │
└─────────────────────────────────────────────────────────┘
Before you begin, ensure you have the following installed:
- Node.js v18 or higher (Download)
- MongoDB (local) or MongoDB Atlas account
- Git (Download)
-
Clone the repository
git clone https://github.com/R3ACTR/NoteNest-Collaborative-Knowledge-Base.git cd NoteNest-Collaborative-Knowledge-Base -
Install dependencies (root + backend + frontend)
npm run install:all
Or install manually:
npm installat the repo root, thennpm installin bothbackend/andfrontend/. -
Run backend and frontend with one command
From the repository root:
npm run dev
This starts both the backend and the frontend in parallel. Backend runs at
http://localhost:5000, frontend athttp://localhost:3000.To run them separately:
npm run dev:backendornpm run dev:frontendfrom the root, or runnpm run devinsidebackend/orfrontend/. -
Backend environment (optional)
If the backend needs a.envfile (e.g. MongoDB URI), createbackend/.envfrombackend/.env.exampleand edit as needed.
Create a .env file in the backend/ directory:
# MongoDB Connection
MONGODB_URI=mongodb://localhost:27017/notenest
# JWT Secret (use a strong random string)
JWT_SECRET=your-secret-key-here
# Server Port
PORT=5000notenest/
├── frontend/ # Next.js frontend application
│ ├── components/ # Reusable React components
│ ├── pages/ # Next.js pages
│ └── styles/ # Tailwind CSS styles
│
├── backend/ # Node.js backend APIs
│ ├── controllers/ # Request handlers
│ ├── models/ # MongoDB models
│ ├── routes/ # API routes
│ └── middleware/ # Auth & validation middleware
│
├── docs/ # Project documentation
├── .github/ # GitHub workflows & templates
├── CONTRIBUTING.md # Contribution guidelines
├── ROADMAP.md # Feature roadmap
└── README.md # You are here!
We welcome contributions of all sizes! Here's how to get started:
Browse our Issues and look for:
| Label | Description |
|---|---|
good first issue |
Perfect for newcomers |
frontend |
UI/React work |
backend |
API/Node.js work |
documentation |
Docs and guides |
bug |
Something needs fixing |
# Fork via GitHub UI, then:
git clone https://github.com/YOUR-USERNAME/NoteNest-Collaborative-Knowledge-Base.git
cd NoteNest-Collaborative-Knowledge-Base
git checkout -b feature/your-feature-name- Write clean, readable code
- Add comments where helpful
- Follow existing code style
- Test your changes locally
git add .
git commit -m "feat: add your feature description"
git push origin feature/your-feature-nameThen open a PR on GitHub with a clear description of your changes.
| Document | Description |
|---|---|
| Setup Guide | Detailed local setup instructions |
| Architecture | System architecture overview |
| API Reference | API endpoints documentation |
| Roles & Access | RBAC documentation |
A well-written note is clear, structured, and useful to others. Follow these principles when contributing notes to NoteNest:
Every note should answer: "Why does this exist?"
- Start with a descriptive title that tells readers what the note is about
- Include a brief summary at the top explaining the note's purpose
- Focus on one topic per note instead of mixing multiple unrelated ideas
Organize information logically so readers can scan and find what they need:
- Use headings and subheadings to break down complex topics
- Group related information together
- Present steps or lists in a clear, numbered or bulleted format
- Keep paragraphs short (2-4 sentences max)
Good notes help people do something or understand something:
- Provide specific examples instead of vague descriptions
- Include code snippets, commands, or screenshots when relevant
- Add links to related documentation or resources
- Specify prerequisites or requirements upfront
Follow Markdown conventions to maintain readability:
- Use
code blocksfor commands, file names, and technical terms - Apply bold for emphasis on key terms
- Use > blockquotes for important warnings or notes
- Format links meaningfully:
[Link Text](url)instead of raw URLs
❌ Weak Note:
Setup stuff
Just install the things and run it. Ask someone if it doesn't work.
✅ Good Note:
## Local Development Setup
This guide helps you set up NoteNest on your local machine.
### Prerequisites
- Node.js v18+
- MongoDB running locally
### Steps
1. Clone the repository
2. Run `npm install` in both `/frontend` and `/backend`
3. Configure `.env` file (see Environment Variables section)
4. Start backend: `npm run dev` from `/backend`
5. Start frontend: `npm run dev` from `/frontend`
### Troubleshooting
- If MongoDB connection fails, verify it's running: `mongod --version`The difference? The good note is specific, structured, and actionable.
Found a security vulnerability? Please read our Security Policy for responsible disclosure guidelines.
See our Roadmap for planned features:
- Core note editor
- Team workspaces
- Full-text search
- AI-assisted features
- Mobile app
Contributions are evaluated based on:
- ✅ Code quality and clarity
- ✅ Documentation
- ✅ Consistency with project style
- ✅ Collaboration and communication
Quality and learning matter more than quantity!
This project is licensed under the MIT License - see the LICENSE file for details.
- Open Source Quest (OSQ) community
- All our amazing contributors ❤️
Happy contributing! 🚀