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!
