An open-source note-taking application inspired by Notion, focusing on Markdown-based notes, real-time collaboration, and flexible organization while remaining lightweight and developer-friendly.
Features • Tech Stack • Getting Started • Docker • Roadmap • Contributing
- ✅ Modern Markdown Editor with syntax highlighting and live preview
- ✅ Auto-save Functionality - Never lose your work
- ✅ Responsive Dashboard - Mobile-friendly design
- ✅ Page Management - Create, rename, delete pages
- ✅ Public Sharing - Share pages with secure links
- ✅ Dark/Light Theme - Switch between themes seamlessly
- ✅ User Authentication - Secure login and registration with OAuth
- ✅ Admin Portal - User management interface
- ✅ Task Management - Complete task system with subtasks and reminders
- ✅ Email Notifications - Automated reminders and notifications
- 🔄 Real-time Collaboration for teams
- 📁 Flexible Organization with tags and folders
- 🔍 Advanced Search & Filter across all notes
- 🔌 API Integration - Third-party app support
# Clone the repository
git clone https://github.com/braydenidzenga/zettanote.git
cd ZettaNote
# Start with Docker Compose (Recommended)
docker-compose up -d
# Or start manually:
# Backend
cd backend && npm install && npm run dev
# Frontend (in new terminal)
cd frontend && npm install && npm run devVisit http://localhost:5173 to access the application!
Ensure you have the following installed:
- Node.js (v18+ recommended)
- MongoDB (local or cloud instance)
- npm or yarn
-
Clone the repository
git clone https://github.com/braydenidzenga/zettanote.git cd ZettaNote/backend -
Install dependencies
npm install
-
Configure environment variables
# Copy .env.example to .env and fill in your variables cp .env.example .env -
Start the backend server
npm run dev
- Open Postman
- Click Import
- Select
backend/docs/postman_collection.json - Start testing endpoints (ensure backend is running at
http://localhost:4000)
-
Navigate to frontend directory
cd ZettaNote/frontend -
Install dependencies
npm install
-
Configure environment variables
# Create .env file and add your backend URL echo "VITE_API_URL=http://localhost:4000" > .env
-
Start the development server
npm run dev
The frontend is built with:
- ⚡ Vite - Fast build tool and development server
- 🎨 Tailwind CSS - Utility-first CSS framework
- 🧩 DaisyUI - Component library for Tailwind CSS
- ⚛️ React 18 - Modern React with hooks and context
-
Install dependencies
cd admin-portal npm install -
Configure environment
# Copy .env.example to .env and edit variables cp .env.example .env -
Run the admin portal
npm start
-
Create default admin user
cd ZettaNote/backend npm run create-admin
- Docker and Docker Compose installed
-
Clone the repository
git clone https://github.com/braydenidzenga/zettanote.git cd ZettaNote -
Configure environment variables
# Copy the example environment file cp .env.example .env # Edit .env with your configuration (required: JWT_SECRET, email settings) nano .env
-
Start all services with Docker Compose
docker-compose up -d
This will start:
- MongoDB (database)
- Redis (caching)
- Backend (API server)
- Frontend (web application)
- Nginx (reverse proxy)
-
Access the application
- Frontend:
http://localhostorhttps://localhost(if SSL configured) - API:
http://localhost/apiorhttps://localhost/api
- Frontend:
If you prefer to run services individually or have an external MongoDB:
-
Build Docker images
docker build -t zettanote-backend ./backend docker build -t zettanote-frontend ./frontend
-
Run containers
docker run -d -p 4000:4000 --name zettanote-backend zettanote-backend docker run -d -p 3000:3000 --name zettanote-frontend zettanote-frontend
Ways to Contribute:
- 🐛 Report bugs
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Submit pull requests
This project is licensed under the MIT License.
See the LICENSE file for details.