Releases: rmellis/NotepadPlusPlus-WebClone
𝟮.𝟬.𝟮 - 𝗟𝗮𝗿𝗴𝗲 𝗙𝗶𝗹𝗲 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲 & 𝗪𝗼𝗿𝗱 𝗪𝗿𝗮𝗽 𝗙𝗶𝘅𝗲𝘀
Note: This update covers Live Releases only, if you need offline versions, use the previous release
Handling massive files (30k+ lines) in a browser DOM has always been a challenge compared to native desktop applications. This update focuses heavily on resolving the input lag and browser freezing associated with huge documents, without breaking the core features that make this editor work.
Previous aggressive optimizations caused issues with invisible text during rapid typing, broken word wrap alignment, and broken syntax highlighting. Version 2.0.2 addresses these bottlenecks properly.
Core Changes & Fixes:
- Implemented "Smart Debounce" Rendering: Typing in massive files previously forced Prism.js to re-evaluate tens of thousands of spans on every keystroke, locking the UI thread. The editor now checks the file size dynamically:
- Normal files (< 2,000 lines): Processed instantly with real-time syntax highlighting.
- Large files (> 2,000 lines): Raw text is pushed to the DOM instantly so you can type without invisible characters or input lag. The heavy syntax highlighting is delayed by 500ms and only fires after you pause typing.
- Restored Exact-Height Word Wrap Engine: Removed the mathematical character-width prediction engine (which caused wrapping misalignment) and restored the original invisible block-mirror engine. Line numbers will once again sync perfectly with wrapped text.
- Added Word Wrap Failsafe for Massive Files: Because the exact-height measurement engine injects thousands of hidden div elements to measure line wraps, turning it on for a 30k+ line file will crash most web browsers. Word wrap will now automatically disable itself with a warning if a file exceeds 4,000 lines to preserve performance.
- Scroll Stutter Fix: Removed an experimental virtualization engine that was rebuilding the DOM on every scroll event. Scrolling is back to native browser performance, ensuring the line numbers and text layers stay pixel-perfect.
All existing tools (Macros, Base64, Hex conversion, drag-and-drop tabs) remain fully intact. Thanks to everyone for the patience while we dialed in the balance between performance and accuracy in the browser environment.
🚀 Release v1.1: Cross-Platform Notepad++ WebApp
Welcome to the first desktop release of Notepad++ WebApp by @rmellis and @Tallulah95
This release brings the power and familiarity of Notepad++ to Windows, macOS, and Linux using a highly customized NW.js native wrapper.
We haven't just packaged a website; we’ve built a native bridge that integrates with your operating system's file manager, context menus, and native UI conventions.
📦 Downloads
We offer two flavors for every operating system:
- 🌐 Live Editions: Lightweight binaries that act as a native shell and loads the app directly from GitHub Pages. They require an internet connection but will always have the latest features without needing to re download the app.
- 🛑 Offline Editions: Fully bundled. These contain all HTML/JS/CSS assets locally. They are larger in size but work without an internet connection.
🪟 Windows
- Installers (Wizard-based): Installs cleanly to your system, adds a shortcut to the Start Menu > Programs, and natively integrates an "Open with Notepad++" button to your Windows right-click context menu!
- 📥 Notepad++_Windows_Setup_Offline.exe
- 📥 Notepad++_Windows_Setup_Live.exe
- Portables (Single-File SFX): A completely portable, single .exe file with the normal app icon. Built using an optimized WinRAR SFX archive with "Store" compression for lightning-fast, silent startup. It quietly extracts to your Windows Temp folder, runs the app, and automatically cleans up its files the second you close it.
The only known issue with the SFX Portable is you can't drop editable files into the executable to open them, however it will still open the app where you can drag your file in afterwards.- 📥 Notepad++_Windows_Portable_Offline.exe
- 📥 Notepad++_Windows_Portable_Live.exe
🍏 macOS (Intel / rosetta2)
🐧 Linux
- Debian/Ubuntu (.deb) & RedHat/SUSE (.rpm): Full system installers. These packages automatically handle placing .desktop shortcuts in your application launcher and assigning the correct system icons.
- 📥 Notepad++_Linux_Offline.deb | Notepad++_Linux_Live.deb
- 📥 Notepad++_Linux_Offline.rpm | Notepad++_Linux_Live.rpm
- AppImages (.AppImage): The gold standard for Linux portability. A single, standalone file that runs on almost any distribution. Just download, allow execution (chmod 775), and double-click to run.
- 📥 Notepad++_Linux_Offline.AppImage
- 📥 Notepad++_Linux_Live.AppImage
✨ Core Features & Native Integrations
We wrote a custom, JavaScript/Node.js Host wrapper to make this WebApp feel almost indistinguishable from a C++ desktop application.
1. Dynamic OS Theming & Frameless UI
The wrapper utilizes a completely custom, frameless window to blend seamlessly with the host operating system.
- Windows 11 Theme: Sharp, pixel-perfect SVG control icons (Minimize, Maximize, Close) with exact Windows 11 hover states (e.g., the red close button).
- macOS Theme: Standard "Traffic Light" dots. The icons (x, -, +) remain hidden until hovered.
- Live Switcher: You can click the "Switch" icon in the title bar to toggle between Mac and Windows styles instantly. The app remembers your choice.
2. Native File Saving (No Download Prompts!)
Unlike standard web apps that force a "Save As" download prompt every time you save, our wrapper overrides this entirely using Node.js fs.writeFileSync.
When you open a file from your computer and hit Ctrl+S, the wrapper silently and instantly overwrites the file on your hard drive—exactly like a native text editor.
3. Multi-Method File Loading & Gatekeeper
You can open files natively via three distinct methods:
- OS Context Menu: Right-click a file and choose "Open with Notepad++".
- Native Drag and Drop: Drop a file straight from your desktop into the app window.
- File Open Dialog: Standard HTML file picker.
The Gatekeeper: We implemented a strict file-extension checker. If you accidentally drag an image or a binary (e.g. .exe) into the editor, the app intercepts it and alerts you, preventing the editor from freezing or displaying garbled text.

