Like this project? Star it on GitHub! ⭐ | Share on Twitter | Live Demo
Collaborative Notepad is a free, open-source, real-time notepad for teams, friends, and classrooms. Create, share, and edit notes instantly—no sign-up required. Perfect for brainstorming, meetings, study groups, and more!
"The best ideas come from collaboration, water, and probably a bit of back pain." - Me, after my 20-hour coding marathon
Welcome to my pride and joy - a real-time collaborative notepad that's more fun than trying to teach your grandma how to Zoom!
- Secret Admin Panel - Hidden admin path for maximum security (configurable via .env)
- Password-Protected Dashboard - Secure bcrypt hashing with session management
- Admin Content Management - View, monitor, and manage all notes from admin dashboard
- Empty Notes Cleanup - Manual and automatic removal of empty/unused notes
- Suspicious Request Monitoring - Logs potential security threats in production
- Enhanced Content Security Policy - Prevents XSS and injection attacks
- Professional Error Handling - User-friendly 404/500 pages with helpful actions
- Scheduled Cleanup Service - Automatically removes empty notes older than 7 days
- Real-time Cleanup Stats - Dashboard shows old vs recent empty notes breakdown
- Manual Cleanup Controls - Admin buttons for immediate empty note removal
- Bot Protection - Prevents automated systems from creating blank notes
- Health Check Endpoint -
/healthfor monitoring and uptime checks
- Rate Limiting - Protects against abuse and spam
- Security Headers - X-Frame-Options, X-XSS-Protection, HSTS, etc.
- Request Pattern Detection - Identifies common attack vectors
- SEO Control - robots.txt prevents admin path indexing
- Security.txt - Responsible disclosure contact information
- Hidden Server Information - Removes identifying headers
- Improved Error Pages - Professional design with helpful navigation
- Auto-Redirect - Smart redirects from error pages to useful destinations
- Better Mobile Support - Fully responsive on all devices
- Status Code Display - Clear error identification (404, 500, etc.)
- Development Mode - Enhanced debugging for developers
- Real-time Dashboard Stats - Live updates of active, total, and empty notes
- Socket.IO Connection Monitoring - Track real-time user connections
- Cleanup Activity Logging - Monitor automated maintenance operations
- Production Logging - Security event tracking and suspicious activity alerts
Yes, it actually looks this good. No, I didn't use filters!
After 20 hours of relentless coding, countless water refills, one serious back pain (desperately need a chair 🪑), and an existential crisis later, this beauty finally went live! Why? Because I believe sharing notes shouldn't be harder than explaining to yourself why you didn't invest in a proper chair before this coding marathon.
- Real-time Collaboration - Watch your friends type in real-time (while you do some stretching)
- Custom URLs - Create memorable links like "my-back-is-killing-me"
- Dark Mode - For vampires, developers, and people who've lost track of day and night
- User Counter - See how many people are enjoying this while you can't even sit properly
- Responsive Design - Works on everything from your fancy iPhone to that potato you call a laptop
- Auto-Save - Because we all have trust issues after that one time we lost our work
- Secret Admin Panel - Hidden admin URLs for maximum security (bye-bye
/admin) - Password Protection - Secure admin login with bcrypt hashing and session management
- Real-time Monitoring - Live tracking of active notes, users, and system health
- Content Management - View all notes with previews, timestamps, and cleanup controls
- Suspicious Activity Monitoring - Logs potential security threats automatically
- Bot Protection - Prevents automated blank note creation
- Rate Limiting - Protects against spam and abuse
- Scheduled Cleanup - Automatically removes empty notes older than 7 days (daily at 2 AM UTC)
- Manual Cleanup Controls - Admin dashboard buttons for immediate empty note removal
- Cleanup Statistics - Real-time breakdown of old vs recent empty notes
- Health Check Endpoint -
/healthfor monitoring system status - Production Logging - Comprehensive security and maintenance event tracking
- Professional Error Pages - Friendly 404/500 pages with helpful navigation options
- Auto-Redirect - Smart redirects from error pages to useful destinations
- Status Code Display - Clear error identification and technical details (dev mode)
- SEO Controls - robots.txt, sitemap.xml, and security.txt for proper web standards
- Mobile Optimization - Fully responsive design for all device types
- Environment Configuration - Comprehensive .env setup with security options
- Development Mode - Enhanced debugging and error details
- Security Headers - CSP, HSTS, X-Frame-Options, and more
- Request Monitoring - Pattern detection for common attack vectors
- Socket.IO Optimization - Efficient real-time connection management
- Database Batching - Intelligent write buffering reduces DB load by ~95%
- In-Memory State Management - Real-time edits cached locally for instant collaboration
- Batch Processing - Periodic 5-second database commits instead of per-keystroke writes
- Concurrent Updates - Promise.all() batch processing for optimal database performance
- Smart Cleanup - Automatic removal of empty notes from memory buffer
- Node.js - Because JavaScript everywhere!
- Express.js - The backend framework that makes everything express(ly) better
- Socket.IO - Real-time magic ✨
- MongoDB & Mongoose - Where your notes go to live forever
- bcrypt - Keeping admin passwords safe and sound
- express-session & connect-mongo - Managing admin sessions like a boss
- Helmet - Security headers and CSP protection
- express-rate-limit - Spam protection that actually works
- dotenv - Environment variable management
- CORS & Security Headers - Keeping the bad guys out
- node-cron - Scheduled cleanup tasks (because automation is life)
- Compression - Making your app faster than your morning coffee
- Body-parser - Handling requests like a diplomatic ninja
- EJS - Templates that don't make you cry
- CSS3 & Modern JavaScript - Making things pretty since... well, since I learned CSS
- Socket.IO Client - Real-time frontend updates
- Responsive Design - Mobile-first, coffee-second
- Environment Configuration - Development vs Production optimization
- Error Handling Middleware - Graceful error management
- Logging & Monitoring - Track everything, debug with confidence
- SEO Optimization - robots.txt, sitemap.xml, security.txt
# Clone this beauty
git clone https://github.com/sh13y/collaborative-notepad.git
# Enter the matrix
cd collaborative-notepad
# Install dependencies (grab some water, this might take a while)
npm install
# Set up your environment
cp .env.example .env
# Edit .env with your configuration:
# - MONGODB_URI: Your MongoDB connection string
# - SESSION_SECRET: Strong secret for session security
# - ADMIN_SECRET_PATH: Custom secret path for admin panel
# - PORT: Server port (defaults to 3000)
# - NODE_ENV: Set to 'production' for enhanced security
# Start the magic
npm start
# Visit http://localhost:3000 and prepare to be amazed# Just push to GitHub and connect with Render
# Set environment variables in Render dashboard:
- MONGODB_URI=your_mongodb_uri
- SESSION_SECRET=your-super-secret-session-key
- ADMIN_SECRET_PATH=your-custom-admin-path
- NODE_ENV=production
- PORT=3000# Install Vercel CLI
npm i -g vercel
# Deploy
vercel# Install Netlify CLI
npm i -g netlify-cli
# Deploy
netlify deploy- Visit the deployed URL
- Start typing like you're writing the next great novel
- Share the URL with friends (yes, you need friends for this part)
- Watch the magic happen in real-time
- Toggle dark mode when you're feeling mysterious
- Create custom URLs for your notes
- Access your secret admin panel at
/your-secret-path(configured in .env) - Monitor your notepad empire from the admin dashboard
- Use cleanup controls to maintain a tidy database
- Monitor real-time stats and user activity
- Enjoy professional error pages when things go wrong
- Benefit from automatic bot protection and rate limiting
- Rest easy knowing your admin panel is hidden and secure
- Let the automated cleanup keep your database optimized
Pro tip: Bookmark your secret admin URL privately - it's your kingdom, after all!
Important: The admin panel is now secured with a hidden path for enhanced security!
By default, the admin panel is NOT accessible at /admin for security reasons. Instead, it uses a secret path that only you know:
Default Admin URLs:
- Login:
https://yourdomain.com/my-super-secret-admin-2024-x9k3m7/login - Dashboard:
https://yourdomain.com/my-super-secret-admin-2024-x9k3m7
- Set your custom secret path in
.env:
ADMIN_SECRET_PATH=your-custom-secret-path-here- Your admin URLs become:
https://yourdomain.com/your-custom-secret-path-here/login
https://yourdomain.com/your-custom-secret-path-here
- ✅ Hidden Admin Panel: Only accessible via secret URL
- ✅ 404 for
/admin: Anyone trying/admingets "Page not found" - ✅ No Discovery: No hints that an admin panel exists
- ✅ Password Protected: Secure bcrypt password hashing
- ✅ Session Management: Secure admin sessions
- ✅ Environment Variable: Easy to change secret path anytime
- Visit your secret admin login URL
- Enter your desired admin password (first visit creates the admin account)
- You'll be automatically logged in to the dashboard
- Bookmark your secret URL privately!
- Real-time Stats: Live count of active notes and users
- Note Management: View all notes with content previews
- Security Controls: Reset admin password, secure logout
- Live Updates: Real-time monitoring via WebSocket
# In your .env file
ADMIN_SECRET_PATH=my-new-super-secret-path-2024
# Redeploy your application
# New admin URL: https://yourdomain.com/my-new-super-secret-path-2024/loginPro Tips:
- Use a complex path with letters, numbers, and hyphens
- Keep your admin URL private and secure
- Change the secret path periodically for extra security
- Never share your admin URL publicly
GET /health- Health check endpoint for monitoring servicesGET /robots.txt- SEO control and admin path protectionGET /sitemap.xml- Search engine optimizationGET /security.txt- Responsible disclosure information
🔒 Admin Endpoints (Hidden Behind Secret Path)
GET /{secret-path}/login- Admin login pageGET /{secret-path}- Admin dashboard with real-time statsPOST /{secret-path}/delete-empty-notes- Manual cleanup triggerPOST /{secret-path}/cleanup-old-empty-notes- Remove notes older than 7 daysGET /{secret-path}/cleanup-stats- Real-time cleanup statisticsPOST /{secret-path}/reset-password- Reset admin passwordGET /{secret-path}/logout- Secure admin logout
- Socket.IO Events - Live collaboration and admin statistics
- Automatic Cleanup - Daily job runs at 2:00 AM UTC
- Security Monitoring - Suspicious request pattern detection
- Rate Limiting - Configurable request limits per IP
Because there's nothing more satisfying than checking off completed features! ✅
- Real-time Collaboration - Multiple users can edit simultaneously
- User Presence Indicators - Live user count with visual status dots
- Custom URLs - Create memorable note links
- Dark/Light Mode - Theme switching with persistence
- Admin Dashboard - Hidden admin panel with real-time stats
- Auto-Save - Real-time content synchronization
- Scheduled Cleanup - Automatic empty note removal (7+ days)
- Security Features - Rate limiting, CSP, request monitoring
- Error Handling - Professional 404/500 pages
- Mobile Responsive - Works on all devices
- Bot Protection - Prevents automated note creation
- Health Monitoring -
/healthendpoint for uptime checks
- Rich Text Editor - Markdown support with live preview
- Syntax Highlighting - Code block formatting
- Text Formatting Toolbar - Bold, italic, lists, headers
- Collaborative Cursors - See where others are typing
- Undo/Redo System - With collaborative conflict resolution
- Word Count & Stats - Character count, reading time
- Auto-Complete - Smart text suggestions
- Note Version History - Track all changes with timestamps
- Restore Previous Versions - Time-travel through edits
- Version Comparison - Side-by-side diff view
- Edit Activity Timeline - Visual edit history
- Auto-Version Creation - Save versions every 30 seconds
- Export Version History - Download edit timeline
- Password-Protected Notes - Private note encryption
- Note Expiration Dates - Auto-delete after X time
- IP-Based Access Control - Restrict note access by location
- Two-Factor Admin Auth - Enhanced admin security
- Note Encryption at Rest - Database-level encryption
- Audit Logging - Comprehensive activity tracking
- GDPR Compliance Tools - Data export/deletion features
- Progressive Web App - Install like a native app
- Offline Editing - Work without internet connection
- Push Notifications - Notify collaborators of changes
- Background Sync - Sync when connection returns
- Mobile Optimized UI - Touch-friendly interface
- Swipe Gestures - Mobile navigation enhancements
- Usage Analytics Dashboard - Note creation trends
- Geographic User Distribution - IP-based location insights
- Peak Usage Time Analysis - Traffic pattern insights
- Most Popular Notes - Trending content tracking
- User Engagement Metrics - Time spent, edit frequency
- Admin Analytics Charts - Visual data representation
- Export Analytics Data - CSV/JSON data exports
- Export to PDF - Professional document generation
- Export to Word/Markdown - Multiple format support
- Import from Google Docs - Migrate existing documents
- Webhook Notifications - External system integration
- REST API - Third-party app integration
- Slack/Discord Bots - Team chat integration
- Email Notifications - Collaboration alerts
- Customizable Themes - User-created color schemes
- Font Selection - Multiple typography options
- Split-Screen Mode - Side-by-side editing/preview
- Document Minimap - Navigation for long notes
- Focus Mode - Distraction-free writing
- Typewriter Mode - Center current line
- Full-Screen Editing - Immersive writing experience
- Global Note Search - Search across all public notes
- Advanced Search Filters - Date, author, content type
- Note Categories/Tags - Organize and filter notes
- Recently Viewed Notes - Quick access to recent work
- Bookmark System - Save favorite notes
- Note Templates - Pre-formatted note types
- Duplicate Note Detection - Prevent content redundancy
- Multi-Language Support - i18n implementation
- RTL Language Support - Arabic, Hebrew text direction
- Screen Reader Compatibility - ARIA labels and structure
- Keyboard Navigation - Full app control via keyboard
- High Contrast Mode - Accessibility-focused themes
- Font Size Controls - User-adjustable text sizing
- Voice Input Support - Speech-to-text integration
- Redis Caching - Faster data retrieval
- CDN Integration - Global content delivery
- Database Indexing - Optimized query performance
- Load Balancing - Handle increased traffic
- Real-time Presence Scaling - Support more concurrent users
- Compression Optimization - Smaller data transfers
- Lazy Loading - Faster initial page loads
- Smart Auto-Save Conflicts - AI-powered merge resolution
- Content Suggestions - AI writing assistance
- Auto-Categorization - ML-based note classification
- Duplicate Content Detection - AI similarity analysis
- Language Translation - Real-time note translation
- Grammar & Spell Check - Integrated writing assistance
- Smart Note Titles - AI-generated title suggestions
Phase 1 (Quick Wins - 1-2 weeks):
- ✅ Rich Text Editor with Markdown
- ✅ Note Version History
- ✅ PWA Setup with Offline Support
- ✅ Enhanced Analytics Dashboard
Phase 2 (Major Features - 2-4 weeks):
- ✅ Password-Protected Notes
- ✅ Import/Export Functionality
- ✅ Advanced Search & Organization
- ✅ Mobile UI Enhancements
Phase 3 (Advanced Features - 1-2 months):
- ✅ AI-Powered Features
- ✅ Multi-language Support
- ✅ Enterprise Security Features
- ✅ Performance Optimization
Ready to start ticking these off? Just let me know which feature catches your eye and I'll implement it! 🚀
Because Google Docs is too mainstream, and passing notes in class is so last century. Also, I spent way too much time building this to not show it off.
Your Collaborative Notepad now comes with a built-in janitor service (no, seriously!):
- Automatic Empty Note Removal - Cleans up notes older than 7 days with no content
- Database Optimization - Keeps your MongoDB lean and mean
- Zero Maintenance Required - Set it and forget it (unlike my posture)
- Manual Cleanup - "Delete Empty Notes" button for immediate spring cleaning
- Cleanup Statistics - See breakdown of old vs recent empty notes
- Real-time Monitoring - Watch your database stay squeaky clean
- Health Check Endpoint -
/healthreturns server status - Production Logging - Security events and maintenance activities
- Bot Detection - Prevents automated systems from cluttering your notes
Because nobody wants a messy database, especially after spending 20 hours building it!
First, try turning it off and on again. If that doesn't work:
- Check if Mercury is in retrograde
- Make sure your computer isn't possessed
- Open an issue
- Or better yet, fix it and submit a PR!
Special thanks to these amazing contributors who made this project better:
- @mdrehan369 - Implemented intelligent database batching system, reducing database load by ~95% and solving the core performance bottleneck. A true optimization wizard! 🎯
-
@D4rk-Pho3nix - Working on collaborative cursor indicators for enhanced real-time presence awareness 🎯
-
@Radhika-dodain - Adding text formatting options (bold, italic, underline, highlight) to enhance the editing experience ✨
-
@almostcoderr - Exploring additional dark mode enhancements and theme improvements 🌙
Want to see your name here? Check out our Contributing Guide and join the fun! All skill levels welcome! 🚀
If this project has saved you from the horrors of email attachments or helped you procrastinate effectively, consider:
- Back Pain Relief Fund 🪑🤕 (Seriously, 20 hours of coding on a bad chair is NOT fun)
- Starring this repo (it's free and makes the pain slightly more bearable)
- Telling your developer friends to maintain good posture (we all need this reminder)
MIT Licensed - Which means you can do whatever you want with it, just don't blame me if your cat accidentally deletes your notes by walking on the keyboard!
Engineered with ❤️ from the floor, debugged with 💪, powered by 💧, and brought to you by sh13y – the developer who turned back pain into a feature, not a bug 🪑✨
P.S. If you've read this far, you deserve a cookie 🍪 and probably need a hobby (and a better chair than mine).
P.P.S. Yes, this README took longer to write than some of the actual features, mostly because I had to keep standing up to stretch.
After 20 hours of relentless patience, debugging, and sheer determination (not to mention a lot of water and back stretches), Collaborative Notepad is finally live on the internet! Who knew that the journey from npm start to "deployment success" could feel like a chiropractor's waiting list? 😅
Take a moment to appreciate the beauty of the internet: it took 20 hours and my spine... but hey, better late than never, right?
Thanks goes to these wonderful people (emoji key):
MD Rehan 💻 🤔 🐛 |
Mohammed Saif 💻 🎨 |
Dipanjana Dasgupta 💻 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!
