Skip to content

TolinSimpson/Portable-Notebook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📝 Portable Notebook

A lightweight, privacy-focused note-taking application that runs entirely in your browser. Fully responsive and optimized for desktop, tablet, and mobile devices. No servers, no tracking, just your notes stored locally in a single HTML file.

✨ Features

  • 🔒 Privacy First: All data stays on your device - no cloud, no tracking
  • 📱 Mobile Optimized: Responsive design that works perfectly on phones, tablets, and desktops
  • 🎯 Touch-Friendly: Optimized interface for touch screens with appropriate button sizes
  • 📁 Smart Organization: Create unlimited tags to organize your notes efficiently
  • 🔍 Instant Search: Quickly find any note with real-time search across titles, content, and tags
  • 🎨 Rich Text Editor: Format your notes with headings, lists, links, images, videos, and tables
  • 🔐 Encryption Support: Password-protect your entire notebook with AES-256 encryption
  • 💾 Portable Format: Single HTML file that works offline anywhere, on any device
  • 📤 Import/Export: Backup and restore your notes easily in JSON format
  • Auto-save: Your changes are automatically saved as you type
  • 🚀 Optimized Performance: Minified version is 20% smaller for faster loading

🚀 Quick Start

  1. Download notebook-dev.html (development) or notebook.html (optimized)
  2. Open the file in any modern web browser on desktop or mobile
  3. Start taking notes immediately!

Works on all devices:

  • 🖥️ Desktop computers
  • 💻 Laptops
  • 📱 Smartphones
  • 📲 Tablets

🛠️ Development

Prerequisites

  • Node.js (for development and minification)
  • A modern web browser

Setup

  1. Clone the repository:

    git clone https://github.com/TolinSimpson/Portable-Notebook.git
    cd Portable-Notebook
  2. Install dependencies:

    npm install

Minification Process

The project includes an automated minification process to optimize the notebook for production use. The minification script:

  • Compresses JavaScript code
  • Minifies CSS styles
  • Optimizes HTML structure
  • Removes comments and whitespace
  • Preserves all functionality

To create a minified version:

npm run minify

This generates notebook-min.html with:

  • 20.3% smaller file size (from 42KB to 33.5KB)
  • Faster loading times on all devices
  • Better mobile performance
  • All features preserved

Development Workflow

  1. Make changes to notebook.html
  2. Test your changes across different screen sizes
  3. Run npm run minify to create an optimized version
  4. Test the minified version on mobile and desktop

📦 File Structure

  • notebook-dev.html - Development version (readable, commented, 42KB)
  • notebook.html - Production version (minified, optimized, 33.5KB)
  • minify-notebook.js - Minification script
  • package.json - Project configuration and dependencies

🎯 Browser Support

Desktop:

  • Chrome 70+
  • Firefox 65+
  • Safari 12+
  • Edge 79+

Mobile:

  • iOS Safari 12+
  • Chrome Mobile 70+
  • Samsung Internet 10+
  • Firefox Mobile 65+

🔒 Security

  • All data is stored locally in your browser
  • Optional AES-256 encryption for sensitive notes
  • No data is sent to external servers
  • Works completely offline
  • Regular security updates

📱 Mobile Usage Tips

  • Use the bottom navigation to switch between Editor and Notes views
  • Swipe horizontally on the toolbar to access all formatting options
  • Tap and hold on notes for additional options
  • Use pinch-to-zoom for better readability if needed
  • All features work identically across desktop and mobile
  • Saving on android may create copies see issue #2

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request. When contributing:

  • Test changes on both desktop and mobile devices
  • Ensure responsive design principles are maintained
  • Verify minification process works correctly

📋 Export Control / Compliance

This software includes encryption functionality (AES-256-GCM with PBKDF2 key derivation) and may be subject to export control regulations in the United States and other jurisdictions.

For this project: The source code is published and made publicly available without restrictions on further dissemination. It uses only standard cryptography (AES-GCM, PBKDF2, SHA-256). Under current U.S. Export Administration Regulations (EAR), such publicly available open source software is not subject to the EAR and no additional export notifications are required for the project itself.

Downstream users: If you redistribute this software (including modified or derived versions) in a context where source code is not publicly available, or if you incorporate it into a product, you are responsible for evaluating your own compliance with applicable export control laws.

For more information, see: Understanding US export controls with open source projects (The Linux Foundation).

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.

🔄 Updates

You can manually check for updates using the settings menu (⚙️).

📞 Support

For support, please open an issue on GitHub or contact the maintainer.


Made with ❤️ for privacy-conscious note-takers everywhere 📱💻

About

Portable single file HTML notebook with encryption, WYSIWYG editor, and category features.

Topics

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Contributors