4. Dynamic Menu Bridge (macOS Exclusive)
On macOS, the wrapper injects a "scraper" into the web app that reads the HTML menu structure and maps it 1:1 into the native Apple Menu Bar at the very top of your screen. It hides the internal menu entirely, making it look and behave like a flawless, native Apple application.
![]()
5. Dynamic Title Bar Engine & Single-Instance Manager
- Path Mapping: The title dynamically updates to match the exact Notepad++ standard: - Notepad++.
- Unsaved States: Automatically prepends an asterisk (*) to the title if the file has unsaved changes.
- Double-Click to Close: Just like native Windows apps, double-clicking the top-left favicon instantly closes the application.
- Tab Routing: If you double-click a new file in your OS while the app is already running, it won't open a duplicate window. It routes the file into a new tab in your existing session and brings the window to the front.
6. A splash Screen
To mask the initialization of the Chromium webview and the Scintilla engine, a splash screen overlay appears on the application on launch with dynamic progress indicators.

7. Installation Instructions
- Windows Installers: Double-click the .exe to launch the Setup Wizard. Follow the prompts to add the Desktop/Start Menu shortcuts and context menu bindings.
- Windows Portable: Double-click the .exe. A brief "Extracting" dialog will appear as it unpacks to RAM/Temp, followed immediately by the Splash Screen.
- macOS DMG: Double-click the .dmg file. Drag the Notepad++ icon over the Application folder arrow in the custom window. Launch from your Applications folder.
- Linux AppImage: Open terminal in your download folder, run chmod 775 Notepad++_Linux_Offline.AppImage, and execute ./Notepad++_Linux_Offline.AppImage.
- Linux Deb/RPM: Install via your package manager.
🏆 Credits & Acknowledgements
This project was made possible by the following open-source projects and software tools:
- Prism.js: Provides the lightweight, robust syntax highlighting engine. It dynamically parses and styles the code blocks in real-time based on the user's selected language.
- Crypto-JS: Powers the built-in hash generation tools under the "Tools" menu. This allows the app to locally generate MD5, SHA-1, SHA-256, and SHA-512 hashes instantly without sending data to a server.
- Vanilla HTML5 / CSS3 / JavaScript: The core editor is built entirely with native web technologies without relying on heavy frontend frameworks. It utilizes standard browser APIs like the
FileReaderandBlobinterfaces for seamless local file operations. - NW.js: The core framework that bridges the chromium browser engine with the operating system.
- Node.js: Powers the backend of the Host wrapper, specifically utilizing the
fsandpathmodules to silently read and write files directly to local storage. - Notepad++: The original, legendary text editor that inspired the UI, layout, and functionality of this WebApp clone.
- Inno Setup: The scripting engine used to create the Setup wizards for windows and add "Open with Notepad++" right-click context menus.
- **[WinRAR](https://www.win...

